| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510 | apiVersion: v1kind: Namespacemetadata:  name: tigera-operator  labels:    name: tigera-operator---# Source: crds/calico/crd.projectcalico.org_bgpconfigurations.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: bgpconfigurations.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: BGPConfiguration    listKind: BGPConfigurationList    plural: bgpconfigurations    singular: bgpconfiguration  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: BGPConfiguration contains the configuration for any BGP routing.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: BGPConfigurationSpec contains the values of the BGP configuration.            properties:              asNumber:                description: 'ASNumber is the default AS number used by a node. [Default:                  64512]'                format: int32                type: integer              bindMode:                description: BindMode indicates whether to listen for BGP connections                  on all addresses (None) or only on the node's canonical IP address                  Node.Spec.BGP.IPvXAddress (NodeIP). Default behaviour is to listen                  for BGP connections on all addresses.                type: string              communities:                description: Communities is a list of BGP community values and their                  arbitrary names for tagging routes.                items:                  description: Community contains standard or large community value                    and its name.                  properties:                    name:                      description: Name given to community value.                      type: string                    value:                      description: Value must be of format `aa:nn` or `aa:nn:mm`.                        For standard community use `aa:nn` format, where `aa` and                        `nn` are 16 bit number. For large community use `aa:nn:mm`                        format, where `aa`, `nn` and `mm` are 32 bit number. Where,                        `aa` is an AS Number, `nn` and `mm` are per-AS identifier.                      pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$                      type: string                  type: object                type: array              ignoredInterfaces:                description: IgnoredInterfaces indicates the network interfaces that                  needs to be excluded when reading device routes.                items:                  type: string                type: array              listenPort:                description: ListenPort is the port where BGP protocol should listen.                  Defaults to 179                maximum: 65535                minimum: 1                type: integer              logSeverityScreen:                description: 'LogSeverityScreen is the log severity above which logs                  are sent to the stdout. [Default: INFO]'                type: string              nodeMeshMaxRestartTime:                description: Time to allow for software restart for node-to-mesh peerings.  When                  specified, this is configured as the graceful restart timeout.  When                  not specified, the BIRD default of 120s is used. This field can                  only be set on the default BGPConfiguration instance and requires                  that NodeMesh is enabled                type: string              nodeMeshPassword:                description: Optional BGP password for full node-to-mesh peerings.                  This field can only be set on the default BGPConfiguration instance                  and requires that NodeMesh is enabled                properties:                  secretKeyRef:                    description: Selects a key of a secret in the node pod's namespace.                    properties:                      key:                        description: The key of the secret to select from.  Must be                          a valid secret key.                        type: string                      name:                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names                          TODO: Add other useful fields. apiVersion, kind, uid?'                        type: string                      optional:                        description: Specify whether the Secret or its key must be                          defined                        type: boolean                    required:                    - key                    type: object                type: object              nodeToNodeMeshEnabled:                description: 'NodeToNodeMeshEnabled sets whether full node to node                  BGP mesh is enabled. [Default: true]'                type: boolean              prefixAdvertisements:                description: PrefixAdvertisements contains per-prefix advertisement                  configuration.                items:                  description: PrefixAdvertisement configures advertisement properties                    for the specified CIDR.                  properties:                    cidr:                      description: CIDR for which properties should be advertised.                      type: string                    communities:                      description: Communities can be list of either community names                        already defined in `Specs.Communities` or community value                        of format `aa:nn` or `aa:nn:mm`. For standard community use                        `aa:nn` format, where `aa` and `nn` are 16 bit number. For                        large community use `aa:nn:mm` format, where `aa`, `nn` and                        `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and                        `mm` are per-AS identifier.                      items:                        type: string                      type: array                  type: object                type: array              serviceClusterIPs:                description: ServiceClusterIPs are the CIDR blocks from which service                  cluster IPs are allocated. If specified, Calico will advertise these                  blocks, as well as any cluster IPs within them.                items:                  description: ServiceClusterIPBlock represents a single allowed ClusterIP                    CIDR block.                  properties:                    cidr:                      type: string                  type: object                type: array              serviceExternalIPs:                description: ServiceExternalIPs are the CIDR blocks for Kubernetes                  Service External IPs. Kubernetes Service ExternalIPs will only be                  advertised if they are within one of these blocks.                items:                  description: ServiceExternalIPBlock represents a single allowed                    External IP CIDR block.                  properties:                    cidr:                      type: string                  type: object                type: array              serviceLoadBalancerIPs:                description: ServiceLoadBalancerIPs are the CIDR blocks for Kubernetes                  Service LoadBalancer IPs. Kubernetes Service status.LoadBalancer.Ingress                  IPs will only be advertised if they are within one of these blocks.                items:                  description: ServiceLoadBalancerIPBlock represents a single allowed                    LoadBalancer IP CIDR block.                  properties:                    cidr:                      type: string                  type: object                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_bgpfilters.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: (devel)  creationTimestamp: null  name: bgpfilters.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: BGPFilter    listKind: BGPFilterList    plural: bgpfilters    singular: bgpfilter  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: BGPFilterSpec contains the IPv4 and IPv6 filter rules of              the BGP Filter.            properties:              exportV4:                description: The ordered set of IPv4 BGPFilter rules acting on exporting                  routes to a peer.                items:                  description: BGPFilterRuleV4 defines a BGP filter rule consisting                    a single IPv4 CIDR block and a filter action for this CIDR.                  properties:                    action:                      type: string                    cidr:                      type: string                    matchOperator:                      type: string                  required:                  - action                  - cidr                  - matchOperator                  type: object                type: array              exportV6:                description: The ordered set of IPv6 BGPFilter rules acting on exporting                  routes to a peer.                items:                  description: BGPFilterRuleV6 defines a BGP filter rule consisting                    a single IPv6 CIDR block and a filter action for this CIDR.                  properties:                    action:                      type: string                    cidr:                      type: string                    matchOperator:                      type: string                  required:                  - action                  - cidr                  - matchOperator                  type: object                type: array              importV4:                description: The ordered set of IPv4 BGPFilter rules acting on importing                  routes from a peer.                items:                  description: BGPFilterRuleV4 defines a BGP filter rule consisting                    a single IPv4 CIDR block and a filter action for this CIDR.                  properties:                    action:                      type: string                    cidr:                      type: string                    matchOperator:                      type: string                  required:                  - action                  - cidr                  - matchOperator                  type: object                type: array              importV6:                description: The ordered set of IPv6 BGPFilter rules acting on importing                  routes from a peer.                items:                  description: BGPFilterRuleV6 defines a BGP filter rule consisting                    a single IPv6 CIDR block and a filter action for this CIDR.                  properties:                    action:                      type: string                    cidr:                      type: string                    matchOperator:                      type: string                  required:                  - action                  - cidr                  - matchOperator                  type: object                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_bgppeers.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: bgppeers.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: BGPPeer    listKind: BGPPeerList    plural: bgppeers    singular: bgppeer  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: BGPPeerSpec contains the specification for a BGPPeer resource.            properties:              asNumber:                description: The AS Number of the peer.                format: int32                type: integer              filters:                description: The ordered set of BGPFilters applied on this BGP peer.                items:                  type: string                type: array              keepOriginalNextHop:                description: Option to keep the original nexthop field when routes                  are sent to a BGP Peer. Setting "true" configures the selected BGP                  Peers node to use the "next hop keep;" instead of "next hop self;"(default)                  in the specific branch of the Node on "bird.cfg".                type: boolean              maxRestartTime:                description: Time to allow for software restart.  When specified,                  this is configured as the graceful restart timeout.  When not specified,                  the BIRD default of 120s is used.                type: string              node:                description: The node name identifying the Calico node instance that                  is targeted by this peer. If this is not set, and no nodeSelector                  is specified, then this BGP peer selects all nodes in the cluster.                type: string              nodeSelector:                description: Selector for the nodes that should have this peering.  When                  this is set, the Node field must be empty.                type: string              numAllowedLocalASNumbers:                description: Maximum number of local AS numbers that are allowed in                  the AS path for received routes. This removes BGP loop prevention                  and should only be used if absolutely necesssary.                format: int32                type: integer              password:                description: Optional BGP password for the peerings generated by this                  BGPPeer resource.                properties:                  secretKeyRef:                    description: Selects a key of a secret in the node pod's namespace.                    properties:                      key:                        description: The key of the secret to select from.  Must be                          a valid secret key.                        type: string                      name:                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names                          TODO: Add other useful fields. apiVersion, kind, uid?'                        type: string                      optional:                        description: Specify whether the Secret or its key must be                          defined                        type: boolean                    required:                    - key                    type: object                type: object              peerIP:                description: The IP address of the peer followed by an optional port                  number to peer with. If port number is given, format should be `[<IPv6>]:port`                  or `<IPv4>:<port>` for IPv4. If optional port number is not set,                  and this peer IP and ASNumber belongs to a calico/node with ListenPort                  set in BGPConfiguration, then we use that port to peer.                type: string              peerSelector:                description: Selector for the remote nodes to peer with.  When this                  is set, the PeerIP and ASNumber fields must be empty.  For each                  peering between the local node and selected remote nodes, we configure                  an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified,                  and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified.  The                  remote AS number comes from the remote node's NodeBGPSpec.ASNumber,                  or the global default if that is not set.                type: string              reachableBy:                description: Add an exact, i.e. /32, static route toward peer IP in                  order to prevent route flapping. ReachableBy contains the address                  of the gateway which peer can be reached by.                type: string              sourceAddress:                description: Specifies whether and how to configure a source address                  for the peerings generated by this BGPPeer resource.  Default value                  "UseNodeIP" means to configure the node IP as the source address.  "None"                  means not to configure a source address.                type: string              ttlSecurity:                description: TTLSecurity enables the generalized TTL security mechanism                  (GTSM) which protects against spoofed packets by ignoring received                  packets with a smaller than expected TTL value. The provided value                  is the number of hops (edges) between the peers.                type: integer            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_blockaffinities.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: blockaffinities.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: BlockAffinity    listKind: BlockAffinityList    plural: blockaffinities    singular: blockaffinity  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: BlockAffinitySpec contains the specification for a BlockAffinity              resource.            properties:              cidr:                type: string              deleted:                description: Deleted indicates that this block affinity is being deleted.                  This field is a string for compatibility with older releases that                  mistakenly treat this field as a string.                type: string              node:                type: string              state:                type: string            required:            - cidr            - deleted            - node            - state            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_caliconodestatuses.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: (devel)  creationTimestamp: null  name: caliconodestatuses.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: CalicoNodeStatus    listKind: CalicoNodeStatusList    plural: caliconodestatuses    singular: caliconodestatus  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: CalicoNodeStatusSpec contains the specification for a CalicoNodeStatus              resource.            properties:              classes:                description: Classes declares the types of information to monitor                  for this calico/node, and allows for selective status reporting                  about certain subsets of information.                items:                  type: string                type: array              node:                description: The node name identifies the Calico node instance for                  node status.                type: string              updatePeriodSeconds:                description: UpdatePeriodSeconds is the period at which CalicoNodeStatus                  should be updated. Set to 0 to disable CalicoNodeStatus refresh.                  Maximum update period is one day.                format: int32                type: integer            type: object          status:            description: CalicoNodeStatusStatus defines the observed state of CalicoNodeStatus.              No validation needed for status since it is updated by Calico.            properties:              agent:                description: Agent holds agent status on the node.                properties:                  birdV4:                    description: BIRDV4 represents the latest observed status of bird4.                    properties:                      lastBootTime:                        description: LastBootTime holds the value of lastBootTime                          from bird.ctl output.                        type: string                      lastReconfigurationTime:                        description: LastReconfigurationTime holds the value of lastReconfigTime                          from bird.ctl output.                        type: string                      routerID:                        description: Router ID used by bird.                        type: string                      state:                        description: The state of the BGP Daemon.                        type: string                      version:                        description: Version of the BGP daemon                        type: string                    type: object                  birdV6:                    description: BIRDV6 represents the latest observed status of bird6.                    properties:                      lastBootTime:                        description: LastBootTime holds the value of lastBootTime                          from bird.ctl output.                        type: string                      lastReconfigurationTime:                        description: LastReconfigurationTime holds the value of lastReconfigTime                          from bird.ctl output.                        type: string                      routerID:                        description: Router ID used by bird.                        type: string                      state:                        description: The state of the BGP Daemon.                        type: string                      version:                        description: Version of the BGP daemon                        type: string                    type: object                type: object              bgp:                description: BGP holds node BGP status.                properties:                  numberEstablishedV4:                    description: The total number of IPv4 established bgp sessions.                    type: integer                  numberEstablishedV6:                    description: The total number of IPv6 established bgp sessions.                    type: integer                  numberNotEstablishedV4:                    description: The total number of IPv4 non-established bgp sessions.                    type: integer                  numberNotEstablishedV6:                    description: The total number of IPv6 non-established bgp sessions.                    type: integer                  peersV4:                    description: PeersV4 represents IPv4 BGP peers status on the node.                    items:                      description: CalicoNodePeer contains the status of BGP peers                        on the node.                      properties:                        peerIP:                          description: IP address of the peer whose condition we are                            reporting.                          type: string                        since:                          description: Since the state or reason last changed.                          type: string                        state:                          description: State is the BGP session state.                          type: string                        type:                          description: Type indicates whether this peer is configured                            via the node-to-node mesh, or via en explicit global or                            per-node BGPPeer object.                          type: string                      type: object                    type: array                  peersV6:                    description: PeersV6 represents IPv6 BGP peers status on the node.                    items:                      description: CalicoNodePeer contains the status of BGP peers                        on the node.                      properties:                        peerIP:                          description: IP address of the peer whose condition we are                            reporting.                          type: string                        since:                          description: Since the state or reason last changed.                          type: string                        state:                          description: State is the BGP session state.                          type: string                        type:                          description: Type indicates whether this peer is configured                            via the node-to-node mesh, or via en explicit global or                            per-node BGPPeer object.                          type: string                      type: object                    type: array                required:                - numberEstablishedV4                - numberEstablishedV6                - numberNotEstablishedV4                - numberNotEstablishedV6                type: object              lastUpdated:                description: LastUpdated is a timestamp representing the server time                  when CalicoNodeStatus object last updated. It is represented in                  RFC3339 form and is in UTC.                format: date-time                nullable: true                type: string              routes:                description: Routes reports routes known to the Calico BGP daemon                  on the node.                properties:                  routesV4:                    description: RoutesV4 represents IPv4 routes on the node.                    items:                      description: CalicoNodeRoute contains the status of BGP routes                        on the node.                      properties:                        destination:                          description: Destination of the route.                          type: string                        gateway:                          description: Gateway for the destination.                          type: string                        interface:                          description: Interface for the destination                          type: string                        learnedFrom:                          description: LearnedFrom contains information regarding                            where this route originated.                          properties:                            peerIP:                              description: If sourceType is NodeMesh or BGPPeer, IP                                address of the router that sent us this route.                              type: string                            sourceType:                              description: Type of the source where a route is learned                                from.                              type: string                          type: object                        type:                          description: Type indicates if the route is being used for                            forwarding or not.                          type: string                      type: object                    type: array                  routesV6:                    description: RoutesV6 represents IPv6 routes on the node.                    items:                      description: CalicoNodeRoute contains the status of BGP routes                        on the node.                      properties:                        destination:                          description: Destination of the route.                          type: string                        gateway:                          description: Gateway for the destination.                          type: string                        interface:                          description: Interface for the destination                          type: string                        learnedFrom:                          description: LearnedFrom contains information regarding                            where this route originated.                          properties:                            peerIP:                              description: If sourceType is NodeMesh or BGPPeer, IP                                address of the router that sent us this route.                              type: string                            sourceType:                              description: Type of the source where a route is learned                                from.                              type: string                          type: object                        type:                          description: Type indicates if the route is being used for                            forwarding or not.                          type: string                      type: object                    type: array                type: object            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_clusterinformations.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: clusterinformations.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: ClusterInformation    listKind: ClusterInformationList    plural: clusterinformations    singular: clusterinformation  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: ClusterInformation contains the cluster specific information.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: ClusterInformationSpec contains the values of describing              the cluster.            properties:              calicoVersion:                description: CalicoVersion is the version of Calico that the cluster                  is running                type: string              clusterGUID:                description: ClusterGUID is the GUID of the cluster                type: string              clusterType:                description: ClusterType describes the type of the cluster                type: string              datastoreReady:                description: DatastoreReady is used during significant datastore migrations                  to signal to components such as Felix that it should wait before                  accessing the datastore.                type: boolean              variant:                description: Variant declares which variant of Calico should be active.                type: string            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_felixconfigurations.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: felixconfigurations.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: FelixConfiguration    listKind: FelixConfigurationList    plural: felixconfigurations    singular: felixconfiguration  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: Felix Configuration contains the configuration for Felix.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: FelixConfigurationSpec contains the values of the Felix configuration.            properties:              allowIPIPPacketsFromWorkloads:                description: 'AllowIPIPPacketsFromWorkloads controls whether Felix                  will add a rule to drop IPIP encapsulated traffic from workloads                  [Default: false]'                type: boolean              allowVXLANPacketsFromWorkloads:                description: 'AllowVXLANPacketsFromWorkloads controls whether Felix                  will add a rule to drop VXLAN encapsulated traffic from workloads                  [Default: false]'                type: boolean              awsSrcDstCheck:                description: 'Set source-destination-check on AWS EC2 instances. Accepted                  value must be one of "DoNothing", "Enable" or "Disable". [Default:                  DoNothing]'                enum:                - DoNothing                - Enable                - Disable                type: string              bpfConnectTimeLoadBalancingEnabled:                description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode,                  controls whether Felix installs the connection-time load balancer.  The                  connect-time load balancer is required for the host to be able to                  reach Kubernetes services and it improves the performance of pod-to-service                  connections.  The only reason to disable it is for debugging purposes.  [Default:                  true]'                type: boolean              bpfDSROptoutCIDRs:                description: BPFDSROptoutCIDRs is a list of CIDRs which are excluded                  from DSR. That is, clients in those CIDRs will accesses nodeports                  as if BPFExternalServiceMode was set to Tunnel.                items:                  type: string                type: array              bpfDataIfacePattern:                description: BPFDataIfacePattern is a regular expression that controls                  which interfaces Felix should attach BPF programs to in order to                  catch traffic to/from the network.  This needs to match the interfaces                  that Calico workload traffic flows over as well as any interfaces                  that handle incoming traffic to nodeports and services from outside                  the cluster.  It should not match the workload interfaces (usually                  named cali...).                type: string              bpfDisableUnprivileged:                description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled                  sysctl to disable unprivileged use of BPF.  This ensures that unprivileged                  users cannot access Calico''s BPF maps and cannot insert their own                  BPF programs to interfere with Calico''s. [Default: true]'                type: boolean              bpfEnabled:                description: 'BPFEnabled, if enabled Felix will use the BPF dataplane.                  [Default: false]'                type: boolean              bpfEnforceRPF:                description: 'BPFEnforceRPF enforce strict RPF on all host interfaces                  with BPF programs regardless of what is the per-interfaces or global                  setting. Possible values are Disabled, Strict or Loose. [Default:                  Loose]'                type: string              bpfExtToServiceConnmark:                description: 'BPFExtToServiceConnmark in BPF mode, control a 32bit                  mark that is set on connections from an external client to a local                  service. This mark allows us to control how packets of that connection                  are routed within the host and how is routing interpreted by RPF                  check. [Default: 0]'                type: integer              bpfExternalServiceMode:                description: 'BPFExternalServiceMode in BPF mode, controls how connections                  from outside the cluster to services (node ports and cluster IPs)                  are forwarded to remote workloads.  If set to "Tunnel" then both                  request and response traffic is tunneled to the remote node.  If                  set to "DSR", the request traffic is tunneled but the response traffic                  is sent directly from the remote node.  In "DSR" mode, the remote                  node appears to use the IP of the ingress node; this requires a                  permissive L2 network.  [Default: Tunnel]'                type: string              bpfHostConntrackBypass:                description: 'BPFHostConntrackBypass Controls whether to bypass Linux                  conntrack in BPF mode for workloads and services. [Default: true                  - bypass Linux conntrack]'                type: boolean              bpfKubeProxyEndpointSlicesEnabled:                description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls                  whether Felix's embedded kube-proxy accepts EndpointSlices or not.                type: boolean              bpfKubeProxyIptablesCleanupEnabled:                description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF                  mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s                  iptables chains.  Should only be enabled if kube-proxy is not running.  [Default:                  true]'                type: boolean              bpfKubeProxyMinSyncPeriod:                description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the                  minimum time between updates to the dataplane for Felix''s embedded                  kube-proxy.  Lower values give reduced set-up latency.  Higher values                  reduce Felix CPU usage by batching up more work.  [Default: 1s]'                type: string              bpfL3IfacePattern:                description: BPFL3IfacePattern is a regular expression that allows                  to list tunnel devices like wireguard or vxlan (i.e., L3 devices)                  in addition to BPFDataIfacePattern. That is, tunnel interfaces not                  created by Calico, that Calico workload traffic flows over as well                  as any interfaces that handle incoming traffic to nodeports and                  services from outside the cluster.                type: string              bpfLogLevel:                description: 'BPFLogLevel controls the log level of the BPF programs                  when in BPF dataplane mode.  One of "Off", "Info", or "Debug".  The                  logs are emitted to the BPF trace pipe, accessible with the command                  `tc exec bpf debug`. [Default: Off].'                type: string              bpfMapSizeConntrack:                description: 'BPFMapSizeConntrack sets the size for the conntrack                  map.  This map must be large enough to hold an entry for each active                  connection.  Warning: changing the size of the conntrack map can                  cause disruption.'                type: integer              bpfMapSizeIPSets:                description: BPFMapSizeIPSets sets the size for ipsets map.  The IP                  sets map must be large enough to hold an entry for each endpoint                  matched by every selector in the source/destination matches in network                  policy.  Selectors such as "all()" can result in large numbers of                  entries (one entry per endpoint in that case).                type: integer              bpfMapSizeIfState:                description: BPFMapSizeIfState sets the size for ifstate map.  The                  ifstate map must be large enough to hold an entry for each device                  (host + workloads) on a host.                type: integer              bpfMapSizeNATAffinity:                type: integer              bpfMapSizeNATBackend:                description: BPFMapSizeNATBackend sets the size for nat back end map.                  This is the total number of endpoints. This is mostly more than                  the size of the number of services.                type: integer              bpfMapSizeNATFrontend:                description: BPFMapSizeNATFrontend sets the size for nat front end                  map. FrontendMap should be large enough to hold an entry for each                  nodeport, external IP and each port in each service.                type: integer              bpfMapSizeRoute:                description: BPFMapSizeRoute sets the size for the routes map.  The                  routes map should be large enough to hold one entry per workload                  and a handful of entries per host (enough to cover its own IPs and                  tunnel IPs).                type: integer              bpfPSNATPorts:                anyOf:                - type: integer                - type: string                description: 'BPFPSNATPorts sets the range from which we randomly                  pick a port if there is a source port collision. This should be                  within the ephemeral range as defined by RFC 6056 (1024–65535) and                  preferably outside the  ephemeral ranges used by common operating                  systems. Linux uses 32768–60999, while others mostly use the IANA                  defined range 49152–65535. It is not necessarily a problem if this                  range overlaps with the operating systems. Both ends of the range                  are inclusive. [Default: 20000:29999]'                pattern: ^.*                x-kubernetes-int-or-string: true              bpfPolicyDebugEnabled:                description: BPFPolicyDebugEnabled when true, Felix records detailed                  information about the BPF policy programs, which can be examined                  with the calico-bpf command-line tool.                type: boolean              chainInsertMode:                description: 'ChainInsertMode controls whether Felix hooks the kernel''s                  top-level iptables chains by inserting a rule at the top of the                  chain or by appending a rule at the bottom. insert is the safe default                  since it prevents Calico''s rules from being bypassed. If you switch                  to append mode, be sure that the other rules in the chains signal                  acceptance by falling through to the Calico rules, otherwise the                  Calico policy will be bypassed. [Default: insert]'                type: string              dataplaneDriver:                description: DataplaneDriver filename of the external dataplane driver                  to use.  Only used if UseInternalDataplaneDriver is set to false.                type: string              dataplaneWatchdogTimeout:                description: "DataplaneWatchdogTimeout is the readiness/liveness timeout                  used for Felix's (internal) dataplane driver. Increase this value                  if you experience spurious non-ready or non-live events when Felix                  is under heavy load. Decrease the value to get felix to report non-live                  or non-ready more quickly. [Default: 90s] \n Deprecated: replaced                  by the generic HealthTimeoutOverrides."                type: string              debugDisableLogDropping:                type: boolean              debugMemoryProfilePath:                type: string              debugSimulateCalcGraphHangAfter:                type: string              debugSimulateDataplaneHangAfter:                type: string              defaultEndpointToHostAction:                description: 'DefaultEndpointToHostAction controls what happens to                  traffic that goes from a workload endpoint to the host itself (after                  the traffic hits the endpoint egress policy). By default Calico                  blocks traffic from workload endpoints to the host itself with an                  iptables "DROP" action. If you want to allow some or all traffic                  from endpoint to host, set this parameter to RETURN or ACCEPT. Use                  RETURN if you have your own rules in the iptables "INPUT" chain;                  Calico will insert its rules at the top of that chain, then "RETURN"                  packets to the "INPUT" chain once it has completed processing workload                  endpoint egress policy. Use ACCEPT to unconditionally accept packets                  from workloads after processing workload endpoint egress policy.                  [Default: Drop]'                type: string              deviceRouteProtocol:                description: This defines the route protocol added to programmed device                  routes, by default this will be RTPROT_BOOT when left blank.                type: integer              deviceRouteSourceAddress:                description: This is the IPv4 source address to use on programmed                  device routes. By default the source address is left blank, leaving                  the kernel to choose the source address used.                type: string              deviceRouteSourceAddressIPv6:                description: This is the IPv6 source address to use on programmed                  device routes. By default the source address is left blank, leaving                  the kernel to choose the source address used.                type: string              disableConntrackInvalidCheck:                type: boolean              endpointReportingDelay:                type: string              endpointReportingEnabled:                type: boolean              externalNodesList:                description: ExternalNodesCIDRList is a list of CIDR's of external-non-calico-nodes                  which may source tunnel traffic and have the tunneled traffic be                  accepted at calico nodes.                items:                  type: string                type: array              failsafeInboundHostPorts:                description: 'FailsafeInboundHostPorts is a list of UDP/TCP ports                  and CIDRs that Felix will allow incoming traffic to host endpoints                  on irrespective of the security policy. This is useful to avoid                  accidentally cutting off a host with incorrect configuration. For                  back-compatibility, if the protocol is not specified, it defaults                  to "tcp". If a CIDR is not specified, it will allow traffic from                  all addresses. To disable all inbound host ports, use the value                  none. The default value allows ssh access and DHCP. [Default: tcp:22,                  udp:68, tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667]'                items:                  description: ProtoPort is combination of protocol, port, and CIDR.                    Protocol and port must be specified.                  properties:                    net:                      type: string                    port:                      type: integer                    protocol:                      type: string                  required:                  - port                  - protocol                  type: object                type: array              failsafeOutboundHostPorts:                description: 'FailsafeOutboundHostPorts is a list of UDP/TCP ports                  and CIDRs that Felix will allow outgoing traffic from host endpoints                  to irrespective of the security policy. This is useful to avoid                  accidentally cutting off a host with incorrect configuration. For                  back-compatibility, if the protocol is not specified, it defaults                  to "tcp". If a CIDR is not specified, it will allow traffic from                  all addresses. To disable all outbound host ports, use the value                  none. The default value opens etcd''s standard ports to ensure that                  Felix does not get cut off from etcd as well as allowing DHCP and                  DNS. [Default: tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666,                  tcp:6667, udp:53, udp:67]'                items:                  description: ProtoPort is combination of protocol, port, and CIDR.                    Protocol and port must be specified.                  properties:                    net:                      type: string                    port:                      type: integer                    protocol:                      type: string                  required:                  - port                  - protocol                  type: object                type: array              featureDetectOverride:                description: FeatureDetectOverride is used to override feature detection                  based on auto-detected platform capabilities.  Values are specified                  in a comma separated list with no spaces, example; "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=".  "true"                  or "false" will force the feature, empty or omitted values are auto-detected.                type: string              featureGates:                description: FeatureGates is used to enable or disable tech-preview                  Calico features. Values are specified in a comma separated list                  with no spaces, example; "BPFConnectTimeLoadBalancingWorkaround=enabled,XyZ=false".                  This is used to enable features that are not fully production ready.                type: string              floatingIPs:                description: FloatingIPs configures whether or not Felix will program                  non-OpenStack floating IP addresses.  (OpenStack-derived floating                  IPs are always programmed, regardless of this setting.)                enum:                - Enabled                - Disabled                type: string              genericXDPEnabled:                description: 'GenericXDPEnabled enables Generic XDP so network cards                  that don''t support XDP offload or driver modes can use XDP. This                  is not recommended since it doesn''t provide better performance                  than iptables. [Default: false]'                type: boolean              healthEnabled:                type: boolean              healthHost:                type: string              healthPort:                type: integer              healthTimeoutOverrides:                description: HealthTimeoutOverrides allows the internal watchdog timeouts                  of individual subcomponents to be overridden.  This is useful for                  working around "false positive" liveness timeouts that can occur                  in particularly stressful workloads or if CPU is constrained.  For                  a list of active subcomponents, see Felix's logs.                items:                  properties:                    name:                      type: string                    timeout:                      type: string                  required:                  - name                  - timeout                  type: object                type: array              interfaceExclude:                description: 'InterfaceExclude is a comma-separated list of interfaces                  that Felix should exclude when monitoring for host endpoints. The                  default value ensures that Felix ignores Kubernetes'' IPVS dummy                  interface, which is used internally by kube-proxy. If you want to                  exclude multiple interface names using a single value, the list                  supports regular expressions. For regular expressions you must wrap                  the value with ''/''. For example having values ''/^kube/,veth1''                  will exclude all interfaces that begin with ''kube'' and also the                  interface ''veth1''. [Default: kube-ipvs0]'                type: string              interfacePrefix:                description: 'InterfacePrefix is the interface name prefix that identifies                  workload endpoints and so distinguishes them from host endpoint                  interfaces. Note: in environments other than bare metal, the orchestrators                  configure this appropriately. For example our Kubernetes and Docker                  integrations set the ''cali'' value, and our OpenStack integration                  sets the ''tap'' value. [Default: cali]'                type: string              interfaceRefreshInterval:                description: InterfaceRefreshInterval is the period at which Felix                  rescans local interfaces to verify their state. The rescan can be                  disabled by setting the interval to 0.                type: string              ipipEnabled:                description: 'IPIPEnabled overrides whether Felix should configure                  an IPIP interface on the host. Optional as Felix determines this                  based on the existing IP pools. [Default: nil (unset)]'                type: boolean              ipipMTU:                description: 'IPIPMTU is the MTU to set on the tunnel device. See                  Configuring MTU [Default: 1440]'                type: integer              ipsetsRefreshInterval:                description: 'IpsetsRefreshInterval is the period at which Felix re-checks                  all iptables state to ensure that no other process has accidentally                  broken Calico''s rules. Set to 0 to disable iptables refresh. [Default:                  90s]'                type: string              iptablesBackend:                description: IptablesBackend specifies which backend of iptables will                  be used. The default is Auto.                type: string              iptablesFilterAllowAction:                type: string              iptablesFilterDenyAction:                description: IptablesFilterDenyAction controls what happens to traffic                  that is denied by network policy. By default Calico blocks traffic                  with an iptables "DROP" action. If you want to use "REJECT" action                  instead you can configure it in here.                type: string              iptablesLockFilePath:                description: 'IptablesLockFilePath is the location of the iptables                  lock file. You may need to change this if the lock file is not in                  its standard location (for example if you have mapped it into Felix''s                  container at a different path). [Default: /run/xtables.lock]'                type: string              iptablesLockProbeInterval:                description: 'IptablesLockProbeInterval is the time that Felix will                  wait between attempts to acquire the iptables lock if it is not                  available. Lower values make Felix more responsive when the lock                  is contended, but use more CPU. [Default: 50ms]'                type: string              iptablesLockTimeout:                description: 'IptablesLockTimeout is the time that Felix will wait                  for the iptables lock, or 0, to disable. To use this feature, Felix                  must share the iptables lock file with all other processes that                  also take the lock. When running Felix inside a container, this                  requires the /run directory of the host to be mounted into the calico/node                  or calico/felix container. [Default: 0s disabled]'                type: string              iptablesMangleAllowAction:                type: string              iptablesMarkMask:                description: 'IptablesMarkMask is the mask that Felix selects its                  IPTables Mark bits from. Should be a 32 bit hexadecimal number with                  at least 8 bits set, none of which clash with any other mark bits                  in use on the system. [Default: 0xff000000]'                format: int32                type: integer              iptablesNATOutgoingInterfaceFilter:                type: string              iptablesPostWriteCheckInterval:                description: 'IptablesPostWriteCheckInterval is the period after Felix                  has done a write to the dataplane that it schedules an extra read                  back in order to check the write was not clobbered by another process.                  This should only occur if another application on the system doesn''t                  respect the iptables lock. [Default: 1s]'                type: string              iptablesRefreshInterval:                description: 'IptablesRefreshInterval is the period at which Felix                  re-checks the IP sets in the dataplane to ensure that no other process                  has accidentally broken Calico''s rules. Set to 0 to disable IP                  sets refresh. Note: the default for this value is lower than the                  other refresh intervals as a workaround for a Linux kernel bug that                  was fixed in kernel version 4.11. If you are using v4.11 or greater                  you may want to set this to, a higher value to reduce Felix CPU                  usage. [Default: 10s]'                type: string              ipv6Support:                description: IPv6Support controls whether Felix enables support for                  IPv6 (if supported by the in-use dataplane).                type: boolean              kubeNodePortRanges:                description: 'KubeNodePortRanges holds list of port ranges used for                  service node ports. Only used if felix detects kube-proxy running                  in ipvs mode. Felix uses these ranges to separate host and workload                  traffic. [Default: 30000:32767].'                items:                  anyOf:                  - type: integer                  - type: string                  pattern: ^.*                  x-kubernetes-int-or-string: true                type: array              logDebugFilenameRegex:                description: LogDebugFilenameRegex controls which source code files                  have their Debug log output included in the logs. Only logs from                  files with names that match the given regular expression are included.  The                  filter only applies to Debug level logs.                type: string              logFilePath:                description: 'LogFilePath is the full path to the Felix log. Set to                  none to disable file logging. [Default: /var/log/calico/felix.log]'                type: string              logPrefix:                description: 'LogPrefix is the log prefix that Felix uses when rendering                  LOG rules. [Default: calico-packet]'                type: string              logSeverityFile:                description: 'LogSeverityFile is the log severity above which logs                  are sent to the log file. [Default: Info]'                type: string              logSeverityScreen:                description: 'LogSeverityScreen is the log severity above which logs                  are sent to the stdout. [Default: Info]'                type: string              logSeveritySys:                description: 'LogSeveritySys is the log severity above which logs                  are sent to the syslog. Set to None for no logging to syslog. [Default:                  Info]'                type: string              maxIpsetSize:                type: integer              metadataAddr:                description: 'MetadataAddr is the IP address or domain name of the                  server that can answer VM queries for cloud-init metadata. In OpenStack,                  this corresponds to the machine running nova-api (or in Ubuntu,                  nova-api-metadata). A value of none (case insensitive) means that                  Felix should not set up any NAT rule for the metadata path. [Default:                  127.0.0.1]'                type: string              metadataPort:                description: 'MetadataPort is the port of the metadata server. This,                  combined with global.MetadataAddr (if not ''None''), is used to                  set up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort.                  In most cases this should not need to be changed [Default: 8775].'                type: integer              mtuIfacePattern:                description: MTUIfacePattern is a regular expression that controls                  which interfaces Felix should scan in order to calculate the host's                  MTU. This should not match workload interfaces (usually named cali...).                type: string              natOutgoingAddress:                description: NATOutgoingAddress specifies an address to use when performing                  source NAT for traffic in a natOutgoing pool that is leaving the                  network. By default the address used is an address on the interface                  the traffic is leaving on (ie it uses the iptables MASQUERADE target)                type: string              natPortRange:                anyOf:                - type: integer                - type: string                description: NATPortRange specifies the range of ports that is used                  for port mapping when doing outgoing NAT. When unset the default                  behavior of the network stack is used.                pattern: ^.*                x-kubernetes-int-or-string: true              netlinkTimeout:                type: string              openstackRegion:                description: 'OpenstackRegion is the name of the region that a particular                  Felix belongs to. In a multi-region Calico/OpenStack deployment,                  this must be configured somehow for each Felix (here in the datamodel,                  or in felix.cfg or the environment on each compute node), and must                  match the [calico] openstack_region value configured in neutron.conf                  on each node. [Default: Empty]'                type: string              policySyncPathPrefix:                description: 'PolicySyncPathPrefix is used to by Felix to communicate                  policy changes to external services, like Application layer policy.                  [Default: Empty]'                type: string              prometheusGoMetricsEnabled:                description: 'PrometheusGoMetricsEnabled disables Go runtime metrics                  collection, which the Prometheus client does by default, when set                  to false. This reduces the number of metrics reported, reducing                  Prometheus load. [Default: true]'                type: boolean              prometheusMetricsEnabled:                description: 'PrometheusMetricsEnabled enables the Prometheus metrics                  server in Felix if set to true. [Default: false]'                type: boolean              prometheusMetricsHost:                description: 'PrometheusMetricsHost is the host that the Prometheus                  metrics server should bind to. [Default: empty]'                type: string              prometheusMetricsPort:                description: 'PrometheusMetricsPort is the TCP port that the Prometheus                  metrics server should bind to. [Default: 9091]'                type: integer              prometheusProcessMetricsEnabled:                description: 'PrometheusProcessMetricsEnabled disables process metrics                  collection, which the Prometheus client does by default, when set                  to false. This reduces the number of metrics reported, reducing                  Prometheus load. [Default: true]'                type: boolean              prometheusWireGuardMetricsEnabled:                description: 'PrometheusWireGuardMetricsEnabled disables wireguard                  metrics collection, which the Prometheus client does by default,                  when set to false. This reduces the number of metrics reported,                  reducing Prometheus load. [Default: true]'                type: boolean              removeExternalRoutes:                description: Whether or not to remove device routes that have not                  been programmed by Felix. Disabling this will allow external applications                  to also add device routes. This is enabled by default which means                  we will remove externally added routes.                type: boolean              reportingInterval:                description: 'ReportingInterval is the interval at which Felix reports                  its status into the datastore or 0 to disable. Must be non-zero                  in OpenStack deployments. [Default: 30s]'                type: string              reportingTTL:                description: 'ReportingTTL is the time-to-live setting for process-wide                  status reports. [Default: 90s]'                type: string              routeRefreshInterval:                description: 'RouteRefreshInterval is the period at which Felix re-checks                  the routes in the dataplane to ensure that no other process has                  accidentally broken Calico''s rules. Set to 0 to disable route refresh.                  [Default: 90s]'                type: string              routeSource:                description: 'RouteSource configures where Felix gets its routing                  information. - WorkloadIPs: use workload endpoints to construct                  routes. - CalicoIPAM: the default - use IPAM data to construct routes.'                type: string              routeSyncDisabled:                description: RouteSyncDisabled will disable all operations performed                  on the route table. Set to true to run in network-policy mode only.                type: boolean              routeTableRange:                description: Deprecated in favor of RouteTableRanges. Calico programs                  additional Linux route tables for various purposes. RouteTableRange                  specifies the indices of the route tables that Calico should use.                properties:                  max:                    type: integer                  min:                    type: integer                required:                - max                - min                type: object              routeTableRanges:                description: Calico programs additional Linux route tables for various                  purposes. RouteTableRanges specifies a set of table index ranges                  that Calico should use. Deprecates`RouteTableRange`, overrides `RouteTableRange`.                items:                  properties:                    max:                      type: integer                    min:                      type: integer                  required:                  - max                  - min                  type: object                type: array              serviceLoopPrevention:                description: 'When service IP advertisement is enabled, prevent routing                  loops to service IPs that are not in use, by dropping or rejecting                  packets that do not get DNAT''d by kube-proxy. Unless set to "Disabled",                  in which case such routing loops continue to be allowed. [Default:                  Drop]'                type: string              sidecarAccelerationEnabled:                description: 'SidecarAccelerationEnabled enables experimental sidecar                  acceleration [Default: false]'                type: boolean              usageReportingEnabled:                description: 'UsageReportingEnabled reports anonymous Calico version                  number and cluster size to projectcalico.org. Logs warnings returned                  by the usage server. For example, if a significant security vulnerability                  has been discovered in the version of Calico being used. [Default:                  true]'                type: boolean              usageReportingInitialDelay:                description: 'UsageReportingInitialDelay controls the minimum delay                  before Felix makes a report. [Default: 300s]'                type: string              usageReportingInterval:                description: 'UsageReportingInterval controls the interval at which                  Felix makes reports. [Default: 86400s]'                type: string              useInternalDataplaneDriver:                description: UseInternalDataplaneDriver, if true, Felix will use its                  internal dataplane programming logic.  If false, it will launch                  an external dataplane driver and communicate with it over protobuf.                type: boolean              vxlanEnabled:                description: 'VXLANEnabled overrides whether Felix should create the                  VXLAN tunnel device for IPv4 VXLAN networking. Optional as Felix                  determines this based on the existing IP pools. [Default: nil (unset)]'                type: boolean              vxlanMTU:                description: 'VXLANMTU is the MTU to set on the IPv4 VXLAN tunnel                  device. See Configuring MTU [Default: 1410]'                type: integer              vxlanMTUV6:                description: 'VXLANMTUV6 is the MTU to set on the IPv6 VXLAN tunnel                  device. See Configuring MTU [Default: 1390]'                type: integer              vxlanPort:                type: integer              vxlanVNI:                type: integer              wireguardEnabled:                description: 'WireguardEnabled controls whether Wireguard is enabled                  for IPv4 (encapsulating IPv4 traffic over an IPv4 underlay network).                  [Default: false]'                type: boolean              wireguardEnabledV6:                description: 'WireguardEnabledV6 controls whether Wireguard is enabled                  for IPv6 (encapsulating IPv6 traffic over an IPv6 underlay network).                  [Default: false]'                type: boolean              wireguardHostEncryptionEnabled:                description: 'WireguardHostEncryptionEnabled controls whether Wireguard                  host-to-host encryption is enabled. [Default: false]'                type: boolean              wireguardInterfaceName:                description: 'WireguardInterfaceName specifies the name to use for                  the IPv4 Wireguard interface. [Default: wireguard.cali]'                type: string              wireguardInterfaceNameV6:                description: 'WireguardInterfaceNameV6 specifies the name to use for                  the IPv6 Wireguard interface. [Default: wg-v6.cali]'                type: string              wireguardKeepAlive:                description: 'WireguardKeepAlive controls Wireguard PersistentKeepalive                  option. Set 0 to disable. [Default: 0]'                type: string              wireguardListeningPort:                description: 'WireguardListeningPort controls the listening port used                  by IPv4 Wireguard. [Default: 51820]'                type: integer              wireguardListeningPortV6:                description: 'WireguardListeningPortV6 controls the listening port                  used by IPv6 Wireguard. [Default: 51821]'                type: integer              wireguardMTU:                description: 'WireguardMTU controls the MTU on the IPv4 Wireguard                  interface. See Configuring MTU [Default: 1440]'                type: integer              wireguardMTUV6:                description: 'WireguardMTUV6 controls the MTU on the IPv6 Wireguard                  interface. See Configuring MTU [Default: 1420]'                type: integer              wireguardRoutingRulePriority:                description: 'WireguardRoutingRulePriority controls the priority value                  to use for the Wireguard routing rule. [Default: 99]'                type: integer              workloadSourceSpoofing:                description: WorkloadSourceSpoofing controls whether pods can use                  the allowedSourcePrefixes annotation to send traffic with a source                  IP address that is not theirs. This is disabled by default. When                  set to "Any", pods can request any prefix.                type: string              xdpEnabled:                description: 'XDPEnabled enables XDP acceleration for suitable untracked                  incoming deny rules. [Default: true]'                type: boolean              xdpRefreshInterval:                description: 'XDPRefreshInterval is the period at which Felix re-checks                  all XDP state to ensure that no other process has accidentally broken                  Calico''s BPF maps or attached programs. Set to 0 to disable XDP                  refresh. [Default: 90s]'                type: string            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_globalnetworkpolicies.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: globalnetworkpolicies.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: GlobalNetworkPolicy    listKind: GlobalNetworkPolicyList    plural: globalnetworkpolicies    singular: globalnetworkpolicy  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            properties:              applyOnForward:                description: ApplyOnForward indicates to apply the rules in this policy                  on forward traffic.                type: boolean              doNotTrack:                description: DoNotTrack indicates whether packets matched by the rules                  in this policy should go through the data plane's connection tracking,                  such as Linux conntrack.  If True, the rules in this policy are                  applied before any data plane connection tracking, and packets allowed                  by this policy are marked as not to be tracked.                type: boolean              egress:                description: The ordered set of egress rules.  Each rule contains                  a set of packet match criteria and a corresponding action to apply.                items:                  description: "A Rule encapsulates a set of match criteria and an                    action.  Both selector-based security Policy and security Profiles                    reference rules - separated out as a list of rules for both ingress                    and egress packet matching. \n Each positive match criteria has                    a negated version, prefixed with \"Not\". All the match criteria                    within a rule must be satisfied for a packet to match. A single                    rule can contain the positive and negative version of a match                    and both must be satisfied for the rule to match."                  properties:                    action:                      type: string                    destination:                      description: Destination contains the match criteria that apply                        to destination entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                    http:                      description: HTTP contains match criteria that apply to HTTP                        requests.                      properties:                        methods:                          description: Methods is an optional field that restricts                            the rule to apply only to HTTP requests that use one of                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple                            methods are OR'd together.                          items:                            type: string                          type: array                        paths:                          description: 'Paths is an optional field that restricts                            the rule to apply to HTTP requests that use one of the                            listed HTTP Paths. Multiple paths are OR''d together.                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may                            ONLY specify either a `exact` or a `prefix` match. The                            validator will check for it.'                          items:                            description: 'HTTPPath specifies an HTTP path to match.                              It may be either of the form: exact: <path>: which matches                              the path exactly or prefix: <path-prefix>: which matches                              the path prefix'                            properties:                              exact:                                type: string                              prefix:                                type: string                            type: object                          type: array                      type: object                    icmp:                      description: ICMP is an optional field that restricts the rule                        to apply to a specific type and code of ICMP traffic.  This                        should only be specified if the Protocol field is set to "ICMP"                        or "ICMPv6".                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    ipVersion:                      description: IPVersion is an optional field that restricts the                        rule to only match a specific IP version.                      type: integer                    metadata:                      description: Metadata contains additional information for this                        rule                      properties:                        annotations:                          additionalProperties:                            type: string                          description: Annotations is a set of key value pairs that                            give extra information about the rule                          type: object                      type: object                    notICMP:                      description: NotICMP is the negated version of the ICMP field.                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    notProtocol:                      anyOf:                      - type: integer                      - type: string                      description: NotProtocol is the negated version of the Protocol                        field.                      pattern: ^.*                      x-kubernetes-int-or-string: true                    protocol:                      anyOf:                      - type: integer                      - type: string                      description: "Protocol is an optional field that restricts the                        rule to only apply to traffic of a specific IP protocol. Required                        if any of the EntityRules contain Ports (because ports only                        apply to certain protocols). \n Must be one of these string                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",                        \"UDPLite\" or an integer in the range 1-255."                      pattern: ^.*                      x-kubernetes-int-or-string: true                    source:                      description: Source contains the match criteria that apply to                        source entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                  required:                  - action                  type: object                type: array              ingress:                description: The ordered set of ingress rules.  Each rule contains                  a set of packet match criteria and a corresponding action to apply.                items:                  description: "A Rule encapsulates a set of match criteria and an                    action.  Both selector-based security Policy and security Profiles                    reference rules - separated out as a list of rules for both ingress                    and egress packet matching. \n Each positive match criteria has                    a negated version, prefixed with \"Not\". All the match criteria                    within a rule must be satisfied for a packet to match. A single                    rule can contain the positive and negative version of a match                    and both must be satisfied for the rule to match."                  properties:                    action:                      type: string                    destination:                      description: Destination contains the match criteria that apply                        to destination entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                    http:                      description: HTTP contains match criteria that apply to HTTP                        requests.                      properties:                        methods:                          description: Methods is an optional field that restricts                            the rule to apply only to HTTP requests that use one of                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple                            methods are OR'd together.                          items:                            type: string                          type: array                        paths:                          description: 'Paths is an optional field that restricts                            the rule to apply to HTTP requests that use one of the                            listed HTTP Paths. Multiple paths are OR''d together.                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may                            ONLY specify either a `exact` or a `prefix` match. The                            validator will check for it.'                          items:                            description: 'HTTPPath specifies an HTTP path to match.                              It may be either of the form: exact: <path>: which matches                              the path exactly or prefix: <path-prefix>: which matches                              the path prefix'                            properties:                              exact:                                type: string                              prefix:                                type: string                            type: object                          type: array                      type: object                    icmp:                      description: ICMP is an optional field that restricts the rule                        to apply to a specific type and code of ICMP traffic.  This                        should only be specified if the Protocol field is set to "ICMP"                        or "ICMPv6".                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    ipVersion:                      description: IPVersion is an optional field that restricts the                        rule to only match a specific IP version.                      type: integer                    metadata:                      description: Metadata contains additional information for this                        rule                      properties:                        annotations:                          additionalProperties:                            type: string                          description: Annotations is a set of key value pairs that                            give extra information about the rule                          type: object                      type: object                    notICMP:                      description: NotICMP is the negated version of the ICMP field.                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    notProtocol:                      anyOf:                      - type: integer                      - type: string                      description: NotProtocol is the negated version of the Protocol                        field.                      pattern: ^.*                      x-kubernetes-int-or-string: true                    protocol:                      anyOf:                      - type: integer                      - type: string                      description: "Protocol is an optional field that restricts the                        rule to only apply to traffic of a specific IP protocol. Required                        if any of the EntityRules contain Ports (because ports only                        apply to certain protocols). \n Must be one of these string                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",                        \"UDPLite\" or an integer in the range 1-255."                      pattern: ^.*                      x-kubernetes-int-or-string: true                    source:                      description: Source contains the match criteria that apply to                        source entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                  required:                  - action                  type: object                type: array              namespaceSelector:                description: NamespaceSelector is an optional field for an expression                  used to select a pod based on namespaces.                type: string              order:                description: Order is an optional field that specifies the order in                  which the policy is applied. Policies with higher "order" are applied                  after those with lower order.  If the order is omitted, it may be                  considered to be "infinite" - i.e. the policy will be applied last.  Policies                  with identical order will be applied in alphanumerical order based                  on the Policy "Name".                type: number              preDNAT:                description: PreDNAT indicates to apply the rules in this policy before                  any DNAT.                type: boolean              selector:                description: "The selector is an expression used to pick pick out                  the endpoints that the policy should be applied to. \n Selector                  expressions follow this syntax: \n \tlabel == \"string_literal\"                  \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"                  \  ->  not equal; also matches if label is not present \tlabel in                  { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is                  one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",                  ... }  ->  true if the value of label X is not one of \"a\", \"b\",                  \"c\" \thas(label_name)  -> True if that label is present \t! expr                  -> negation of expr \texpr && expr  -> Short-circuit and \texpr                  || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()                  or the empty selector -> matches all endpoints. \n Label names are                  allowed to contain alphanumerics, -, _ and /. String literals are                  more permissive but they do not support escape characters. \n Examples                  (with made-up labels): \n \ttype == \"webserver\" && deployment                  == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=                  \"dev\" \t! has(label_name)"                type: string              serviceAccountSelector:                description: ServiceAccountSelector is an optional field for an expression                  used to select a pod based on service accounts.                type: string              types:                description: "Types indicates whether this policy applies to ingress,                  or to egress, or to both.  When not explicitly specified (and so                  the value on creation is empty or nil), Calico defaults Types according                  to what Ingress and Egress rules are present in the policy.  The                  default is: \n - [ PolicyTypeIngress ], if there are no Egress rules                  (including the case where there are   also no Ingress rules) \n                  - [ PolicyTypeEgress ], if there are Egress rules but no Ingress                  rules \n - [ PolicyTypeIngress, PolicyTypeEgress ], if there are                  both Ingress and Egress rules. \n When the policy is read back again,                  Types will always be one of these values, never empty or nil."                items:                  description: PolicyType enumerates the possible values of the PolicySpec                    Types field.                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_globalnetworksets.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: globalnetworksets.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: GlobalNetworkSet    listKind: GlobalNetworkSetList    plural: globalnetworksets    singular: globalnetworkset  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: GlobalNetworkSet contains a set of arbitrary IP sub-networks/CIDRs          that share labels to allow rules to refer to them via selectors.  The labels          of GlobalNetworkSet are not namespaced.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: GlobalNetworkSetSpec contains the specification for a NetworkSet              resource.            properties:              nets:                description: The list of IP networks that belong to this set.                items:                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_hostendpoints.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: hostendpoints.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: HostEndpoint    listKind: HostEndpointList    plural: hostendpoints    singular: hostendpoint  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: HostEndpointSpec contains the specification for a HostEndpoint              resource.            properties:              expectedIPs:                description: "The expected IP addresses (IPv4 and IPv6) of the endpoint.                  If \"InterfaceName\" is not present, Calico will look for an interface                  matching any of the IPs in the list and apply policy to that. Note:                  \tWhen using the selector match criteria in an ingress or egress                  security Policy \tor Profile, Calico converts the selector into                  a set of IP addresses. For host \tendpoints, the ExpectedIPs field                  is used for that purpose. (If only the interface \tname is specified,                  Calico does not learn the IPs of the interface for use in match                  \tcriteria.)"                items:                  type: string                type: array              interfaceName:                description: "Either \"*\", or the name of a specific Linux interface                  to apply policy to; or empty.  \"*\" indicates that this HostEndpoint                  governs all traffic to, from or through the default network namespace                  of the host named by the \"Node\" field; entering and leaving that                  namespace via any interface, including those from/to non-host-networked                  local workloads. \n If InterfaceName is not \"*\", this HostEndpoint                  only governs traffic that enters or leaves the host through the                  specific interface named by InterfaceName, or - when InterfaceName                  is empty - through the specific interface that has one of the IPs                  in ExpectedIPs. Therefore, when InterfaceName is empty, at least                  one expected IP must be specified.  Only external interfaces (such                  as \"eth0\") are supported here; it isn't possible for a HostEndpoint                  to protect traffic through a specific local workload interface.                  \n Note: Only some kinds of policy are implemented for \"*\" HostEndpoints;                  initially just pre-DNAT policy.  Please check Calico documentation                  for the latest position."                type: string              node:                description: The node name identifying the Calico node instance.                type: string              ports:                description: Ports contains the endpoint's named ports, which may                  be referenced in security policy rules.                items:                  properties:                    name:                      type: string                    port:                      type: integer                    protocol:                      anyOf:                      - type: integer                      - type: string                      pattern: ^.*                      x-kubernetes-int-or-string: true                  required:                  - name                  - port                  - protocol                  type: object                type: array              profiles:                description: A list of identifiers of security Profile objects that                  apply to this endpoint. Each profile is applied in the order that                  they appear in this list.  Profile rules are applied after the selector-based                  security policy.                items:                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_ipamblocks.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: ipamblocks.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: IPAMBlock    listKind: IPAMBlockList    plural: ipamblocks    singular: ipamblock  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: IPAMBlockSpec contains the specification for an IPAMBlock              resource.            properties:              affinity:                description: Affinity of the block, if this block has one. If set,                  it will be of the form "host:<hostname>". If not set, this block                  is not affine to a host.                type: string              allocations:                description: Array of allocations in-use within this block. nil entries                  mean the allocation is free. For non-nil entries at index i, the                  index is the ordinal of the allocation within this block and the                  value is the index of the associated attributes in the Attributes                  array.                items:                  type: integer                  # TODO: This nullable is manually added in. We should update controller-gen                  # to handle []*int properly itself.                  nullable: true                type: array              attributes:                description: Attributes is an array of arbitrary metadata associated                  with allocations in the block. To find attributes for a given allocation,                  use the value of the allocation's entry in the Allocations array                  as the index of the element in this array.                items:                  properties:                    handle_id:                      type: string                    secondary:                      additionalProperties:                        type: string                      type: object                  type: object                type: array              cidr:                description: The block's CIDR.                type: string              deleted:                description: Deleted is an internal boolean used to workaround a limitation                  in the Kubernetes API whereby deletion will not return a conflict                  error if the block has been updated. It should not be set manually.                type: boolean              sequenceNumber:                default: 0                description: We store a sequence number that is updated each time                  the block is written. Each allocation will also store the sequence                  number of the block at the time of its creation. When releasing                  an IP, passing the sequence number associated with the allocation                  allows us to protect against a race condition and ensure the IP                  hasn't been released and re-allocated since the release request.                format: int64                type: integer              sequenceNumberForAllocation:                additionalProperties:                  format: int64                  type: integer                description: Map of allocated ordinal within the block to sequence                  number of the block at the time of allocation. Kubernetes does not                  allow numerical keys for maps, so the key is cast to a string.                type: object              strictAffinity:                description: StrictAffinity on the IPAMBlock is deprecated and no                  longer used by the code. Use IPAMConfig StrictAffinity instead.                type: boolean              unallocated:                description: Unallocated is an ordered list of allocations which are                  free in the block.                items:                  type: integer                type: array            required:            - allocations            - attributes            - cidr            - strictAffinity            - unallocated            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_ipamconfigs.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: ipamconfigs.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: IPAMConfig    listKind: IPAMConfigList    plural: ipamconfigs    singular: ipamconfig  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: IPAMConfigSpec contains the specification for an IPAMConfig              resource.            properties:              autoAllocateBlocks:                type: boolean              maxBlocksPerHost:                description: MaxBlocksPerHost, if non-zero, is the max number of blocks                  that can be affine to each host.                maximum: 2147483647                minimum: 0                type: integer              strictAffinity:                type: boolean            required:            - autoAllocateBlocks            - strictAffinity            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_ipamhandles.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: ipamhandles.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: IPAMHandle    listKind: IPAMHandleList    plural: ipamhandles    singular: ipamhandle  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: IPAMHandleSpec contains the specification for an IPAMHandle              resource.            properties:              block:                additionalProperties:                  type: integer                type: object              deleted:                type: boolean              handleID:                type: string            required:            - block            - handleID            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_ippools.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: ippools.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: IPPool    listKind: IPPoolList    plural: ippools    singular: ippool  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: IPPoolSpec contains the specification for an IPPool resource.            properties:              allowedUses:                description: AllowedUse controls what the IP pool will be used for.  If                  not specified or empty, defaults to ["Tunnel", "Workload"] for back-compatibility                items:                  type: string                type: array              blockSize:                description: The block size to use for IP address assignments from                  this pool. Defaults to 26 for IPv4 and 122 for IPv6.                type: integer              cidr:                description: The pool CIDR.                type: string              disableBGPExport:                description: 'Disable exporting routes from this IP Pool''s CIDR over                  BGP. [Default: false]'                type: boolean              disabled:                description: When disabled is true, Calico IPAM will not assign addresses                  from this pool.                type: boolean              ipip:                description: 'Deprecated: this field is only used for APIv1 backwards                  compatibility. Setting this field is not allowed, this field is                  for internal use only.'                properties:                  enabled:                    description: When enabled is true, ipip tunneling will be used                      to deliver packets to destinations within this pool.                    type: boolean                  mode:                    description: The IPIP mode.  This can be one of "always" or "cross-subnet".  A                      mode of "always" will also use IPIP tunneling for routing to                      destination IP addresses within this pool.  A mode of "cross-subnet"                      will only use IPIP tunneling when the destination node is on                      a different subnet to the originating node.  The default value                      (if not specified) is "always".                    type: string                type: object              ipipMode:                description: Contains configuration for IPIP tunneling for this pool.                  If not specified, then this is defaulted to "Never" (i.e. IPIP tunneling                  is disabled).                type: string              nat-outgoing:                description: 'Deprecated: this field is only used for APIv1 backwards                  compatibility. Setting this field is not allowed, this field is                  for internal use only.'                type: boolean              natOutgoing:                description: When natOutgoing is true, packets sent from Calico networked                  containers in this pool to destinations outside of this pool will                  be masqueraded.                type: boolean              nodeSelector:                description: Allows IPPool to allocate for a specific node by label                  selector.                type: string              vxlanMode:                description: Contains configuration for VXLAN tunneling for this pool.                  If not specified, then this is defaulted to "Never" (i.e. VXLAN                  tunneling is disabled).                type: string            required:            - cidr            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_ipreservations.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: (devel)  creationTimestamp: null  name: ipreservations.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: IPReservation    listKind: IPReservationList    plural: ipreservations    singular: ipreservation  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: IPReservationSpec contains the specification for an IPReservation              resource.            properties:              reservedCIDRs:                description: ReservedCIDRs is a list of CIDRs and/or IP addresses                  that Calico IPAM will exclude from new allocations.                items:                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_kubecontrollersconfigurations.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: kubecontrollersconfigurations.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: KubeControllersConfiguration    listKind: KubeControllersConfigurationList    plural: kubecontrollersconfigurations    singular: kubecontrollersconfiguration  preserveUnknownFields: false  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: KubeControllersConfigurationSpec contains the values of the              Kubernetes controllers configuration.            properties:              controllers:                description: Controllers enables and configures individual Kubernetes                  controllers                properties:                  namespace:                    description: Namespace enables and configures the namespace controller.                      Enabled by default, set to nil to disable.                    properties:                      reconcilerPeriod:                        description: 'ReconcilerPeriod is the period to perform reconciliation                          with the Calico datastore. [Default: 5m]'                        type: string                    type: object                  node:                    description: Node enables and configures the node controller.                      Enabled by default, set to nil to disable.                    properties:                      hostEndpoint:                        description: HostEndpoint controls syncing nodes to host endpoints.                          Disabled by default, set to nil to disable.                        properties:                          autoCreate:                            description: 'AutoCreate enables automatic creation of                              host endpoints for every node. [Default: Disabled]'                            type: string                        type: object                      leakGracePeriod:                        description: 'LeakGracePeriod is the period used by the controller                          to determine if an IP address has been leaked. Set to 0                          to disable IP garbage collection. [Default: 15m]'                        type: string                      reconcilerPeriod:                        description: 'ReconcilerPeriod is the period to perform reconciliation                          with the Calico datastore. [Default: 5m]'                        type: string                      syncLabels:                        description: 'SyncLabels controls whether to copy Kubernetes                          node labels to Calico nodes. [Default: Enabled]'                        type: string                    type: object                  policy:                    description: Policy enables and configures the policy controller.                      Enabled by default, set to nil to disable.                    properties:                      reconcilerPeriod:                        description: 'ReconcilerPeriod is the period to perform reconciliation                          with the Calico datastore. [Default: 5m]'                        type: string                    type: object                  serviceAccount:                    description: ServiceAccount enables and configures the service                      account controller. Enabled by default, set to nil to disable.                    properties:                      reconcilerPeriod:                        description: 'ReconcilerPeriod is the period to perform reconciliation                          with the Calico datastore. [Default: 5m]'                        type: string                    type: object                  workloadEndpoint:                    description: WorkloadEndpoint enables and configures the workload                      endpoint controller. Enabled by default, set to nil to disable.                    properties:                      reconcilerPeriod:                        description: 'ReconcilerPeriod is the period to perform reconciliation                          with the Calico datastore. [Default: 5m]'                        type: string                    type: object                type: object              debugProfilePort:                description: DebugProfilePort configures the port to serve memory                  and cpu profiles on. If not specified, profiling is disabled.                format: int32                type: integer              etcdV3CompactionPeriod:                description: 'EtcdV3CompactionPeriod is the period between etcdv3                  compaction requests. Set to 0 to disable. [Default: 10m]'                type: string              healthChecks:                description: 'HealthChecks enables or disables support for health                  checks [Default: Enabled]'                type: string              logSeverityScreen:                description: 'LogSeverityScreen is the log severity above which logs                  are sent to the stdout. [Default: Info]'                type: string              prometheusMetricsPort:                description: 'PrometheusMetricsPort is the TCP port that the Prometheus                  metrics server should bind to. Set to 0 to disable. [Default: 9094]'                type: integer            required:            - controllers            type: object          status:            description: KubeControllersConfigurationStatus represents the status              of the configuration. It's useful for admins to be able to see the actual              config that was applied, which can be modified by environment variables              on the kube-controllers process.            properties:              environmentVars:                additionalProperties:                  type: string                description: EnvironmentVars contains the environment variables on                  the kube-controllers that influenced the RunningConfig.                type: object              runningConfig:                description: RunningConfig contains the effective config that is running                  in the kube-controllers pod, after merging the API resource with                  any environment variables.                properties:                  controllers:                    description: Controllers enables and configures individual Kubernetes                      controllers                    properties:                      namespace:                        description: Namespace enables and configures the namespace                          controller. Enabled by default, set to nil to disable.                        properties:                          reconcilerPeriod:                            description: 'ReconcilerPeriod is the period to perform                              reconciliation with the Calico datastore. [Default:                              5m]'                            type: string                        type: object                      node:                        description: Node enables and configures the node controller.                          Enabled by default, set to nil to disable.                        properties:                          hostEndpoint:                            description: HostEndpoint controls syncing nodes to host                              endpoints. Disabled by default, set to nil to disable.                            properties:                              autoCreate:                                description: 'AutoCreate enables automatic creation                                  of host endpoints for every node. [Default: Disabled]'                                type: string                            type: object                          leakGracePeriod:                            description: 'LeakGracePeriod is the period used by the                              controller to determine if an IP address has been leaked.                              Set to 0 to disable IP garbage collection. [Default:                              15m]'                            type: string                          reconcilerPeriod:                            description: 'ReconcilerPeriod is the period to perform                              reconciliation with the Calico datastore. [Default:                              5m]'                            type: string                          syncLabels:                            description: 'SyncLabels controls whether to copy Kubernetes                              node labels to Calico nodes. [Default: Enabled]'                            type: string                        type: object                      policy:                        description: Policy enables and configures the policy controller.                          Enabled by default, set to nil to disable.                        properties:                          reconcilerPeriod:                            description: 'ReconcilerPeriod is the period to perform                              reconciliation with the Calico datastore. [Default:                              5m]'                            type: string                        type: object                      serviceAccount:                        description: ServiceAccount enables and configures the service                          account controller. Enabled by default, set to nil to disable.                        properties:                          reconcilerPeriod:                            description: 'ReconcilerPeriod is the period to perform                              reconciliation with the Calico datastore. [Default:                              5m]'                            type: string                        type: object                      workloadEndpoint:                        description: WorkloadEndpoint enables and configures the workload                          endpoint controller. Enabled by default, set to nil to disable.                        properties:                          reconcilerPeriod:                            description: 'ReconcilerPeriod is the period to perform                              reconciliation with the Calico datastore. [Default:                              5m]'                            type: string                        type: object                    type: object                  debugProfilePort:                    description: DebugProfilePort configures the port to serve memory                      and cpu profiles on. If not specified, profiling is disabled.                    format: int32                    type: integer                  etcdV3CompactionPeriod:                    description: 'EtcdV3CompactionPeriod is the period between etcdv3                      compaction requests. Set to 0 to disable. [Default: 10m]'                    type: string                  healthChecks:                    description: 'HealthChecks enables or disables support for health                      checks [Default: Enabled]'                    type: string                  logSeverityScreen:                    description: 'LogSeverityScreen is the log severity above which                      logs are sent to the stdout. [Default: Info]'                    type: string                  prometheusMetricsPort:                    description: 'PrometheusMetricsPort is the TCP port that the Prometheus                      metrics server should bind to. Set to 0 to disable. [Default:                      9094]'                    type: integer                required:                - controllers                type: object            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_networkpolicies.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: networkpolicies.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: NetworkPolicy    listKind: NetworkPolicyList    plural: networkpolicies    singular: networkpolicy  preserveUnknownFields: false  scope: Namespaced  versions:  - name: v1    schema:      openAPIV3Schema:        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            properties:              egress:                description: The ordered set of egress rules.  Each rule contains                  a set of packet match criteria and a corresponding action to apply.                items:                  description: "A Rule encapsulates a set of match criteria and an                    action.  Both selector-based security Policy and security Profiles                    reference rules - separated out as a list of rules for both ingress                    and egress packet matching. \n Each positive match criteria has                    a negated version, prefixed with \"Not\". All the match criteria                    within a rule must be satisfied for a packet to match. A single                    rule can contain the positive and negative version of a match                    and both must be satisfied for the rule to match."                  properties:                    action:                      type: string                    destination:                      description: Destination contains the match criteria that apply                        to destination entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                    http:                      description: HTTP contains match criteria that apply to HTTP                        requests.                      properties:                        methods:                          description: Methods is an optional field that restricts                            the rule to apply only to HTTP requests that use one of                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple                            methods are OR'd together.                          items:                            type: string                          type: array                        paths:                          description: 'Paths is an optional field that restricts                            the rule to apply to HTTP requests that use one of the                            listed HTTP Paths. Multiple paths are OR''d together.                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may                            ONLY specify either a `exact` or a `prefix` match. The                            validator will check for it.'                          items:                            description: 'HTTPPath specifies an HTTP path to match.                              It may be either of the form: exact: <path>: which matches                              the path exactly or prefix: <path-prefix>: which matches                              the path prefix'                            properties:                              exact:                                type: string                              prefix:                                type: string                            type: object                          type: array                      type: object                    icmp:                      description: ICMP is an optional field that restricts the rule                        to apply to a specific type and code of ICMP traffic.  This                        should only be specified if the Protocol field is set to "ICMP"                        or "ICMPv6".                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    ipVersion:                      description: IPVersion is an optional field that restricts the                        rule to only match a specific IP version.                      type: integer                    metadata:                      description: Metadata contains additional information for this                        rule                      properties:                        annotations:                          additionalProperties:                            type: string                          description: Annotations is a set of key value pairs that                            give extra information about the rule                          type: object                      type: object                    notICMP:                      description: NotICMP is the negated version of the ICMP field.                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    notProtocol:                      anyOf:                      - type: integer                      - type: string                      description: NotProtocol is the negated version of the Protocol                        field.                      pattern: ^.*                      x-kubernetes-int-or-string: true                    protocol:                      anyOf:                      - type: integer                      - type: string                      description: "Protocol is an optional field that restricts the                        rule to only apply to traffic of a specific IP protocol. Required                        if any of the EntityRules contain Ports (because ports only                        apply to certain protocols). \n Must be one of these string                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",                        \"UDPLite\" or an integer in the range 1-255."                      pattern: ^.*                      x-kubernetes-int-or-string: true                    source:                      description: Source contains the match criteria that apply to                        source entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                  required:                  - action                  type: object                type: array              ingress:                description: The ordered set of ingress rules.  Each rule contains                  a set of packet match criteria and a corresponding action to apply.                items:                  description: "A Rule encapsulates a set of match criteria and an                    action.  Both selector-based security Policy and security Profiles                    reference rules - separated out as a list of rules for both ingress                    and egress packet matching. \n Each positive match criteria has                    a negated version, prefixed with \"Not\". All the match criteria                    within a rule must be satisfied for a packet to match. A single                    rule can contain the positive and negative version of a match                    and both must be satisfied for the rule to match."                  properties:                    action:                      type: string                    destination:                      description: Destination contains the match criteria that apply                        to destination entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                    http:                      description: HTTP contains match criteria that apply to HTTP                        requests.                      properties:                        methods:                          description: Methods is an optional field that restricts                            the rule to apply only to HTTP requests that use one of                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple                            methods are OR'd together.                          items:                            type: string                          type: array                        paths:                          description: 'Paths is an optional field that restricts                            the rule to apply to HTTP requests that use one of the                            listed HTTP Paths. Multiple paths are OR''d together.                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may                            ONLY specify either a `exact` or a `prefix` match. The                            validator will check for it.'                          items:                            description: 'HTTPPath specifies an HTTP path to match.                              It may be either of the form: exact: <path>: which matches                              the path exactly or prefix: <path-prefix>: which matches                              the path prefix'                            properties:                              exact:                                type: string                              prefix:                                type: string                            type: object                          type: array                      type: object                    icmp:                      description: ICMP is an optional field that restricts the rule                        to apply to a specific type and code of ICMP traffic.  This                        should only be specified if the Protocol field is set to "ICMP"                        or "ICMPv6".                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    ipVersion:                      description: IPVersion is an optional field that restricts the                        rule to only match a specific IP version.                      type: integer                    metadata:                      description: Metadata contains additional information for this                        rule                      properties:                        annotations:                          additionalProperties:                            type: string                          description: Annotations is a set of key value pairs that                            give extra information about the rule                          type: object                      type: object                    notICMP:                      description: NotICMP is the negated version of the ICMP field.                      properties:                        code:                          description: Match on a specific ICMP code.  If specified,                            the Type value must also be specified. This is a technical                            limitation imposed by the kernel's iptables firewall,                            which Calico uses to enforce the rule.                          type: integer                        type:                          description: Match on a specific ICMP type.  For example                            a value of 8 refers to ICMP Echo Request (i.e. pings).                          type: integer                      type: object                    notProtocol:                      anyOf:                      - type: integer                      - type: string                      description: NotProtocol is the negated version of the Protocol                        field.                      pattern: ^.*                      x-kubernetes-int-or-string: true                    protocol:                      anyOf:                      - type: integer                      - type: string                      description: "Protocol is an optional field that restricts the                        rule to only apply to traffic of a specific IP protocol. Required                        if any of the EntityRules contain Ports (because ports only                        apply to certain protocols). \n Must be one of these string                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",                        \"UDPLite\" or an integer in the range 1-255."                      pattern: ^.*                      x-kubernetes-int-or-string: true                    source:                      description: Source contains the match criteria that apply to                        source entity.                      properties:                        namespaceSelector:                          description: "NamespaceSelector is an optional field that                            contains a selector expression. Only traffic that originates                            from (or terminates at) endpoints within the selected                            namespaces will be matched. When both NamespaceSelector                            and another selector are defined on the same rule, then                            only workload endpoints that are matched by both selectors                            will be selected by the rule. \n For NetworkPolicy, an                            empty NamespaceSelector implies that the Selector is limited                            to selecting only workload endpoints in the same namespace                            as the NetworkPolicy. \n For NetworkPolicy, `global()`                            NamespaceSelector implies that the Selector is limited                            to selecting only GlobalNetworkSet or HostEndpoint. \n                            For GlobalNetworkPolicy, an empty NamespaceSelector implies                            the Selector applies to workload endpoints across all                            namespaces."                          type: string                        nets:                          description: Nets is an optional field that restricts the                            rule to only apply to traffic that originates from (or                            terminates at) IP addresses in any of the given subnets.                          items:                            type: string                          type: array                        notNets:                          description: NotNets is the negated version of the Nets                            field.                          items:                            type: string                          type: array                        notPorts:                          description: NotPorts is the negated version of the Ports                            field. Since only some protocols have ports, if any ports                            are specified it requires the Protocol match in the Rule                            to be set to "TCP" or "UDP".                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        notSelector:                          description: NotSelector is the negated version of the Selector                            field.  See Selector field for subtleties with negated                            selectors.                          type: string                        ports:                          description: "Ports is an optional field that restricts                            the rule to only apply to traffic that has a source (destination)                            port that matches one of these ranges/values. This value                            is a list of integers or strings that represent ranges                            of ports. \n Since only some protocols have ports, if                            any ports are specified it requires the Protocol match                            in the Rule to be set to \"TCP\" or \"UDP\"."                          items:                            anyOf:                            - type: integer                            - type: string                            pattern: ^.*                            x-kubernetes-int-or-string: true                          type: array                        selector:                          description: "Selector is an optional field that contains                            a selector expression (see Policy for sample syntax).                            \ Only traffic that originates from (terminates at) endpoints                            matching the selector will be matched. \n Note that: in                            addition to the negated version of the Selector (see NotSelector                            below), the selector expression syntax itself supports                            negation.  The two types of negation are subtly different.                            One negates the set of matched endpoints, the other negates                            the whole match: \n \tSelector = \"!has(my_label)\" matches                            packets that are from other Calico-controlled \tendpoints                            that do not have the label \"my_label\". \n \tNotSelector                            = \"has(my_label)\" matches packets that are not from                            Calico-controlled \tendpoints that do have the label \"my_label\".                            \n The effect is that the latter will accept packets from                            non-Calico sources whereas the former is limited to packets                            from Calico-controlled endpoints."                          type: string                        serviceAccounts:                          description: ServiceAccounts is an optional field that restricts                            the rule to only apply to traffic that originates from                            (or terminates at) a pod running as a matching service                            account.                          properties:                            names:                              description: Names is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account whose name is in the list.                              items:                                type: string                              type: array                            selector:                              description: Selector is an optional field that restricts                                the rule to only apply to traffic that originates                                from (or terminates at) a pod running as a service                                account that matches the given label selector. If                                both Names and Selector are specified then they are                                AND'ed.                              type: string                          type: object                        services:                          description: "Services is an optional field that contains                            options for matching Kubernetes Services. If specified,                            only traffic that originates from or terminates at endpoints                            within the selected service(s) will be matched, and only                            to/from each endpoint's port. \n Services cannot be specified                            on the same rule as Selector, NotSelector, NamespaceSelector,                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts                            can only be specified with Services on ingress rules."                          properties:                            name:                              description: Name specifies the name of a Kubernetes                                Service to match.                              type: string                            namespace:                              description: Namespace specifies the namespace of the                                given Service. If left empty, the rule will match                                within this policy's namespace.                              type: string                          type: object                      type: object                  required:                  - action                  type: object                type: array              order:                description: Order is an optional field that specifies the order in                  which the policy is applied. Policies with higher "order" are applied                  after those with lower order.  If the order is omitted, it may be                  considered to be "infinite" - i.e. the policy will be applied last.  Policies                  with identical order will be applied in alphanumerical order based                  on the Policy "Name".                type: number              selector:                description: "The selector is an expression used to pick pick out                  the endpoints that the policy should be applied to. \n Selector                  expressions follow this syntax: \n \tlabel == \"string_literal\"                  \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"                  \  ->  not equal; also matches if label is not present \tlabel in                  { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is                  one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",                  ... }  ->  true if the value of label X is not one of \"a\", \"b\",                  \"c\" \thas(label_name)  -> True if that label is present \t! expr                  -> negation of expr \texpr && expr  -> Short-circuit and \texpr                  || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()                  or the empty selector -> matches all endpoints. \n Label names are                  allowed to contain alphanumerics, -, _ and /. String literals are                  more permissive but they do not support escape characters. \n Examples                  (with made-up labels): \n \ttype == \"webserver\" && deployment                  == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=                  \"dev\" \t! has(label_name)"                type: string              serviceAccountSelector:                description: ServiceAccountSelector is an optional field for an expression                  used to select a pod based on service accounts.                type: string              types:                description: "Types indicates whether this policy applies to ingress,                  or to egress, or to both.  When not explicitly specified (and so                  the value on creation is empty or nil), Calico defaults Types according                  to what Ingress and Egress are present in the policy.  The default                  is: \n - [ PolicyTypeIngress ], if there are no Egress rules (including                  the case where there are   also no Ingress rules) \n - [ PolicyTypeEgress                  ], if there are Egress rules but no Ingress rules \n - [ PolicyTypeIngress,                  PolicyTypeEgress ], if there are both Ingress and Egress rules.                  \n When the policy is read back again, Types will always be one                  of these values, never empty or nil."                items:                  description: PolicyType enumerates the possible values of the PolicySpec                    Types field.                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/calico/crd.projectcalico.org_networksets.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  name: networksets.crd.projectcalico.orgspec:  group: crd.projectcalico.org  names:    kind: NetworkSet    listKind: NetworkSetList    plural: networksets    singular: networkset  preserveUnknownFields: false  scope: Namespaced  versions:  - name: v1    schema:      openAPIV3Schema:        description: NetworkSet is the Namespaced-equivalent of the GlobalNetworkSet.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: NetworkSetSpec contains the specification for a NetworkSet              resource.            properties:              nets:                description: The list of IP networks that belong to this set.                items:                  type: string                type: array            type: object        type: object    served: true    storage: truestatus:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/operator.tigera.io_apiservers_crd.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.3.0  name: apiservers.operator.tigera.iospec:  group: operator.tigera.io  names:    kind: APIServer    listKind: APIServerList    plural: apiservers    singular: apiserver  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: APIServer installs the Tigera API server and related resources.          At most one instance of this resource is supported. It must be named "tigera-secure".        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: Specification of the desired state for the Tigera API server.            properties:              apiServerDeployment:                description: APIServerDeployment configures the calico-apiserver (or                  tigera-apiserver in Enterprise) Deployment. If used in conjunction                  with ControlPlaneNodeSelector or ControlPlaneTolerations, then these                  overrides take precedence.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the Deployment.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the API server Deployment.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created Deployment pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the API server Deployment. If omitted,                          the API server Deployment will use its default value for                          minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      template:                        description: Template describes the API server Deployment                          pod that will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the API server Deployment's PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the API server pods. If specified, this                                  overrides any affinity that may be set on the API                                  server Deployment. If omitted, the API server Deployment                                  will use its default value for affinity. WARNING:                                  Please note that this field will override the default                                  API server Deployment affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                    This field is beta-level and is                                                    only honored when PodAffinityNamespaceSelector                                                    feature is enabled.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace"                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces. This field                                                is beta-level and is only honored                                                when PodAffinityNamespaceSelector                                                feature is enabled.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace"                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                    This field is beta-level and is                                                    only honored when PodAffinityNamespaceSelector                                                    feature is enabled.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace"                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces. This field                                                is beta-level and is only honored                                                when PodAffinityNamespaceSelector                                                feature is enabled.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace"                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of API server containers.                                  If specified, this overrides the specified API server                                  Deployment containers. If omitted, the API server                                  Deployment will use its default values for its containers.                                items:                                  description: APIServerDeploymentContainer is an                                    API server Deployment container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the API server Deployment container by name.                                      enum:                                      - calico-apiserver                                      - tigera-queryserver                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named API server Deployment                                        container's resources. If omitted, the API                                        server Deployment will use its default value                                        for this container's resources. If used in                                        conjunction with the deprecated ComponentResources,                                        then this value takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              initContainers:                                description: InitContainers is a list of API server                                  init containers. If specified, this overrides the                                  specified API server Deployment init containers.                                  If omitted, the API server Deployment will use its                                  default values for its init containers.                                items:                                  description: APIServerDeploymentInitContainer is                                    an API server Deployment init container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the API server Deployment init container by                                        name.                                      enum:                                      - calico-apiserver-certs-key-cert-provisioner                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named API server Deployment                                        init container's resources. If omitted, the                                        API server Deployment will use its default                                        value for this init container's resources.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the API server pod''s                                  scheduling constraints. If specified, each of the                                  key/value pairs are added to the API server Deployment                                  nodeSelector provided the key does not already exist                                  in the object''s nodeSelector. If used in conjunction                                  with ControlPlaneNodeSelector, that nodeSelector                                  is set on the API server Deployment and each of                                  this field''s key/value pairs are added to the API                                  server Deployment nodeSelector provided the key                                  does not already exist in the object''s nodeSelector.                                  If omitted, the API server Deployment will use its                                  default value for nodeSelector. WARNING: Please                                  note that this field will modify the default API                                  server Deployment nodeSelector.'                                type: object                              tolerations:                                description: 'Tolerations is the API server pod''s                                  tolerations. If specified, this overrides any tolerations                                  that may be set on the API server Deployment. If                                  omitted, the API server Deployment will use its                                  default value for tolerations. WARNING: Please note                                  that this field will override the default API server                                  Deployment tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object            type: object          status:            description: Most recently observed status for the Tigera API server.            properties:              state:                description: State provides user-readable status.                type: string            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/operator.tigera.io_imagesets_crd.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.3.0  name: imagesets.operator.tigera.iospec:  group: operator.tigera.io  names:    kind: ImageSet    listKind: ImageSetList    plural: imagesets    singular: imageset  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: ImageSet is used to specify image digests for the images that          the operator deploys. The name of the ImageSet is expected to be in the          format `<variant>-<release>`. The `variant` used is `enterprise` if the          InstallationSpec Variant is `TigeraSecureEnterprise` otherwise it is `calico`.          The `release` must match the version of the variant that the operator is          built to deploy, this version can be obtained by passing the `--version`          flag to the operator binary.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: ImageSetSpec defines the desired state of ImageSet.            properties:              images:                description: Images is the list of images to use digests. All images                  that the operator will deploy must be specified.                items:                  properties:                    digest:                      description: Digest is the image identifier that will be used                        for the Image. The field should not include a leading `@`                        and must be prefixed with `sha256:`.                      type: string                    image:                      description: Image is an image that the operator deploys and                        instead of using the built in tag the operator will use the                        Digest for the image identifier. The value should be the image                        name without registry or tag or digest. For the image `docker.io/calico/node:v3.17.1`                        it should be represented as `calico/node`                      type: string                  required:                  - digest                  - image                  type: object                type: array            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: crds/operator.tigera.io_installations_crd.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.11.3  name: installations.operator.tigera.iospec:  group: operator.tigera.io  names:    kind: Installation    listKind: InstallationList    plural: installations    singular: installation  scope: Cluster  versions:  - name: v1    schema:      openAPIV3Schema:        description: Installation configures an installation of Calico or Calico Enterprise.          At most one instance of this resource is supported. It must be named "default".          The Installation API installs core networking and network policy components,          and provides general install-time configuration.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: Specification of the desired state for the Calico or Calico              Enterprise installation.            properties:              calicoKubeControllersDeployment:                description: CalicoKubeControllersDeployment configures the calico-kube-controllers                  Deployment. If used in conjunction with the deprecated ComponentResources,                  then these overrides take precedence.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the Deployment.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the calico-kube-controllers                      Deployment.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created Deployment pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the calico-kube-controllers Deployment.                          If omitted, the calico-kube-controllers Deployment will                          use its default value for minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      template:                        description: Template describes the calico-kube-controllers                          Deployment pod that will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the calico-kube-controllers Deployment's                              PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the calico-kube-controllers pods. If specified,                                  this overrides any affinity that may be set on the                                  calico-kube-controllers Deployment. If omitted,                                  the calico-kube-controllers Deployment will use                                  its default value for affinity. WARNING: Please                                  note that this field will override the default calico-kube-controllers                                  Deployment affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                        x-kubernetes-map-type: atomic                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of calico-kube-controllers                                  containers. If specified, this overrides the specified                                  calico-kube-controllers Deployment containers. If                                  omitted, the calico-kube-controllers Deployment                                  will use its default values for its containers.                                items:                                  description: CalicoKubeControllersDeploymentContainer                                    is a calico-kube-controllers Deployment container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the calico-kube-controllers Deployment container                                        by name.                                      enum:                                      - calico-kube-controllers                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named calico-kube-controllers                                        Deployment container's resources. If omitted,                                        the calico-kube-controllers Deployment will                                        use its default value for this container's                                        resources. If used in conjunction with the                                        deprecated ComponentResources, then this value                                        takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the calico-kube-controllers                                  pod''s scheduling constraints. If specified, each                                  of the key/value pairs are added to the calico-kube-controllers                                  Deployment nodeSelector provided the key does not                                  already exist in the object''s nodeSelector. If                                  used in conjunction with ControlPlaneNodeSelector,                                  that nodeSelector is set on the calico-kube-controllers                                  Deployment and each of this field''s key/value pairs                                  are added to the calico-kube-controllers Deployment                                  nodeSelector provided the key does not already exist                                  in the object''s nodeSelector. If omitted, the calico-kube-controllers                                  Deployment will use its default value for nodeSelector.                                  WARNING: Please note that this field will modify                                  the default calico-kube-controllers Deployment nodeSelector.'                                type: object                              tolerations:                                description: 'Tolerations is the calico-kube-controllers                                  pod''s tolerations. If specified, this overrides                                  any tolerations that may be set on the calico-kube-controllers                                  Deployment. If omitted, the calico-kube-controllers                                  Deployment will use its default value for tolerations.                                  WARNING: Please note that this field will override                                  the default calico-kube-controllers Deployment tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object              calicoNetwork:                description: CalicoNetwork specifies networking configuration options                  for Calico.                properties:                  bgp:                    description: BGP configures whether or not to enable Calico's                      BGP capabilities.                    enum:                    - Enabled                    - Disabled                    type: string                  containerIPForwarding:                    description: 'ContainerIPForwarding configures whether ip forwarding                      will be enabled for containers in the CNI configuration. Default:                      Disabled'                    enum:                    - Enabled                    - Disabled                    type: string                  hostPorts:                    description: 'HostPorts configures whether or not Calico will                      support Kubernetes HostPorts. Valid only when using the Calico                      CNI plugin. Default: Enabled'                    enum:                    - Enabled                    - Disabled                    type: string                  ipPools:                    description: IPPools contains a list of IP pools to create if                      none exist. At most one IP pool of each address family may be                      specified. If omitted, a single pool will be configured if needed.                    items:                      properties:                        blockSize:                          description: 'BlockSize specifies the CIDR prefex length                            to use when allocating per-node IP blocks from the main                            IP pool CIDR. Default: 26 (IPv4), 122 (IPv6)'                          format: int32                          type: integer                        cidr:                          description: CIDR contains the address range for the IP                            Pool in classless inter-domain routing format.                          type: string                        disableBGPExport:                          default: false                          description: 'DisableBGPExport specifies whether routes                            from this IP pool''s CIDR are exported over BGP. Default:                            false'                          type: boolean                        encapsulation:                          description: 'Encapsulation specifies the encapsulation                            type that will be used with the IP Pool. Default: IPIP'                          enum:                          - IPIPCrossSubnet                          - IPIP                          - VXLAN                          - VXLANCrossSubnet                          - None                          type: string                        natOutgoing:                          description: 'NATOutgoing specifies if NAT will be enabled                            or disabled for outgoing traffic. Default: Enabled'                          enum:                          - Enabled                          - Disabled                          type: string                        nodeSelector:                          description: 'NodeSelector specifies the node selector that                            will be set for the IP Pool. Default: ''all()'''                          type: string                      required:                      - cidr                      type: object                    type: array                  linuxDataplane:                    description: 'LinuxDataplane is used to select the dataplane used                      for Linux nodes. In particular, it causes the operator to add                      required mounts and environment variables for the particular                      dataplane. If not specified, iptables mode is used. Default:                      Iptables'                    enum:                    - Iptables                    - BPF                    - VPP                    type: string                  mtu:                    description: MTU specifies the maximum transmission unit to use                      on the pod network. If not specified, Calico will perform MTU                      auto-detection based on the cluster network.                    format: int32                    type: integer                  multiInterfaceMode:                    description: 'MultiInterfaceMode configures what will configure                      multiple interface per pod. Only valid for Calico Enterprise                      installations using the Calico CNI plugin. Default: None'                    enum:                    - None                    - Multus                    type: string                  nodeAddressAutodetectionV4:                    description: NodeAddressAutodetectionV4 specifies an approach                      to automatically detect node IPv4 addresses. If not specified,                      will use default auto-detection settings to acquire an IPv4                      address for each node.                    properties:                      canReach:                        description: CanReach enables IP auto-detection based on which                          source address on the node is used to reach the specified                          IP or domain.                        type: string                      cidrs:                        description: CIDRS enables IP auto-detection based on which                          addresses on the nodes are within one of the provided CIDRs.                        items:                          type: string                        type: array                      firstFound:                        description: FirstFound uses default interface matching parameters                          to select an interface, performing best-effort filtering                          based on well-known interface names.                        type: boolean                      interface:                        description: Interface enables IP auto-detection based on                          interfaces that match the given regex.                        type: string                      kubernetes:                        description: Kubernetes configures Calico to detect node addresses                          based on the Kubernetes API.                        enum:                        - NodeInternalIP                        type: string                      skipInterface:                        description: SkipInterface enables IP auto-detection based                          on interfaces that do not match the given regex.                        type: string                    type: object                  nodeAddressAutodetectionV6:                    description: NodeAddressAutodetectionV6 specifies an approach                      to automatically detect node IPv6 addresses. If not specified,                      IPv6 addresses will not be auto-detected.                    properties:                      canReach:                        description: CanReach enables IP auto-detection based on which                          source address on the node is used to reach the specified                          IP or domain.                        type: string                      cidrs:                        description: CIDRS enables IP auto-detection based on which                          addresses on the nodes are within one of the provided CIDRs.                        items:                          type: string                        type: array                      firstFound:                        description: FirstFound uses default interface matching parameters                          to select an interface, performing best-effort filtering                          based on well-known interface names.                        type: boolean                      interface:                        description: Interface enables IP auto-detection based on                          interfaces that match the given regex.                        type: string                      kubernetes:                        description: Kubernetes configures Calico to detect node addresses                          based on the Kubernetes API.                        enum:                        - NodeInternalIP                        type: string                      skipInterface:                        description: SkipInterface enables IP auto-detection based                          on interfaces that do not match the given regex.                        type: string                    type: object                type: object              calicoNodeDaemonSet:                description: CalicoNodeDaemonSet configures the calico-node DaemonSet.                  If used in conjunction with the deprecated ComponentResources, then                  these overrides take precedence.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the DaemonSet.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the calico-node DaemonSet.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created DaemonSet pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the calico-node DaemonSet. If omitted,                          the calico-node DaemonSet will use its default value for                          minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      template:                        description: Template describes the calico-node DaemonSet                          pod that will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the calico-node DaemonSet's PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the calico-node pods. If specified, this                                  overrides any affinity that may be set on the calico-node                                  DaemonSet. If omitted, the calico-node DaemonSet                                  will use its default value for affinity. WARNING:                                  Please note that this field will override the default                                  calico-node DaemonSet affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                        x-kubernetes-map-type: atomic                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of calico-node containers.                                  If specified, this overrides the specified calico-node                                  DaemonSet containers. If omitted, the calico-node                                  DaemonSet will use its default values for its containers.                                items:                                  description: CalicoNodeDaemonSetContainer is a calico-node                                    DaemonSet container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the calico-node DaemonSet container by name.                                      enum:                                      - calico-node                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named calico-node DaemonSet                                        container's resources. If omitted, the calico-node                                        DaemonSet will use its default value for this                                        container's resources. If used in conjunction                                        with the deprecated ComponentResources, then                                        this value takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              initContainers:                                description: InitContainers is a list of calico-node                                  init containers. If specified, this overrides the                                  specified calico-node DaemonSet init containers.                                  If omitted, the calico-node DaemonSet will use its                                  default values for its init containers.                                items:                                  description: CalicoNodeDaemonSetInitContainer is                                    a calico-node DaemonSet init container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the calico-node DaemonSet init container by                                        name.                                      enum:                                      - install-cni                                      - hostpath-init                                      - flexvol-driver                                      - mount-bpffs                                      - node-certs-key-cert-provisioner                                      - calico-node-prometheus-server-tls-key-cert-provisioner                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named calico-node DaemonSet                                        init container's resources. If omitted, the                                        calico-node DaemonSet will use its default                                        value for this container's resources. If used                                        in conjunction with the deprecated ComponentResources,                                        then this value takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the calico-node pod''s                                  scheduling constraints. If specified, each of the                                  key/value pairs are added to the calico-node DaemonSet                                  nodeSelector provided the key does not already exist                                  in the object''s nodeSelector. If omitted, the calico-node                                  DaemonSet will use its default value for nodeSelector.                                  WARNING: Please note that this field will modify                                  the default calico-node DaemonSet nodeSelector.'                                type: object                              tolerations:                                description: 'Tolerations is the calico-node pod''s                                  tolerations. If specified, this overrides any tolerations                                  that may be set on the calico-node DaemonSet. If                                  omitted, the calico-node DaemonSet will use its                                  default value for tolerations. WARNING: Please note                                  that this field will override the default calico-node                                  DaemonSet tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object              calicoWindowsUpgradeDaemonSet:                description: CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade                  DaemonSet.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the Deployment.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the calico-windows-upgrade                      DaemonSet.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created Deployment pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the calico-windows-upgrade DaemonSet.                          If omitted, the calico-windows-upgrade DaemonSet will use                          its default value for minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      template:                        description: Template describes the calico-windows-upgrade                          DaemonSet pod that will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the calico-windows-upgrade DaemonSet's                              PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the calico-windows-upgrade pods. If specified,                                  this overrides any affinity that may be set on the                                  calico-windows-upgrade DaemonSet. If omitted, the                                  calico-windows-upgrade DaemonSet will use its default                                  value for affinity. WARNING: Please note that this                                  field will override the default calico-windows-upgrade                                  DaemonSet affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                        x-kubernetes-map-type: atomic                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of calico-windows-upgrade                                  containers. If specified, this overrides the specified                                  calico-windows-upgrade DaemonSet containers. If                                  omitted, the calico-windows-upgrade DaemonSet will                                  use its default values for its containers.                                items:                                  description: CalicoWindowsUpgradeDaemonSetContainer                                    is a calico-windows-upgrade DaemonSet container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the calico-windows-upgrade DaemonSet container                                        by name.                                      enum:                                      - calico-windows-upgrade                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named calico-windows-upgrade                                        DaemonSet container's resources. If omitted,                                        the calico-windows-upgrade DaemonSet will                                        use its default value for this container's                                        resources.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the calico-windows-upgrade                                  pod''s scheduling constraints. If specified, each                                  of the key/value pairs are added to the calico-windows-upgrade                                  DaemonSet nodeSelector provided the key does not                                  already exist in the object''s nodeSelector. If                                  omitted, the calico-windows-upgrade DaemonSet will                                  use its default value for nodeSelector. WARNING:                                  Please note that this field will modify the default                                  calico-windows-upgrade DaemonSet nodeSelector.'                                type: object                              tolerations:                                description: 'Tolerations is the calico-windows-upgrade                                  pod''s tolerations. If specified, this overrides                                  any tolerations that may be set on the calico-windows-upgrade                                  DaemonSet. If omitted, the calico-windows-upgrade                                  DaemonSet will use its default value for tolerations.                                  WARNING: Please note that this field will override                                  the default calico-windows-upgrade DaemonSet tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object              certificateManagement:                description: CertificateManagement configures pods to submit a CertificateSigningRequest                  to the certificates.k8s.io/v1beta1 API in order to obtain TLS certificates.                  This feature requires that you bring your own CSR signing and approval                  process, otherwise pods will be stuck during initialization.                properties:                  caCert:                    description: Certificate of the authority that signs the CertificateSigningRequests                      in PEM format.                    format: byte                    type: string                  keyAlgorithm:                    description: 'Specify the algorithm used by pods to generate a                      key pair that is associated with the X.509 certificate request.                      Default: RSAWithSize2048'                    enum:                    - ""                    - RSAWithSize2048                    - RSAWithSize4096                    - RSAWithSize8192                    - ECDSAWithCurve256                    - ECDSAWithCurve384                    - ECDSAWithCurve521                    type: string                  signatureAlgorithm:                    description: 'Specify the algorithm used for the signature of                      the X.509 certificate request. Default: SHA256WithRSA'                    enum:                    - ""                    - SHA256WithRSA                    - SHA384WithRSA                    - SHA512WithRSA                    - ECDSAWithSHA256                    - ECDSAWithSHA384                    - ECDSAWithSHA512                    type: string                  signerName:                    description: 'When a CSR is issued to the certificates.k8s.io                      API, the signerName is added to the request in order to accommodate                      for clusters with multiple signers. Must be formatted as: `<my-domain>/<my-signername>`.'                    type: string                required:                - caCert                - signerName                type: object              cni:                description: CNI specifies the CNI that will be used by this installation.                properties:                  ipam:                    description: IPAM specifies the pod IP address management that                      will be used in the Calico or Calico Enterprise installation.                    properties:                      type:                        description: "Specifies the IPAM plugin that will be used                          in the Calico or Calico Enterprise installation. * For CNI                          Plugin Calico, this field defaults to Calico. * For CNI                          Plugin GKE, this field defaults to HostLocal. * For CNI                          Plugin AzureVNET, this field defaults to AzureVNET. * For                          CNI Plugin AmazonVPC, this field defaults to AmazonVPC.                          \n The IPAM plugin is installed and configured only if the                          CNI plugin is set to Calico, for all other values of the                          CNI plugin the plugin binaries and CNI config is a dependency                          that is expected to be installed separately. \n Default:                          Calico"                        enum:                        - Calico                        - HostLocal                        - AmazonVPC                        - AzureVNET                        type: string                    required:                    - type                    type: object                  type:                    description: "Specifies the CNI plugin that will be used in the                      Calico or Calico Enterprise installation. * For KubernetesProvider                      GKE, this field defaults to GKE. * For KubernetesProvider AKS,                      this field defaults to AzureVNET. * For KubernetesProvider EKS,                      this field defaults to AmazonVPC. * If aws-node daemonset exists                      in kube-system when the Installation resource is created, this                      field defaults to AmazonVPC. * For all other cases this field                      defaults to Calico. \n For the value Calico, the CNI plugin                      binaries and CNI config will be installed as part of deployment,                      for all other values the CNI plugin binaries and CNI config                      is a dependency that is expected to be installed separately.                      \n Default: Calico"                    enum:                    - Calico                    - GKE                    - AmazonVPC                    - AzureVNET                    type: string                required:                - type                type: object              componentResources:                description: Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment,                  and KubeControllersDeployment. ComponentResources can be used to                  customize the resource requirements for each component. Node, Typha,                  and KubeControllers are supported for installations.                items:                  description: Deprecated. Please use component resource config fields                    in Installation.Spec instead. The ComponentResource struct associates                    a ResourceRequirements with a component by name                  properties:                    componentName:                      description: ComponentName is an enum which identifies the component                      enum:                      - Node                      - Typha                      - KubeControllers                      type: string                    resourceRequirements:                      description: ResourceRequirements allows customization of limits                        and requests for compute resources such as cpu and memory.                      properties:                        limits:                          additionalProperties:                            anyOf:                            - type: integer                            - type: string                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                            x-kubernetes-int-or-string: true                          description: 'Limits describes the maximum amount of compute                            resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                          type: object                        requests:                          additionalProperties:                            anyOf:                            - type: integer                            - type: string                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                            x-kubernetes-int-or-string: true                          description: 'Requests describes the minimum amount of compute                            resources required. If Requests is omitted for a container,                            it defaults to Limits if that is explicitly specified,                            otherwise to an implementation-defined value. More info:                            https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                          type: object                      type: object                  required:                  - componentName                  - resourceRequirements                  type: object                type: array              controlPlaneNodeSelector:                additionalProperties:                  type: string                description: ControlPlaneNodeSelector is used to select control plane                  nodes on which to run Calico components. This is globally applied                  to all resources created by the operator excluding daemonsets.                type: object              controlPlaneReplicas:                description: ControlPlaneReplicas defines how many replicas of the                  control plane core components will be deployed. This field applies                  to all control plane components that support High Availability.                  Defaults to 2.                format: int32                type: integer              controlPlaneTolerations:                description: ControlPlaneTolerations specify tolerations which are                  then globally applied to all resources created by the operator.                items:                  description: The pod this Toleration is attached to tolerates any                    taint that matches the triple <key,value,effect> using the matching                    operator <operator>.                  properties:                    effect:                      description: Effect indicates the taint effect to match. Empty                        means match all taint effects. When specified, allowed values                        are NoSchedule, PreferNoSchedule and NoExecute.                      type: string                    key:                      description: Key is the taint key that the toleration applies                        to. Empty means match all taint keys. If the key is empty,                        operator must be Exists; this combination means to match all                        values and all keys.                      type: string                    operator:                      description: Operator represents a key's relationship to the                        value. Valid operators are Exists and Equal. Defaults to Equal.                        Exists is equivalent to wildcard for value, so that a pod                        can tolerate all taints of a particular category.                      type: string                    tolerationSeconds:                      description: TolerationSeconds represents the period of time                        the toleration (which must be of effect NoExecute, otherwise                        this field is ignored) tolerates the taint. By default, it                        is not set, which means tolerate the taint forever (do not                        evict). Zero and negative values will be treated as 0 (evict                        immediately) by the system.                      format: int64                      type: integer                    value:                      description: Value is the taint value the toleration matches                        to. If the operator is Exists, the value should be empty,                        otherwise just a regular string.                      type: string                  type: object                type: array              csiNodeDriverDaemonSet:                description: CSINodeDriverDaemonSet configures the csi-node-driver                  DaemonSet.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the DaemonSet.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the csi-node-driver                      DaemonSet.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created DaemonSet pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the csi-node-driver DaemonSet.                          If omitted, the csi-node-driver DaemonSet will use its default                          value for minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      template:                        description: Template describes the csi-node-driver DaemonSet                          pod that will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the csi-node-driver DaemonSet's PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the csi-node-driver pods. If specified,                                  this overrides any affinity that may be set on the                                  csi-node-driver DaemonSet. If omitted, the csi-node-driver                                  DaemonSet will use its default value for affinity.                                  WARNING: Please note that this field will override                                  the default csi-node-driver DaemonSet affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                        x-kubernetes-map-type: atomic                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of csi-node-driver                                  containers. If specified, this overrides the specified                                  csi-node-driver DaemonSet containers. If omitted,                                  the csi-node-driver DaemonSet will use its default                                  values for its containers.                                items:                                  description: CSINodeDriverDaemonSetContainer is                                    a csi-node-driver DaemonSet container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the csi-node-driver DaemonSet container by                                        name.                                      enum:                                      - csi-node-driver                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named csi-node-driver DaemonSet                                        container's resources. If omitted, the csi-node-driver                                        DaemonSet will use its default value for this                                        container's resources.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the csi-node-driver                                  pod''s scheduling constraints. If specified, each                                  of the key/value pairs are added to the csi-node-driver                                  DaemonSet nodeSelector provided the key does not                                  already exist in the object''s nodeSelector. If                                  omitted, the csi-node-driver DaemonSet will use                                  its default value for nodeSelector. WARNING: Please                                  note that this field will modify the default csi-node-driver                                  DaemonSet nodeSelector.'                                type: object                              tolerations:                                description: 'Tolerations is the csi-node-driver pod''s                                  tolerations. If specified, this overrides any tolerations                                  that may be set on the csi-node-driver DaemonSet.                                  If omitted, the csi-node-driver DaemonSet will use                                  its default value for tolerations. WARNING: Please                                  note that this field will override the default csi-node-driver                                  DaemonSet tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object              fipsMode:                description: 'FIPSMode uses images and features only that are using                  FIPS 140-2 validated cryptographic modules and standards. Default:                  Disabled'                enum:                - Enabled                - Disabled                type: string              flexVolumePath:                description: FlexVolumePath optionally specifies a custom path for                  FlexVolume. If not specified, FlexVolume will be enabled by default.                  If set to 'None', FlexVolume will be disabled. The default is based                  on the kubernetesProvider.                type: string              imagePath:                description: "ImagePath allows for the path part of an image to be                  specified. If specified then the specified value will be used as                  the image path for each image. If not specified or empty, the default                  for each image will be used. A special case value, UseDefault, is                  supported to explicitly specify the default image path will be used                  for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                  \n This option allows configuring the `<imagePath>` portion of the                  above format."                type: string              imagePrefix:                description: "ImagePrefix allows for the prefix part of an image to                  be specified. If specified then the given value will be used as                  a prefix on each image. If not specified or empty, no prefix will                  be used. A special case value, UseDefault, is supported to explicitly                  specify the default image prefix will be used for each image. \n                  Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                  \n This option allows configuring the `<imagePrefix>` portion of                  the above format."                type: string              imagePullSecrets:                description: ImagePullSecrets is an array of references to container                  registry pull secrets to use. These are applied to all images to                  be pulled.                items:                  description: LocalObjectReference contains enough information to                    let you locate the referenced object inside the same namespace.                  properties:                    name:                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names                        TODO: Add other useful fields. apiVersion, kind, uid?'                      type: string                  type: object                  x-kubernetes-map-type: atomic                type: array              kubeletVolumePluginPath:                description: 'KubeletVolumePluginPath optionally specifies enablement                  of Calico CSI plugin. If not specified, CSI will be enabled by default.                  If set to ''None'', CSI will be disabled. Default: /var/lib/kubelet'                type: string              kubernetesProvider:                description: KubernetesProvider specifies a particular provider of                  the Kubernetes platform and enables provider-specific configuration.                  If the specified value is empty, the Operator will attempt to automatically                  determine the current provider. If the specified value is not empty,                  the Operator will still attempt auto-detection, but will additionally                  compare the auto-detected value to the specified value to confirm                  they match.                enum:                - ""                - EKS                - GKE                - AKS                - OpenShift                - DockerEnterprise                - RKE2                type: string              logging:                description: Logging Configuration for Components                properties:                  cni:                    description: Customized logging specification for calico-cni plugin                    properties:                      logFileMaxAgeDays:                        description: 'Default: 30 (days)'                        format: int32                        type: integer                      logFileMaxCount:                        description: 'Default: 10'                        format: int32                        type: integer                      logFileMaxSize:                        anyOf:                        - type: integer                        - type: string                        description: 'Default: 100Mi'                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                        x-kubernetes-int-or-string: true                      logSeverity:                        description: 'Default: Info'                        enum:                        - Error                        - Warning                        - Debug                        - Info                        type: string                    type: object                type: object              nodeMetricsPort:                description: NodeMetricsPort specifies which port calico/node serves                  prometheus metrics on. By default, metrics are not enabled. If specified,                  this overrides any FelixConfiguration resources which may exist.                  If omitted, then prometheus metrics may still be configured through                  FelixConfiguration.                format: int32                type: integer              nodeUpdateStrategy:                description: NodeUpdateStrategy can be used to customize the desired                  update strategy, such as the MaxUnavailable field.                properties:                  rollingUpdate:                    description: 'Rolling update config params. Present only if type                      = "RollingUpdate". --- TODO: Update this to follow our convention                      for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`.                      See https://github.com/kubernetes/kubernetes/issues/35345'                    properties:                      maxSurge:                        anyOf:                        - type: integer                        - type: string                        description: 'The maximum number of nodes with an existing                          available DaemonSet pod that can have an updated DaemonSet                          pod during during an update. Value can be an absolute number                          (ex: 5) or a percentage of desired pods (ex: 10%). This                          can not be 0 if MaxUnavailable is 0. Absolute number is                          calculated from percentage by rounding up to a minimum of                          1. Default value is 0. Example: when this is set to 30%,                          at most 30% of the total number of nodes that should be                          running the daemon pod (i.e. status.desiredNumberScheduled)                          can have their a new pod created before the old pod is marked                          as deleted. The update starts by launching new pods on 30%                          of nodes. Once an updated pod is available (Ready for at                          least minReadySeconds) the old DaemonSet pod on that node                          is marked deleted. If the old pod becomes unavailable for                          any reason (Ready transitions to false, is evicted, or is                          drained) an updated pod is immediatedly created on that                          node without considering surge limits. Allowing surge implies                          the possibility that the resources consumed by the daemonset                          on any given node can double if the readiness check fails,                          and so resource intensive daemonsets should take into account                          that they may cause evictions during disruption.'                        x-kubernetes-int-or-string: true                      maxUnavailable:                        anyOf:                        - type: integer                        - type: string                        description: 'The maximum number of DaemonSet pods that can                          be unavailable during the update. Value can be an absolute                          number (ex: 5) or a percentage of total number of DaemonSet                          pods at the start of the update (ex: 10%). Absolute number                          is calculated from percentage by rounding up. This cannot                          be 0 if MaxSurge is 0 Default value is 1. Example: when                          this is set to 30%, at most 30% of the total number of nodes                          that should be running the daemon pod (i.e. status.desiredNumberScheduled)                          can have their pods stopped for an update at any given time.                          The update starts by stopping at most 30% of those DaemonSet                          pods and then brings up new DaemonSet pods in their place.                          Once the new pods are available, it then proceeds onto other                          DaemonSet pods, thus ensuring that at least 70% of original                          number of DaemonSet pods are available at all times during                          the update.'                        x-kubernetes-int-or-string: true                    type: object                  type:                    description: Type of daemon set update. Can be "RollingUpdate"                      or "OnDelete". Default is RollingUpdate.                    type: string                type: object              nonPrivileged:                description: NonPrivileged configures Calico to be run in non-privileged                  containers as non-root users where possible.                type: string              registry:                description: "Registry is the default Docker registry used for component                  Docker images. If specified then the given value must end with a                  slash character (`/`) and all images will be pulled from this registry.                  If not specified then the default registries will be used. A special                  case value, UseDefault, is supported to explicitly specify the default                  registries will be used. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                  \n This option allows configuring the `<registry>` portion of the                  above format."                type: string              typhaAffinity:                description: Deprecated. Please use Installation.Spec.TyphaDeployment                  instead. TyphaAffinity allows configuration of node affinity characteristics                  for Typha pods.                properties:                  nodeAffinity:                    description: NodeAffinity describes node affinity scheduling rules                      for typha.                    properties:                      preferredDuringSchedulingIgnoredDuringExecution:                        description: The scheduler will prefer to schedule pods to                          nodes that satisfy the affinity expressions specified by                          this field, but it may choose a node that violates one or                          more of the expressions.                        items:                          description: An empty preferred scheduling term matches                            all objects with implicit weight 0 (i.e. it's a no-op).                            A null preferred scheduling term matches no objects (i.e.                            is also a no-op).                          properties:                            preference:                              description: A node selector term, associated with the                                corresponding weight.                              properties:                                matchExpressions:                                  description: A list of node selector requirements                                    by node's labels.                                  items:                                    description: A node selector requirement is a                                      selector that contains values, a key, and an                                      operator that relates the key and values.                                    properties:                                      key:                                        description: The label key that the selector                                          applies to.                                        type: string                                      operator:                                        description: Represents a key's relationship                                          to a set of values. Valid operators are                                          In, NotIn, Exists, DoesNotExist. Gt, and                                          Lt.                                        type: string                                      values:                                        description: An array of string values. If                                          the operator is In or NotIn, the values                                          array must be non-empty. If the operator                                          is Exists or DoesNotExist, the values array                                          must be empty. If the operator is Gt or                                          Lt, the values array must have a single                                          element, which will be interpreted as an                                          integer. This array is replaced during a                                          strategic merge patch.                                        items:                                          type: string                                        type: array                                    required:                                    - key                                    - operator                                    type: object                                  type: array                                matchFields:                                  description: A list of node selector requirements                                    by node's fields.                                  items:                                    description: A node selector requirement is a                                      selector that contains values, a key, and an                                      operator that relates the key and values.                                    properties:                                      key:                                        description: The label key that the selector                                          applies to.                                        type: string                                      operator:                                        description: Represents a key's relationship                                          to a set of values. Valid operators are                                          In, NotIn, Exists, DoesNotExist. Gt, and                                          Lt.                                        type: string                                      values:                                        description: An array of string values. If                                          the operator is In or NotIn, the values                                          array must be non-empty. If the operator                                          is Exists or DoesNotExist, the values array                                          must be empty. If the operator is Gt or                                          Lt, the values array must have a single                                          element, which will be interpreted as an                                          integer. This array is replaced during a                                          strategic merge patch.                                        items:                                          type: string                                        type: array                                    required:                                    - key                                    - operator                                    type: object                                  type: array                              type: object                              x-kubernetes-map-type: atomic                            weight:                              description: Weight associated with matching the corresponding                                nodeSelectorTerm, in the range 1-100.                              format: int32                              type: integer                          required:                          - preference                          - weight                          type: object                        type: array                      requiredDuringSchedulingIgnoredDuringExecution:                        description: 'WARNING: Please note that if the affinity requirements                          specified by this field are not met at scheduling time,                          the pod will NOT be scheduled onto the node. There is no                          fallback to another affinity rules with this setting. This                          may cause networking disruption or even catastrophic failure!                          PreferredDuringSchedulingIgnoredDuringExecution should be                          used for affinity unless there is a specific well understood                          reason to use RequiredDuringSchedulingIgnoredDuringExecution                          and you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution                          will always have sufficient nodes to satisfy the requirement.                          NOTE: RequiredDuringSchedulingIgnoredDuringExecution is                          set by default for AKS nodes, to avoid scheduling Typhas                          on virtual-nodes. If the affinity requirements specified                          by this field cease to be met at some point during pod execution                          (e.g. due to an update), the system may or may not try to                          eventually evict the pod from its node.'                        properties:                          nodeSelectorTerms:                            description: Required. A list of node selector terms.                              The terms are ORed.                            items:                              description: A null or empty node selector term matches                                no objects. The requirements of them are ANDed. The                                TopologySelectorTerm type implements a subset of the                                NodeSelectorTerm.                              properties:                                matchExpressions:                                  description: A list of node selector requirements                                    by node's labels.                                  items:                                    description: A node selector requirement is a                                      selector that contains values, a key, and an                                      operator that relates the key and values.                                    properties:                                      key:                                        description: The label key that the selector                                          applies to.                                        type: string                                      operator:                                        description: Represents a key's relationship                                          to a set of values. Valid operators are                                          In, NotIn, Exists, DoesNotExist. Gt, and                                          Lt.                                        type: string                                      values:                                        description: An array of string values. If                                          the operator is In or NotIn, the values                                          array must be non-empty. If the operator                                          is Exists or DoesNotExist, the values array                                          must be empty. If the operator is Gt or                                          Lt, the values array must have a single                                          element, which will be interpreted as an                                          integer. This array is replaced during a                                          strategic merge patch.                                        items:                                          type: string                                        type: array                                    required:                                    - key                                    - operator                                    type: object                                  type: array                                matchFields:                                  description: A list of node selector requirements                                    by node's fields.                                  items:                                    description: A node selector requirement is a                                      selector that contains values, a key, and an                                      operator that relates the key and values.                                    properties:                                      key:                                        description: The label key that the selector                                          applies to.                                        type: string                                      operator:                                        description: Represents a key's relationship                                          to a set of values. Valid operators are                                          In, NotIn, Exists, DoesNotExist. Gt, and                                          Lt.                                        type: string                                      values:                                        description: An array of string values. If                                          the operator is In or NotIn, the values                                          array must be non-empty. If the operator                                          is Exists or DoesNotExist, the values array                                          must be empty. If the operator is Gt or                                          Lt, the values array must have a single                                          element, which will be interpreted as an                                          integer. This array is replaced during a                                          strategic merge patch.                                        items:                                          type: string                                        type: array                                    required:                                    - key                                    - operator                                    type: object                                  type: array                              type: object                              x-kubernetes-map-type: atomic                            type: array                        required:                        - nodeSelectorTerms                        type: object                        x-kubernetes-map-type: atomic                    type: object                type: object              typhaDeployment:                description: TyphaDeployment configures the typha Deployment. If used                  in conjunction with the deprecated ComponentResources or TyphaAffinity,                  then these overrides take precedence.                properties:                  metadata:                    description: Metadata is a subset of a Kubernetes object's metadata                      that is added to the Deployment.                    properties:                      annotations:                        additionalProperties:                          type: string                        description: Annotations is a map of arbitrary non-identifying                          metadata. Each of these key/value pairs are added to the                          object's annotations provided the key does not already exist                          in the object's annotations.                        type: object                      labels:                        additionalProperties:                          type: string                        description: Labels is a map of string keys and values that                          may match replicaset and service selectors. Each of these                          key/value pairs are added to the object's labels provided                          the key does not already exist in the object's labels.                        type: object                    type: object                  spec:                    description: Spec is the specification of the typha Deployment.                    properties:                      minReadySeconds:                        description: MinReadySeconds is the minimum number of seconds                          for which a newly created Deployment pod should be ready                          without any of its container crashing, for it to be considered                          available. If specified, this overrides any minReadySeconds                          value that may be set on the typha Deployment. If omitted,                          the typha Deployment will use its default value for minReadySeconds.                        format: int32                        maximum: 2147483647                        minimum: 0                        type: integer                      strategy:                        description: The deployment strategy to use to replace existing                          pods with new ones.                        properties:                          rollingUpdate:                            description: Rolling update config params. Present only                              if DeploymentStrategyType = RollingUpdate. to be.                            properties:                              maxSurge:                                anyOf:                                - type: integer                                - type: string                                description: 'The maximum number of pods that can                                  be scheduled above the desired number of pods. Value                                  can be an absolute number (ex: 5) or a percentage                                  of desired pods (ex: 10%). This can not be 0 if                                  MaxUnavailable is 0. Absolute number is calculated                                  from percentage by rounding up. Defaults to 25%.                                  Example: when this is set to 30%, the new ReplicaSet                                  can be scaled up immediately when the rolling update                                  starts, such that the total number of old and new                                  pods do not exceed 130% of desired pods. Once old                                  pods have been killed, new ReplicaSet can be scaled                                  up further, ensuring that total number of pods running                                  at any time during the update is at most 130% of                                  desired pods.'                                x-kubernetes-int-or-string: true                              maxUnavailable:                                anyOf:                                - type: integer                                - type: string                                description: 'The maximum number of pods that can                                  be unavailable during the update. Value can be an                                  absolute number (ex: 5) or a percentage of desired                                  pods (ex: 10%). Absolute number is calculated from                                  percentage by rounding down. This can not be 0 if                                  MaxSurge is 0. Defaults to 25%. Example: when this                                  is set to 30%, the old ReplicaSet can be scaled                                  down to 70% of desired pods immediately when the                                  rolling update starts. Once new pods are ready,                                  old ReplicaSet can be scaled down further, followed                                  by scaling up the new ReplicaSet, ensuring that                                  the total number of pods available at all times                                  during the update is at least 70% of desired pods.'                                x-kubernetes-int-or-string: true                            type: object                        type: object                      template:                        description: Template describes the typha Deployment pod that                          will be created.                        properties:                          metadata:                            description: Metadata is a subset of a Kubernetes object's                              metadata that is added to the pod's metadata.                            properties:                              annotations:                                additionalProperties:                                  type: string                                description: Annotations is a map of arbitrary non-identifying                                  metadata. Each of these key/value pairs are added                                  to the object's annotations provided the key does                                  not already exist in the object's annotations.                                type: object                              labels:                                additionalProperties:                                  type: string                                description: Labels is a map of string keys and values                                  that may match replicaset and service selectors.                                  Each of these key/value pairs are added to the object's                                  labels provided the key does not already exist in                                  the object's labels.                                type: object                            type: object                          spec:                            description: Spec is the typha Deployment's PodSpec.                            properties:                              affinity:                                description: 'Affinity is a group of affinity scheduling                                  rules for the typha pods. If specified, this overrides                                  any affinity that may be set on the typha Deployment.                                  If omitted, the typha Deployment will use its default                                  value for affinity. If used in conjunction with                                  the deprecated TyphaAffinity, then this value takes                                  precedence. WARNING: Please note that this field                                  will override the default calico-typha Deployment                                  affinity.'                                properties:                                  nodeAffinity:                                    description: Describes node affinity scheduling                                      rules for the pod.                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node matches the corresponding matchExpressions;                                          the node(s) with the highest sum are the                                          most preferred.                                        items:                                          description: An empty preferred scheduling                                            term matches all objects with implicit                                            weight 0 (i.e. it's a no-op). A null preferred                                            scheduling term matches no objects (i.e.                                            is also a no-op).                                          properties:                                            preference:                                              description: A node selector term, associated                                                with the corresponding weight.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            weight:                                              description: Weight associated with                                                matching the corresponding nodeSelectorTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - preference                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to an update),                                          the system may or may not try to eventually                                          evict the pod from its node.                                        properties:                                          nodeSelectorTerms:                                            description: Required. A list of node                                              selector terms. The terms are ORed.                                            items:                                              description: A null or empty node selector                                                term matches no objects. The requirements                                                of them are ANDed. The TopologySelectorTerm                                                type implements a subset of the NodeSelectorTerm.                                              properties:                                                matchExpressions:                                                  description: A list of node selector                                                    requirements by node's labels.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchFields:                                                  description: A list of node selector                                                    requirements by node's fields.                                                  items:                                                    description: A node selector requirement                                                      is a selector that contains                                                      values, a key, and an operator                                                      that relates the key and values.                                                    properties:                                                      key:                                                        description: The label key                                                          that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: Represents a                                                          key's relationship to a                                                          set of values. Valid operators                                                          are In, NotIn, Exists, DoesNotExist.                                                          Gt, and Lt.                                                        type: string                                                      values:                                                        description: An array of string                                                          values. If the operator                                                          is In or NotIn, the values                                                          array must be non-empty.                                                          If the operator is Exists                                                          or DoesNotExist, the values                                                          array must be empty. If                                                          the operator is Gt or Lt,                                                          the values array must have                                                          a single element, which                                                          will be interpreted as an                                                          integer. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                              type: object                                              x-kubernetes-map-type: atomic                                            type: array                                        required:                                        - nodeSelectorTerms                                        type: object                                        x-kubernetes-map-type: atomic                                    type: object                                  podAffinity:                                    description: Describes pod affinity scheduling                                      rules (e.g. co-locate this pod in the same node,                                      zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          affinity expressions specified by this field,                                          but it may choose a node that violates one                                          or more of the expressions. The node that                                          is most preferred is the one with the greatest                                          sum of weights, i.e. for each node that                                          meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          affinity expressions, etc.), compute a sum                                          by iterating through the elements of this                                          field and adding "weight" to the sum if                                          the node has pods which matches the corresponding                                          podAffinityTerm; the node(s) with the highest                                          sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the affinity requirements specified                                          by this field cease to be met at some point                                          during pod execution (e.g. due to a pod                                          label update), the system may or may not                                          try to eventually evict the pod from its                                          node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                  podAntiAffinity:                                    description: Describes pod anti-affinity scheduling                                      rules (e.g. avoid putting this pod in the same                                      node, zone, etc. as some other pod(s)).                                    properties:                                      preferredDuringSchedulingIgnoredDuringExecution:                                        description: The scheduler will prefer to                                          schedule pods to nodes that satisfy the                                          anti-affinity expressions specified by this                                          field, but it may choose a node that violates                                          one or more of the expressions. The node                                          that is most preferred is the one with the                                          greatest sum of weights, i.e. for each node                                          that meets all of the scheduling requirements                                          (resource request, requiredDuringScheduling                                          anti-affinity expressions, etc.), compute                                          a sum by iterating through the elements                                          of this field and adding "weight" to the                                          sum if the node has pods which matches the                                          corresponding podAffinityTerm; the node(s)                                          with the highest sum are the most preferred.                                        items:                                          description: The weights of all of the matched                                            WeightedPodAffinityTerm fields are added                                            per-node to find the most preferred node(s)                                          properties:                                            podAffinityTerm:                                              description: Required. A pod affinity                                                term, associated with the corresponding                                                weight.                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            weight:                                              description: weight associated with                                                matching the corresponding podAffinityTerm,                                                in the range 1-100.                                              format: int32                                              type: integer                                          required:                                          - podAffinityTerm                                          - weight                                          type: object                                        type: array                                      requiredDuringSchedulingIgnoredDuringExecution:                                        description: If the anti-affinity requirements                                          specified by this field are not met at scheduling                                          time, the pod will not be scheduled onto                                          the node. If the anti-affinity requirements                                          specified by this field cease to be met                                          at some point during pod execution (e.g.                                          due to a pod label update), the system may                                          or may not try to eventually evict the pod                                          from its node. When there are multiple elements,                                          the lists of nodes corresponding to each                                          podAffinityTerm are intersected, i.e. all                                          terms must be satisfied.                                        items:                                          description: Defines a set of pods (namely                                            those matching the labelSelector relative                                            to the given namespace(s)) that this pod                                            should be co-located (affinity) or not                                            co-located (anti-affinity) with, where                                            co-located is defined as running on a                                            node whose value of the label with key                                            <topologyKey> matches that of any node                                            on which a pod of the set of pods is running                                          properties:                                            labelSelector:                                              description: A label query over a set                                                of resources, in this case pods.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaceSelector:                                              description: A label query over the                                                set of namespaces that the term applies                                                to. The term is applied to the union                                                of the namespaces selected by this                                                field and the ones listed in the namespaces                                                field. null selector and null or empty                                                namespaces list means "this pod's                                                namespace". An empty selector ({})                                                matches all namespaces.                                              properties:                                                matchExpressions:                                                  description: matchExpressions is                                                    a list of label selector requirements.                                                    The requirements are ANDed.                                                  items:                                                    description: A label selector                                                      requirement is a selector that                                                      contains values, a key, and                                                      an operator that relates the                                                      key and values.                                                    properties:                                                      key:                                                        description: key is the label                                                          key that the selector applies                                                          to.                                                        type: string                                                      operator:                                                        description: operator represents                                                          a key's relationship to                                                          a set of values. Valid operators                                                          are In, NotIn, Exists and                                                          DoesNotExist.                                                        type: string                                                      values:                                                        description: values is an                                                          array of string values.                                                          If the operator is In or                                                          NotIn, the values array                                                          must be non-empty. If the                                                          operator is Exists or DoesNotExist,                                                          the values array must be                                                          empty. This array is replaced                                                          during a strategic merge                                                          patch.                                                        items:                                                          type: string                                                        type: array                                                    required:                                                    - key                                                    - operator                                                    type: object                                                  type: array                                                matchLabels:                                                  additionalProperties:                                                    type: string                                                  description: matchLabels is a map                                                    of {key,value} pairs. A single                                                    {key,value} in the matchLabels                                                    map is equivalent to an element                                                    of matchExpressions, whose key                                                    field is "key", the operator is                                                    "In", and the values array contains                                                    only "value". The requirements                                                    are ANDed.                                                  type: object                                              type: object                                              x-kubernetes-map-type: atomic                                            namespaces:                                              description: namespaces specifies a                                                static list of namespace names that                                                the term applies to. The term is applied                                                to the union of the namespaces listed                                                in this field and the ones selected                                                by namespaceSelector. null or empty                                                namespaces list and null namespaceSelector                                                means "this pod's namespace".                                              items:                                                type: string                                              type: array                                            topologyKey:                                              description: This pod should be co-located                                                (affinity) or not co-located (anti-affinity)                                                with the pods matching the labelSelector                                                in the specified namespaces, where                                                co-located is defined as running on                                                a node whose value of the label with                                                key topologyKey matches that of any                                                node on which any of the selected                                                pods is running. Empty topologyKey                                                is not allowed.                                              type: string                                          required:                                          - topologyKey                                          type: object                                        type: array                                    type: object                                type: object                              containers:                                description: Containers is a list of typha containers.                                  If specified, this overrides the specified typha                                  Deployment containers. If omitted, the typha Deployment                                  will use its default values for its containers.                                items:                                  description: TyphaDeploymentContainer is a typha                                    Deployment container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the typha Deployment container by name.                                      enum:                                      - calico-typha                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named typha Deployment container's                                        resources. If omitted, the typha Deployment                                        will use its default value for this container's                                        resources. If used in conjunction with the                                        deprecated ComponentResources, then this value                                        takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              initContainers:                                description: InitContainers is a list of typha init                                  containers. If specified, this overrides the specified                                  typha Deployment init containers. If omitted, the                                  typha Deployment will use its default values for                                  its init containers.                                items:                                  description: TyphaDeploymentInitContainer is a typha                                    Deployment init container.                                  properties:                                    name:                                      description: Name is an enum which identifies                                        the typha Deployment init container by name.                                      enum:                                      - typha-certs-key-cert-provisioner                                      type: string                                    resources:                                      description: Resources allows customization                                        of limits and requests for compute resources                                        such as cpu and memory. If specified, this                                        overrides the named typha Deployment init                                        container's resources. If omitted, the typha                                        Deployment will use its default value for                                        this init container's resources. If used in                                        conjunction with the deprecated ComponentResources,                                        then this value takes precedence.                                      properties:                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                  required:                                  - name                                  type: object                                type: array                              nodeSelector:                                additionalProperties:                                  type: string                                description: 'NodeSelector is the calico-typha pod''s                                  scheduling constraints. If specified, each of the                                  key/value pairs are added to the calico-typha Deployment                                  nodeSelector provided the key does not already exist                                  in the object''s nodeSelector. If omitted, the calico-typha                                  Deployment will use its default value for nodeSelector.                                  WARNING: Please note that this field will modify                                  the default calico-typha Deployment nodeSelector.'                                type: object                              terminationGracePeriodSeconds:                                description: Optional duration in seconds the pod                                  needs to terminate gracefully. May be decreased                                  in delete request. Value must be non-negative integer.                                  The value zero indicates stop immediately via the                                  kill signal (no opportunity to shut down). If this                                  value is nil, the default grace period will be used                                  instead. The grace period is the duration in seconds                                  after the processes running in the pod are sent                                  a termination signal and the time when the processes                                  are forcibly halted with a kill signal. Set this                                  value longer than the expected cleanup time for                                  your process. Defaults to 30 seconds.                                format: int64                                type: integer                              tolerations:                                description: 'Tolerations is the typha pod''s tolerations.                                  If specified, this overrides any tolerations that                                  may be set on the typha Deployment. If omitted,                                  the typha Deployment will use its default value                                  for tolerations. WARNING: Please note that this                                  field will override the default calico-typha Deployment                                  tolerations.'                                items:                                  description: The pod this Toleration is attached                                    to tolerates any taint that matches the triple                                    <key,value,effect> using the matching operator                                    <operator>.                                  properties:                                    effect:                                      description: Effect indicates the taint effect                                        to match. Empty means match all taint effects.                                        When specified, allowed values are NoSchedule,                                        PreferNoSchedule and NoExecute.                                      type: string                                    key:                                      description: Key is the taint key that the toleration                                        applies to. Empty means match all taint keys.                                        If the key is empty, operator must be Exists;                                        this combination means to match all values                                        and all keys.                                      type: string                                    operator:                                      description: Operator represents a key's relationship                                        to the value. Valid operators are Exists and                                        Equal. Defaults to Equal. Exists is equivalent                                        to wildcard for value, so that a pod can tolerate                                        all taints of a particular category.                                      type: string                                    tolerationSeconds:                                      description: TolerationSeconds represents the                                        period of time the toleration (which must                                        be of effect NoExecute, otherwise this field                                        is ignored) tolerates the taint. By default,                                        it is not set, which means tolerate the taint                                        forever (do not evict). Zero and negative                                        values will be treated as 0 (evict immediately)                                        by the system.                                      format: int64                                      type: integer                                    value:                                      description: Value is the taint value the toleration                                        matches to. If the operator is Exists, the                                        value should be empty, otherwise just a regular                                        string.                                      type: string                                  type: object                                type: array                              topologySpreadConstraints:                                description: TopologySpreadConstraints describes how                                  a group of pods ought to spread across topology                                  domains. Scheduler will schedule pods in a way which                                  abides by the constraints. All topologySpreadConstraints                                  are ANDed.                                items:                                  description: TopologySpreadConstraint specifies                                    how to spread matching pods among the given topology.                                  properties:                                    labelSelector:                                      description: LabelSelector is used to find matching                                        pods. Pods that match this label selector                                        are counted to determine the number of pods                                        in their corresponding topology domain.                                      properties:                                        matchExpressions:                                          description: matchExpressions is a list                                            of label selector requirements. The requirements                                            are ANDed.                                          items:                                            description: A label selector requirement                                              is a selector that contains values,                                              a key, and an operator that relates                                              the key and values.                                            properties:                                              key:                                                description: key is the label key                                                  that the selector applies to.                                                type: string                                              operator:                                                description: operator represents a                                                  key's relationship to a set of values.                                                  Valid operators are In, NotIn, Exists                                                  and DoesNotExist.                                                type: string                                              values:                                                description: values is an array of                                                  string values. If the operator is                                                  In or NotIn, the values array must                                                  be non-empty. If the operator is                                                  Exists or DoesNotExist, the values                                                  array must be empty. This array                                                  is replaced during a strategic merge                                                  patch.                                                items:                                                  type: string                                                type: array                                            required:                                            - key                                            - operator                                            type: object                                          type: array                                        matchLabels:                                          additionalProperties:                                            type: string                                          description: matchLabels is a map of {key,value}                                            pairs. A single {key,value} in the matchLabels                                            map is equivalent to an element of matchExpressions,                                            whose key field is "key", the operator                                            is "In", and the values array contains                                            only "value". The requirements are ANDed.                                          type: object                                      type: object                                      x-kubernetes-map-type: atomic                                    matchLabelKeys:                                      description: MatchLabelKeys is a set of pod                                        label keys to select the pods over which spreading                                        will be calculated. The keys are used to lookup                                        values from the incoming pod labels, those                                        key-value labels are ANDed with labelSelector                                        to select the group of existing pods over                                        which spreading will be calculated for the                                        incoming pod. Keys that don't exist in the                                        incoming pod labels will be ignored. A null                                        or empty list means only match against labelSelector.                                      items:                                        type: string                                      type: array                                      x-kubernetes-list-type: atomic                                    maxSkew:                                      description: 'MaxSkew describes the degree to                                        which pods may be unevenly distributed. When                                        `whenUnsatisfiable=DoNotSchedule`, it is the                                        maximum permitted difference between the number                                        of matching pods in the target topology and                                        the global minimum. The global minimum is                                        the minimum number of matching pods in an                                        eligible domain or zero if the number of eligible                                        domains is less than MinDomains. For example,                                        in a 3-zone cluster, MaxSkew is set to 1,                                        and pods with the same labelSelector spread                                        as 2/2/1: In this case, the global minimum                                        is 1. | zone1 | zone2 | zone3 | |  P P  |  P                                        P  |   P   | - if MaxSkew is 1, incoming pod                                        can only be scheduled to zone3 to become 2/2/2;                                        scheduling it onto zone1(zone2) would make                                        the ActualSkew(3-1) on zone1(zone2) violate                                        MaxSkew(1). - if MaxSkew is 2, incoming pod                                        can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,                                        it is used to give higher precedence to topologies                                        that satisfy it. It''s a required field. Default                                        value is 1 and 0 is not allowed.'                                      format: int32                                      type: integer                                    minDomains:                                      description: "MinDomains indicates a minimum                                        number of eligible domains. When the number                                        of eligible domains with matching topology                                        keys is less than minDomains, Pod Topology                                        Spread treats \"global minimum\" as 0, and                                        then the calculation of Skew is performed.                                        And when the number of eligible domains with                                        matching topology keys equals or greater than                                        minDomains, this value has no effect on scheduling.                                        As a result, when the number of eligible domains                                        is less than minDomains, scheduler won't schedule                                        more than maxSkew Pods to those domains. If                                        value is nil, the constraint behaves as if                                        MinDomains is equal to 1. Valid values are                                        integers greater than 0. When value is not                                        nil, WhenUnsatisfiable must be DoNotSchedule.                                        \n For example, in a 3-zone cluster, MaxSkew                                        is set to 2, MinDomains is set to 5 and pods                                        with the same labelSelector spread as 2/2/2:                                        | zone1 | zone2 | zone3 | |  P P  |  P P  |                                        \ P P  | The number of domains is less than                                        5(MinDomains), so \"global minimum\" is treated                                        as 0. In this situation, new pod with the                                        same labelSelector cannot be scheduled, because                                        computed skew will be 3(3 - 0) if new Pod                                        is scheduled to any of the three zones, it                                        will violate MaxSkew. \n This is a beta field                                        and requires the MinDomainsInPodTopologySpread                                        feature gate to be enabled (enabled by default)."                                      format: int32                                      type: integer                                    nodeAffinityPolicy:                                      description: "NodeAffinityPolicy indicates how                                        we will treat Pod's nodeAffinity/nodeSelector                                        when calculating pod topology spread skew.                                        Options are: - Honor: only nodes matching                                        nodeAffinity/nodeSelector are included in                                        the calculations. - Ignore: nodeAffinity/nodeSelector                                        are ignored. All nodes are included in the                                        calculations. \n If this value is nil, the                                        behavior is equivalent to the Honor policy.                                        This is a alpha-level feature enabled by the                                        NodeInclusionPolicyInPodTopologySpread feature                                        flag."                                      type: string                                    nodeTaintsPolicy:                                      description: "NodeTaintsPolicy indicates how                                        we will treat node taints when calculating                                        pod topology spread skew. Options are: - Honor:                                        nodes without taints, along with tainted nodes                                        for which the incoming pod has a toleration,                                        are included. - Ignore: node taints are ignored.                                        All nodes are included. \n If this value is                                        nil, the behavior is equivalent to the Ignore                                        policy. This is a alpha-level feature enabled                                        by the NodeInclusionPolicyInPodTopologySpread                                        feature flag."                                      type: string                                    topologyKey:                                      description: TopologyKey is the key of node                                        labels. Nodes that have a label with this                                        key and identical values are considered to                                        be in the same topology. We consider each                                        <key, value> as a "bucket", and try to put                                        balanced number of pods into each bucket.                                        We define a domain as a particular instance                                        of a topology. Also, we define an eligible                                        domain as a domain whose nodes meet the requirements                                        of nodeAffinityPolicy and nodeTaintsPolicy.                                        e.g. If TopologyKey is "kubernetes.io/hostname",                                        each Node is a domain of that topology. And,                                        if TopologyKey is "topology.kubernetes.io/zone",                                        each zone is a domain of that topology. It's                                        a required field.                                      type: string                                    whenUnsatisfiable:                                      description: 'WhenUnsatisfiable indicates how                                        to deal with a pod if it doesn''t satisfy                                        the spread constraint. - DoNotSchedule (default)                                        tells the scheduler not to schedule it. -                                        ScheduleAnyway tells the scheduler to schedule                                        the pod in any location, but giving higher                                        precedence to topologies that would help reduce                                        the skew. A constraint is considered "Unsatisfiable"                                        for an incoming pod if and only if every possible                                        node assignment for that pod would violate                                        "MaxSkew" on some topology. For example, in                                        a 3-zone cluster, MaxSkew is set to 1, and                                        pods with the same labelSelector spread as                                        3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   |                                        If WhenUnsatisfiable is set to DoNotSchedule,                                        incoming pod can only be scheduled to zone2(zone3)                                        to become 3/2/1(3/1/2) as ActualSkew(2-1)                                        on zone2(zone3) satisfies MaxSkew(1). In other                                        words, the cluster can still be imbalanced,                                        but scheduler won''t make it *more* imbalanced.                                        It''s a required field.'                                      type: string                                  required:                                  - maxSkew                                  - topologyKey                                  - whenUnsatisfiable                                  type: object                                type: array                            type: object                        type: object                    type: object                type: object              typhaMetricsPort:                description: TyphaMetricsPort specifies which port calico/typha serves                  prometheus metrics on. By default, metrics are not enabled.                format: int32                type: integer              variant:                description: 'Variant is the product to install - one of Calico or                  TigeraSecureEnterprise Default: Calico'                enum:                - Calico                - TigeraSecureEnterprise                type: string            type: object          status:            description: Most recently observed state for the Calico or Calico Enterprise              installation.            properties:              calicoVersion:                description: CalicoVersion shows the current running version of calico.                  CalicoVersion along with Variant is needed to know the exact version                  deployed.                type: string              computed:                description: Computed is the final installation including overlaid                  resources.                properties:                  calicoKubeControllersDeployment:                    description: CalicoKubeControllersDeployment configures the calico-kube-controllers                      Deployment. If used in conjunction with the deprecated ComponentResources,                      then these overrides take precedence.                    properties:                      metadata:                        description: Metadata is a subset of a Kubernetes object's                          metadata that is added to the Deployment.                        properties:                          annotations:                            additionalProperties:                              type: string                            description: Annotations is a map of arbitrary non-identifying                              metadata. Each of these key/value pairs are added to                              the object's annotations provided the key does not already                              exist in the object's annotations.                            type: object                          labels:                            additionalProperties:                              type: string                            description: Labels is a map of string keys and values                              that may match replicaset and service selectors. Each                              of these key/value pairs are added to the object's labels                              provided the key does not already exist in the object's                              labels.                            type: object                        type: object                      spec:                        description: Spec is the specification of the calico-kube-controllers                          Deployment.                        properties:                          minReadySeconds:                            description: MinReadySeconds is the minimum number of                              seconds for which a newly created Deployment pod should                              be ready without any of its container crashing, for                              it to be considered available. If specified, this overrides                              any minReadySeconds value that may be set on the calico-kube-controllers                              Deployment. If omitted, the calico-kube-controllers                              Deployment will use its default value for minReadySeconds.                            format: int32                            maximum: 2147483647                            minimum: 0                            type: integer                          template:                            description: Template describes the calico-kube-controllers                              Deployment pod that will be created.                            properties:                              metadata:                                description: Metadata is a subset of a Kubernetes                                  object's metadata that is added to the pod's metadata.                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    description: Annotations is a map of arbitrary                                      non-identifying metadata. Each of these key/value                                      pairs are added to the object's annotations                                      provided the key does not already exist in the                                      object's annotations.                                    type: object                                  labels:                                    additionalProperties:                                      type: string                                    description: Labels is a map of string keys and                                      values that may match replicaset and service                                      selectors. Each of these key/value pairs are                                      added to the object's labels provided the key                                      does not already exist in the object's labels.                                    type: object                                type: object                              spec:                                description: Spec is the calico-kube-controllers Deployment's                                  PodSpec.                                properties:                                  affinity:                                    description: 'Affinity is a group of affinity                                      scheduling rules for the calico-kube-controllers                                      pods. If specified, this overrides any affinity                                      that may be set on the calico-kube-controllers                                      Deployment. If omitted, the calico-kube-controllers                                      Deployment will use its default value for affinity.                                      WARNING: Please note that this field will override                                      the default calico-kube-controllers Deployment                                      affinity.'                                    properties:                                      nodeAffinity:                                        description: Describes node affinity scheduling                                          rules for the pod.                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node matches the corresponding                                              matchExpressions; the node(s) with the                                              highest sum are the most preferred.                                            items:                                              description: An empty preferred scheduling                                                term matches all objects with implicit                                                weight 0 (i.e. it's a no-op). A null                                                preferred scheduling term matches                                                no objects (i.e. is also a no-op).                                              properties:                                                preference:                                                  description: A node selector term,                                                    associated with the corresponding                                                    weight.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                weight:                                                  description: Weight associated with                                                    matching the corresponding nodeSelectorTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - preference                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to an update),                                              the system may or may not try to eventually                                              evict the pod from its node.                                            properties:                                              nodeSelectorTerms:                                                description: Required. A list of node                                                  selector terms. The terms are ORed.                                                items:                                                  description: A null or empty node                                                    selector term matches no objects.                                                    The requirements of them are ANDed.                                                    The TopologySelectorTerm type                                                    implements a subset of the NodeSelectorTerm.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                type: array                                            required:                                            - nodeSelectorTerms                                            type: object                                            x-kubernetes-map-type: atomic                                        type: object                                      podAffinity:                                        description: Describes pod affinity scheduling                                          rules (e.g. co-locate this pod in the same                                          node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                      podAntiAffinity:                                        description: Describes pod anti-affinity scheduling                                          rules (e.g. avoid putting this pod in the                                          same node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the anti-affinity expressions specified                                              by this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling anti-affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the anti-affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the anti-affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                    type: object                                  containers:                                    description: Containers is a list of calico-kube-controllers                                      containers. If specified, this overrides the                                      specified calico-kube-controllers Deployment                                      containers. If omitted, the calico-kube-controllers                                      Deployment will use its default values for its                                      containers.                                    items:                                      description: CalicoKubeControllersDeploymentContainer                                        is a calico-kube-controllers Deployment container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the calico-kube-controllers Deployment                                            container by name.                                          enum:                                          - calico-kube-controllers                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named calico-kube-controllers                                            Deployment container's resources. If omitted,                                            the calico-kube-controllers Deployment                                            will use its default value for this container's                                            resources. If used in conjunction with                                            the deprecated ComponentResources, then                                            this value takes precedence.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  nodeSelector:                                    additionalProperties:                                      type: string                                    description: 'NodeSelector is the calico-kube-controllers                                      pod''s scheduling constraints. If specified,                                      each of the key/value pairs are added to the                                      calico-kube-controllers Deployment nodeSelector                                      provided the key does not already exist in the                                      object''s nodeSelector. If used in conjunction                                      with ControlPlaneNodeSelector, that nodeSelector                                      is set on the calico-kube-controllers Deployment                                      and each of this field''s key/value pairs are                                      added to the calico-kube-controllers Deployment                                      nodeSelector provided the key does not already                                      exist in the object''s nodeSelector. If omitted,                                      the calico-kube-controllers Deployment will                                      use its default value for nodeSelector. WARNING:                                      Please note that this field will modify the                                      default calico-kube-controllers Deployment nodeSelector.'                                    type: object                                  tolerations:                                    description: 'Tolerations is the calico-kube-controllers                                      pod''s tolerations. If specified, this overrides                                      any tolerations that may be set on the calico-kube-controllers                                      Deployment. If omitted, the calico-kube-controllers                                      Deployment will use its default value for tolerations.                                      WARNING: Please note that this field will override                                      the default calico-kube-controllers Deployment                                      tolerations.'                                    items:                                      description: The pod this Toleration is attached                                        to tolerates any taint that matches the triple                                        <key,value,effect> using the matching operator                                        <operator>.                                      properties:                                        effect:                                          description: Effect indicates the taint                                            effect to match. Empty means match all                                            taint effects. When specified, allowed                                            values are NoSchedule, PreferNoSchedule                                            and NoExecute.                                          type: string                                        key:                                          description: Key is the taint key that the                                            toleration applies to. Empty means match                                            all taint keys. If the key is empty, operator                                            must be Exists; this combination means                                            to match all values and all keys.                                          type: string                                        operator:                                          description: Operator represents a key's                                            relationship to the value. Valid operators                                            are Exists and Equal. Defaults to Equal.                                            Exists is equivalent to wildcard for value,                                            so that a pod can tolerate all taints                                            of a particular category.                                          type: string                                        tolerationSeconds:                                          description: TolerationSeconds represents                                            the period of time the toleration (which                                            must be of effect NoExecute, otherwise                                            this field is ignored) tolerates the taint.                                            By default, it is not set, which means                                            tolerate the taint forever (do not evict).                                            Zero and negative values will be treated                                            as 0 (evict immediately) by the system.                                          format: int64                                          type: integer                                        value:                                          description: Value is the taint value the                                            toleration matches to. If the operator                                            is Exists, the value should be empty,                                            otherwise just a regular string.                                          type: string                                      type: object                                    type: array                                type: object                            type: object                        type: object                    type: object                  calicoNetwork:                    description: CalicoNetwork specifies networking configuration                      options for Calico.                    properties:                      bgp:                        description: BGP configures whether or not to enable Calico's                          BGP capabilities.                        enum:                        - Enabled                        - Disabled                        type: string                      containerIPForwarding:                        description: 'ContainerIPForwarding configures whether ip                          forwarding will be enabled for containers in the CNI configuration.                          Default: Disabled'                        enum:                        - Enabled                        - Disabled                        type: string                      hostPorts:                        description: 'HostPorts configures whether or not Calico will                          support Kubernetes HostPorts. Valid only when using the                          Calico CNI plugin. Default: Enabled'                        enum:                        - Enabled                        - Disabled                        type: string                      ipPools:                        description: IPPools contains a list of IP pools to create                          if none exist. At most one IP pool of each address family                          may be specified. If omitted, a single pool will be configured                          if needed.                        items:                          properties:                            blockSize:                              description: 'BlockSize specifies the CIDR prefex length                                to use when allocating per-node IP blocks from the                                main IP pool CIDR. Default: 26 (IPv4), 122 (IPv6)'                              format: int32                              type: integer                            cidr:                              description: CIDR contains the address range for the                                IP Pool in classless inter-domain routing format.                              type: string                            disableBGPExport:                              default: false                              description: 'DisableBGPExport specifies whether routes                                from this IP pool''s CIDR are exported over BGP. Default:                                false'                              type: boolean                            encapsulation:                              description: 'Encapsulation specifies the encapsulation                                type that will be used with the IP Pool. Default:                                IPIP'                              enum:                              - IPIPCrossSubnet                              - IPIP                              - VXLAN                              - VXLANCrossSubnet                              - None                              type: string                            natOutgoing:                              description: 'NATOutgoing specifies if NAT will be enabled                                or disabled for outgoing traffic. Default: Enabled'                              enum:                              - Enabled                              - Disabled                              type: string                            nodeSelector:                              description: 'NodeSelector specifies the node selector                                that will be set for the IP Pool. Default: ''all()'''                              type: string                          required:                          - cidr                          type: object                        type: array                      linuxDataplane:                        description: 'LinuxDataplane is used to select the dataplane                          used for Linux nodes. In particular, it causes the operator                          to add required mounts and environment variables for the                          particular dataplane. If not specified, iptables mode is                          used. Default: Iptables'                        enum:                        - Iptables                        - BPF                        - VPP                        type: string                      mtu:                        description: MTU specifies the maximum transmission unit to                          use on the pod network. If not specified, Calico will perform                          MTU auto-detection based on the cluster network.                        format: int32                        type: integer                      multiInterfaceMode:                        description: 'MultiInterfaceMode configures what will configure                          multiple interface per pod. Only valid for Calico Enterprise                          installations using the Calico CNI plugin. Default: None'                        enum:                        - None                        - Multus                        type: string                      nodeAddressAutodetectionV4:                        description: NodeAddressAutodetectionV4 specifies an approach                          to automatically detect node IPv4 addresses. If not specified,                          will use default auto-detection settings to acquire an IPv4                          address for each node.                        properties:                          canReach:                            description: CanReach enables IP auto-detection based                              on which source address on the node is used to reach                              the specified IP or domain.                            type: string                          cidrs:                            description: CIDRS enables IP auto-detection based on                              which addresses on the nodes are within one of the provided                              CIDRs.                            items:                              type: string                            type: array                          firstFound:                            description: FirstFound uses default interface matching                              parameters to select an interface, performing best-effort                              filtering based on well-known interface names.                            type: boolean                          interface:                            description: Interface enables IP auto-detection based                              on interfaces that match the given regex.                            type: string                          kubernetes:                            description: Kubernetes configures Calico to detect node                              addresses based on the Kubernetes API.                            enum:                            - NodeInternalIP                            type: string                          skipInterface:                            description: SkipInterface enables IP auto-detection based                              on interfaces that do not match the given regex.                            type: string                        type: object                      nodeAddressAutodetectionV6:                        description: NodeAddressAutodetectionV6 specifies an approach                          to automatically detect node IPv6 addresses. If not specified,                          IPv6 addresses will not be auto-detected.                        properties:                          canReach:                            description: CanReach enables IP auto-detection based                              on which source address on the node is used to reach                              the specified IP or domain.                            type: string                          cidrs:                            description: CIDRS enables IP auto-detection based on                              which addresses on the nodes are within one of the provided                              CIDRs.                            items:                              type: string                            type: array                          firstFound:                            description: FirstFound uses default interface matching                              parameters to select an interface, performing best-effort                              filtering based on well-known interface names.                            type: boolean                          interface:                            description: Interface enables IP auto-detection based                              on interfaces that match the given regex.                            type: string                          kubernetes:                            description: Kubernetes configures Calico to detect node                              addresses based on the Kubernetes API.                            enum:                            - NodeInternalIP                            type: string                          skipInterface:                            description: SkipInterface enables IP auto-detection based                              on interfaces that do not match the given regex.                            type: string                        type: object                    type: object                  calicoNodeDaemonSet:                    description: CalicoNodeDaemonSet configures the calico-node DaemonSet.                      If used in conjunction with the deprecated ComponentResources,                      then these overrides take precedence.                    properties:                      metadata:                        description: Metadata is a subset of a Kubernetes object's                          metadata that is added to the DaemonSet.                        properties:                          annotations:                            additionalProperties:                              type: string                            description: Annotations is a map of arbitrary non-identifying                              metadata. Each of these key/value pairs are added to                              the object's annotations provided the key does not already                              exist in the object's annotations.                            type: object                          labels:                            additionalProperties:                              type: string                            description: Labels is a map of string keys and values                              that may match replicaset and service selectors. Each                              of these key/value pairs are added to the object's labels                              provided the key does not already exist in the object's                              labels.                            type: object                        type: object                      spec:                        description: Spec is the specification of the calico-node                          DaemonSet.                        properties:                          minReadySeconds:                            description: MinReadySeconds is the minimum number of                              seconds for which a newly created DaemonSet pod should                              be ready without any of its container crashing, for                              it to be considered available. If specified, this overrides                              any minReadySeconds value that may be set on the calico-node                              DaemonSet. If omitted, the calico-node DaemonSet will                              use its default value for minReadySeconds.                            format: int32                            maximum: 2147483647                            minimum: 0                            type: integer                          template:                            description: Template describes the calico-node DaemonSet                              pod that will be created.                            properties:                              metadata:                                description: Metadata is a subset of a Kubernetes                                  object's metadata that is added to the pod's metadata.                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    description: Annotations is a map of arbitrary                                      non-identifying metadata. Each of these key/value                                      pairs are added to the object's annotations                                      provided the key does not already exist in the                                      object's annotations.                                    type: object                                  labels:                                    additionalProperties:                                      type: string                                    description: Labels is a map of string keys and                                      values that may match replicaset and service                                      selectors. Each of these key/value pairs are                                      added to the object's labels provided the key                                      does not already exist in the object's labels.                                    type: object                                type: object                              spec:                                description: Spec is the calico-node DaemonSet's PodSpec.                                properties:                                  affinity:                                    description: 'Affinity is a group of affinity                                      scheduling rules for the calico-node pods. If                                      specified, this overrides any affinity that                                      may be set on the calico-node DaemonSet. If                                      omitted, the calico-node DaemonSet will use                                      its default value for affinity. WARNING: Please                                      note that this field will override the default                                      calico-node DaemonSet affinity.'                                    properties:                                      nodeAffinity:                                        description: Describes node affinity scheduling                                          rules for the pod.                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node matches the corresponding                                              matchExpressions; the node(s) with the                                              highest sum are the most preferred.                                            items:                                              description: An empty preferred scheduling                                                term matches all objects with implicit                                                weight 0 (i.e. it's a no-op). A null                                                preferred scheduling term matches                                                no objects (i.e. is also a no-op).                                              properties:                                                preference:                                                  description: A node selector term,                                                    associated with the corresponding                                                    weight.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                weight:                                                  description: Weight associated with                                                    matching the corresponding nodeSelectorTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - preference                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to an update),                                              the system may or may not try to eventually                                              evict the pod from its node.                                            properties:                                              nodeSelectorTerms:                                                description: Required. A list of node                                                  selector terms. The terms are ORed.                                                items:                                                  description: A null or empty node                                                    selector term matches no objects.                                                    The requirements of them are ANDed.                                                    The TopologySelectorTerm type                                                    implements a subset of the NodeSelectorTerm.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                type: array                                            required:                                            - nodeSelectorTerms                                            type: object                                            x-kubernetes-map-type: atomic                                        type: object                                      podAffinity:                                        description: Describes pod affinity scheduling                                          rules (e.g. co-locate this pod in the same                                          node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                      podAntiAffinity:                                        description: Describes pod anti-affinity scheduling                                          rules (e.g. avoid putting this pod in the                                          same node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the anti-affinity expressions specified                                              by this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling anti-affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the anti-affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the anti-affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                    type: object                                  containers:                                    description: Containers is a list of calico-node                                      containers. If specified, this overrides the                                      specified calico-node DaemonSet containers.                                      If omitted, the calico-node DaemonSet will use                                      its default values for its containers.                                    items:                                      description: CalicoNodeDaemonSetContainer is                                        a calico-node DaemonSet container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the calico-node DaemonSet container by                                            name.                                          enum:                                          - calico-node                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named calico-node DaemonSet                                            container's resources. If omitted, the                                            calico-node DaemonSet will use its default                                            value for this container's resources.                                            If used in conjunction with the deprecated                                            ComponentResources, then this value takes                                            precedence.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  initContainers:                                    description: InitContainers is a list of calico-node                                      init containers. If specified, this overrides                                      the specified calico-node DaemonSet init containers.                                      If omitted, the calico-node DaemonSet will use                                      its default values for its init containers.                                    items:                                      description: CalicoNodeDaemonSetInitContainer                                        is a calico-node DaemonSet init container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the calico-node DaemonSet init container                                            by name.                                          enum:                                          - install-cni                                          - hostpath-init                                          - flexvol-driver                                          - mount-bpffs                                          - node-certs-key-cert-provisioner                                          - calico-node-prometheus-server-tls-key-cert-provisioner                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named calico-node DaemonSet                                            init container's resources. If omitted,                                            the calico-node DaemonSet will use its                                            default value for this container's resources.                                            If used in conjunction with the deprecated                                            ComponentResources, then this value takes                                            precedence.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  nodeSelector:                                    additionalProperties:                                      type: string                                    description: 'NodeSelector is the calico-node                                      pod''s scheduling constraints. If specified,                                      each of the key/value pairs are added to the                                      calico-node DaemonSet nodeSelector provided                                      the key does not already exist in the object''s                                      nodeSelector. If omitted, the calico-node DaemonSet                                      will use its default value for nodeSelector.                                      WARNING: Please note that this field will modify                                      the default calico-node DaemonSet nodeSelector.'                                    type: object                                  tolerations:                                    description: 'Tolerations is the calico-node pod''s                                      tolerations. If specified, this overrides any                                      tolerations that may be set on the calico-node                                      DaemonSet. If omitted, the calico-node DaemonSet                                      will use its default value for tolerations.                                      WARNING: Please note that this field will override                                      the default calico-node DaemonSet tolerations.'                                    items:                                      description: The pod this Toleration is attached                                        to tolerates any taint that matches the triple                                        <key,value,effect> using the matching operator                                        <operator>.                                      properties:                                        effect:                                          description: Effect indicates the taint                                            effect to match. Empty means match all                                            taint effects. When specified, allowed                                            values are NoSchedule, PreferNoSchedule                                            and NoExecute.                                          type: string                                        key:                                          description: Key is the taint key that the                                            toleration applies to. Empty means match                                            all taint keys. If the key is empty, operator                                            must be Exists; this combination means                                            to match all values and all keys.                                          type: string                                        operator:                                          description: Operator represents a key's                                            relationship to the value. Valid operators                                            are Exists and Equal. Defaults to Equal.                                            Exists is equivalent to wildcard for value,                                            so that a pod can tolerate all taints                                            of a particular category.                                          type: string                                        tolerationSeconds:                                          description: TolerationSeconds represents                                            the period of time the toleration (which                                            must be of effect NoExecute, otherwise                                            this field is ignored) tolerates the taint.                                            By default, it is not set, which means                                            tolerate the taint forever (do not evict).                                            Zero and negative values will be treated                                            as 0 (evict immediately) by the system.                                          format: int64                                          type: integer                                        value:                                          description: Value is the taint value the                                            toleration matches to. If the operator                                            is Exists, the value should be empty,                                            otherwise just a regular string.                                          type: string                                      type: object                                    type: array                                type: object                            type: object                        type: object                    type: object                  calicoWindowsUpgradeDaemonSet:                    description: CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade                      DaemonSet.                    properties:                      metadata:                        description: Metadata is a subset of a Kubernetes object's                          metadata that is added to the Deployment.                        properties:                          annotations:                            additionalProperties:                              type: string                            description: Annotations is a map of arbitrary non-identifying                              metadata. Each of these key/value pairs are added to                              the object's annotations provided the key does not already                              exist in the object's annotations.                            type: object                          labels:                            additionalProperties:                              type: string                            description: Labels is a map of string keys and values                              that may match replicaset and service selectors. Each                              of these key/value pairs are added to the object's labels                              provided the key does not already exist in the object's                              labels.                            type: object                        type: object                      spec:                        description: Spec is the specification of the calico-windows-upgrade                          DaemonSet.                        properties:                          minReadySeconds:                            description: MinReadySeconds is the minimum number of                              seconds for which a newly created Deployment pod should                              be ready without any of its container crashing, for                              it to be considered available. If specified, this overrides                              any minReadySeconds value that may be set on the calico-windows-upgrade                              DaemonSet. If omitted, the calico-windows-upgrade DaemonSet                              will use its default value for minReadySeconds.                            format: int32                            maximum: 2147483647                            minimum: 0                            type: integer                          template:                            description: Template describes the calico-windows-upgrade                              DaemonSet pod that will be created.                            properties:                              metadata:                                description: Metadata is a subset of a Kubernetes                                  object's metadata that is added to the pod's metadata.                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    description: Annotations is a map of arbitrary                                      non-identifying metadata. Each of these key/value                                      pairs are added to the object's annotations                                      provided the key does not already exist in the                                      object's annotations.                                    type: object                                  labels:                                    additionalProperties:                                      type: string                                    description: Labels is a map of string keys and                                      values that may match replicaset and service                                      selectors. Each of these key/value pairs are                                      added to the object's labels provided the key                                      does not already exist in the object's labels.                                    type: object                                type: object                              spec:                                description: Spec is the calico-windows-upgrade DaemonSet's                                  PodSpec.                                properties:                                  affinity:                                    description: 'Affinity is a group of affinity                                      scheduling rules for the calico-windows-upgrade                                      pods. If specified, this overrides any affinity                                      that may be set on the calico-windows-upgrade                                      DaemonSet. If omitted, the calico-windows-upgrade                                      DaemonSet will use its default value for affinity.                                      WARNING: Please note that this field will override                                      the default calico-windows-upgrade DaemonSet                                      affinity.'                                    properties:                                      nodeAffinity:                                        description: Describes node affinity scheduling                                          rules for the pod.                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node matches the corresponding                                              matchExpressions; the node(s) with the                                              highest sum are the most preferred.                                            items:                                              description: An empty preferred scheduling                                                term matches all objects with implicit                                                weight 0 (i.e. it's a no-op). A null                                                preferred scheduling term matches                                                no objects (i.e. is also a no-op).                                              properties:                                                preference:                                                  description: A node selector term,                                                    associated with the corresponding                                                    weight.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                weight:                                                  description: Weight associated with                                                    matching the corresponding nodeSelectorTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - preference                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to an update),                                              the system may or may not try to eventually                                              evict the pod from its node.                                            properties:                                              nodeSelectorTerms:                                                description: Required. A list of node                                                  selector terms. The terms are ORed.                                                items:                                                  description: A null or empty node                                                    selector term matches no objects.                                                    The requirements of them are ANDed.                                                    The TopologySelectorTerm type                                                    implements a subset of the NodeSelectorTerm.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                type: array                                            required:                                            - nodeSelectorTerms                                            type: object                                            x-kubernetes-map-type: atomic                                        type: object                                      podAffinity:                                        description: Describes pod affinity scheduling                                          rules (e.g. co-locate this pod in the same                                          node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                      podAntiAffinity:                                        description: Describes pod anti-affinity scheduling                                          rules (e.g. avoid putting this pod in the                                          same node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the anti-affinity expressions specified                                              by this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling anti-affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the anti-affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the anti-affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                    type: object                                  containers:                                    description: Containers is a list of calico-windows-upgrade                                      containers. If specified, this overrides the                                      specified calico-windows-upgrade DaemonSet containers.                                      If omitted, the calico-windows-upgrade DaemonSet                                      will use its default values for its containers.                                    items:                                      description: CalicoWindowsUpgradeDaemonSetContainer                                        is a calico-windows-upgrade DaemonSet container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the calico-windows-upgrade DaemonSet container                                            by name.                                          enum:                                          - calico-windows-upgrade                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named calico-windows-upgrade                                            DaemonSet container's resources. If omitted,                                            the calico-windows-upgrade DaemonSet will                                            use its default value for this container's                                            resources.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  nodeSelector:                                    additionalProperties:                                      type: string                                    description: 'NodeSelector is the calico-windows-upgrade                                      pod''s scheduling constraints. If specified,                                      each of the key/value pairs are added to the                                      calico-windows-upgrade DaemonSet nodeSelector                                      provided the key does not already exist in the                                      object''s nodeSelector. If omitted, the calico-windows-upgrade                                      DaemonSet will use its default value for nodeSelector.                                      WARNING: Please note that this field will modify                                      the default calico-windows-upgrade DaemonSet                                      nodeSelector.'                                    type: object                                  tolerations:                                    description: 'Tolerations is the calico-windows-upgrade                                      pod''s tolerations. If specified, this overrides                                      any tolerations that may be set on the calico-windows-upgrade                                      DaemonSet. If omitted, the calico-windows-upgrade                                      DaemonSet will use its default value for tolerations.                                      WARNING: Please note that this field will override                                      the default calico-windows-upgrade DaemonSet                                      tolerations.'                                    items:                                      description: The pod this Toleration is attached                                        to tolerates any taint that matches the triple                                        <key,value,effect> using the matching operator                                        <operator>.                                      properties:                                        effect:                                          description: Effect indicates the taint                                            effect to match. Empty means match all                                            taint effects. When specified, allowed                                            values are NoSchedule, PreferNoSchedule                                            and NoExecute.                                          type: string                                        key:                                          description: Key is the taint key that the                                            toleration applies to. Empty means match                                            all taint keys. If the key is empty, operator                                            must be Exists; this combination means                                            to match all values and all keys.                                          type: string                                        operator:                                          description: Operator represents a key's                                            relationship to the value. Valid operators                                            are Exists and Equal. Defaults to Equal.                                            Exists is equivalent to wildcard for value,                                            so that a pod can tolerate all taints                                            of a particular category.                                          type: string                                        tolerationSeconds:                                          description: TolerationSeconds represents                                            the period of time the toleration (which                                            must be of effect NoExecute, otherwise                                            this field is ignored) tolerates the taint.                                            By default, it is not set, which means                                            tolerate the taint forever (do not evict).                                            Zero and negative values will be treated                                            as 0 (evict immediately) by the system.                                          format: int64                                          type: integer                                        value:                                          description: Value is the taint value the                                            toleration matches to. If the operator                                            is Exists, the value should be empty,                                            otherwise just a regular string.                                          type: string                                      type: object                                    type: array                                type: object                            type: object                        type: object                    type: object                  certificateManagement:                    description: CertificateManagement configures pods to submit a                      CertificateSigningRequest to the certificates.k8s.io/v1beta1                      API in order to obtain TLS certificates. This feature requires                      that you bring your own CSR signing and approval process, otherwise                      pods will be stuck during initialization.                    properties:                      caCert:                        description: Certificate of the authority that signs the CertificateSigningRequests                          in PEM format.                        format: byte                        type: string                      keyAlgorithm:                        description: 'Specify the algorithm used by pods to generate                          a key pair that is associated with the X.509 certificate                          request. Default: RSAWithSize2048'                        enum:                        - ""                        - RSAWithSize2048                        - RSAWithSize4096                        - RSAWithSize8192                        - ECDSAWithCurve256                        - ECDSAWithCurve384                        - ECDSAWithCurve521                        type: string                      signatureAlgorithm:                        description: 'Specify the algorithm used for the signature                          of the X.509 certificate request. Default: SHA256WithRSA'                        enum:                        - ""                        - SHA256WithRSA                        - SHA384WithRSA                        - SHA512WithRSA                        - ECDSAWithSHA256                        - ECDSAWithSHA384                        - ECDSAWithSHA512                        type: string                      signerName:                        description: 'When a CSR is issued to the certificates.k8s.io                          API, the signerName is added to the request in order to                          accommodate for clusters with multiple signers. Must be                          formatted as: `<my-domain>/<my-signername>`.'                        type: string                    required:                    - caCert                    - signerName                    type: object                  cni:                    description: CNI specifies the CNI that will be used by this installation.                    properties:                      ipam:                        description: IPAM specifies the pod IP address management                          that will be used in the Calico or Calico Enterprise installation.                        properties:                          type:                            description: "Specifies the IPAM plugin that will be used                              in the Calico or Calico Enterprise installation. * For                              CNI Plugin Calico, this field defaults to Calico. *                              For CNI Plugin GKE, this field defaults to HostLocal.                              * For CNI Plugin AzureVNET, this field defaults to AzureVNET.                              * For CNI Plugin AmazonVPC, this field defaults to AmazonVPC.                              \n The IPAM plugin is installed and configured only                              if the CNI plugin is set to Calico, for all other values                              of the CNI plugin the plugin binaries and CNI config                              is a dependency that is expected to be installed separately.                              \n Default: Calico"                            enum:                            - Calico                            - HostLocal                            - AmazonVPC                            - AzureVNET                            type: string                        required:                        - type                        type: object                      type:                        description: "Specifies the CNI plugin that will be used in                          the Calico or Calico Enterprise installation. * For KubernetesProvider                          GKE, this field defaults to GKE. * For KubernetesProvider                          AKS, this field defaults to AzureVNET. * For KubernetesProvider                          EKS, this field defaults to AmazonVPC. * If aws-node daemonset                          exists in kube-system when the Installation resource is                          created, this field defaults to AmazonVPC. * For all other                          cases this field defaults to Calico. \n For the value Calico,                          the CNI plugin binaries and CNI config will be installed                          as part of deployment, for all other values the CNI plugin                          binaries and CNI config is a dependency that is expected                          to be installed separately. \n Default: Calico"                        enum:                        - Calico                        - GKE                        - AmazonVPC                        - AzureVNET                        type: string                    required:                    - type                    type: object                  componentResources:                    description: Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment,                      and KubeControllersDeployment. ComponentResources can be used                      to customize the resource requirements for each component. Node,                      Typha, and KubeControllers are supported for installations.                    items:                      description: Deprecated. Please use component resource config                        fields in Installation.Spec instead. The ComponentResource                        struct associates a ResourceRequirements with a component                        by name                      properties:                        componentName:                          description: ComponentName is an enum which identifies the                            component                          enum:                          - Node                          - Typha                          - KubeControllers                          type: string                        resourceRequirements:                          description: ResourceRequirements allows customization of                            limits and requests for compute resources such as cpu                            and memory.                          properties:                            limits:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Limits describes the maximum amount of                                compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                            requests:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Requests describes the minimum amount                                of compute resources required. If Requests is omitted                                for a container, it defaults to Limits if that is                                explicitly specified, otherwise to an implementation-defined                                value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                          type: object                      required:                      - componentName                      - resourceRequirements                      type: object                    type: array                  controlPlaneNodeSelector:                    additionalProperties:                      type: string                    description: ControlPlaneNodeSelector is used to select control                      plane nodes on which to run Calico components. This is globally                      applied to all resources created by the operator excluding daemonsets.                    type: object                  controlPlaneReplicas:                    description: ControlPlaneReplicas defines how many replicas of                      the control plane core components will be deployed. This field                      applies to all control plane components that support High Availability.                      Defaults to 2.                    format: int32                    type: integer                  controlPlaneTolerations:                    description: ControlPlaneTolerations specify tolerations which                      are then globally applied to all resources created by the operator.                    items:                      description: The pod this Toleration is attached to tolerates                        any taint that matches the triple <key,value,effect> using                        the matching operator <operator>.                      properties:                        effect:                          description: Effect indicates the taint effect to match.                            Empty means match all taint effects. When specified, allowed                            values are NoSchedule, PreferNoSchedule and NoExecute.                          type: string                        key:                          description: Key is the taint key that the toleration applies                            to. Empty means match all taint keys. If the key is empty,                            operator must be Exists; this combination means to match                            all values and all keys.                          type: string                        operator:                          description: Operator represents a key's relationship to                            the value. Valid operators are Exists and Equal. Defaults                            to Equal. Exists is equivalent to wildcard for value,                            so that a pod can tolerate all taints of a particular                            category.                          type: string                        tolerationSeconds:                          description: TolerationSeconds represents the period of                            time the toleration (which must be of effect NoExecute,                            otherwise this field is ignored) tolerates the taint.                            By default, it is not set, which means tolerate the taint                            forever (do not evict). Zero and negative values will                            be treated as 0 (evict immediately) by the system.                          format: int64                          type: integer                        value:                          description: Value is the taint value the toleration matches                            to. If the operator is Exists, the value should be empty,                            otherwise just a regular string.                          type: string                      type: object                    type: array                  csiNodeDriverDaemonSet:                    description: CSINodeDriverDaemonSet configures the csi-node-driver                      DaemonSet.                    properties:                      metadata:                        description: Metadata is a subset of a Kubernetes object's                          metadata that is added to the DaemonSet.                        properties:                          annotations:                            additionalProperties:                              type: string                            description: Annotations is a map of arbitrary non-identifying                              metadata. Each of these key/value pairs are added to                              the object's annotations provided the key does not already                              exist in the object's annotations.                            type: object                          labels:                            additionalProperties:                              type: string                            description: Labels is a map of string keys and values                              that may match replicaset and service selectors. Each                              of these key/value pairs are added to the object's labels                              provided the key does not already exist in the object's                              labels.                            type: object                        type: object                      spec:                        description: Spec is the specification of the csi-node-driver                          DaemonSet.                        properties:                          minReadySeconds:                            description: MinReadySeconds is the minimum number of                              seconds for which a newly created DaemonSet pod should                              be ready without any of its container crashing, for                              it to be considered available. If specified, this overrides                              any minReadySeconds value that may be set on the csi-node-driver                              DaemonSet. If omitted, the csi-node-driver DaemonSet                              will use its default value for minReadySeconds.                            format: int32                            maximum: 2147483647                            minimum: 0                            type: integer                          template:                            description: Template describes the csi-node-driver DaemonSet                              pod that will be created.                            properties:                              metadata:                                description: Metadata is a subset of a Kubernetes                                  object's metadata that is added to the pod's metadata.                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    description: Annotations is a map of arbitrary                                      non-identifying metadata. Each of these key/value                                      pairs are added to the object's annotations                                      provided the key does not already exist in the                                      object's annotations.                                    type: object                                  labels:                                    additionalProperties:                                      type: string                                    description: Labels is a map of string keys and                                      values that may match replicaset and service                                      selectors. Each of these key/value pairs are                                      added to the object's labels provided the key                                      does not already exist in the object's labels.                                    type: object                                type: object                              spec:                                description: Spec is the csi-node-driver DaemonSet's                                  PodSpec.                                properties:                                  affinity:                                    description: 'Affinity is a group of affinity                                      scheduling rules for the csi-node-driver pods.                                      If specified, this overrides any affinity that                                      may be set on the csi-node-driver DaemonSet.                                      If omitted, the csi-node-driver DaemonSet will                                      use its default value for affinity. WARNING:                                      Please note that this field will override the                                      default csi-node-driver DaemonSet affinity.'                                    properties:                                      nodeAffinity:                                        description: Describes node affinity scheduling                                          rules for the pod.                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node matches the corresponding                                              matchExpressions; the node(s) with the                                              highest sum are the most preferred.                                            items:                                              description: An empty preferred scheduling                                                term matches all objects with implicit                                                weight 0 (i.e. it's a no-op). A null                                                preferred scheduling term matches                                                no objects (i.e. is also a no-op).                                              properties:                                                preference:                                                  description: A node selector term,                                                    associated with the corresponding                                                    weight.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                weight:                                                  description: Weight associated with                                                    matching the corresponding nodeSelectorTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - preference                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to an update),                                              the system may or may not try to eventually                                              evict the pod from its node.                                            properties:                                              nodeSelectorTerms:                                                description: Required. A list of node                                                  selector terms. The terms are ORed.                                                items:                                                  description: A null or empty node                                                    selector term matches no objects.                                                    The requirements of them are ANDed.                                                    The TopologySelectorTerm type                                                    implements a subset of the NodeSelectorTerm.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                type: array                                            required:                                            - nodeSelectorTerms                                            type: object                                            x-kubernetes-map-type: atomic                                        type: object                                      podAffinity:                                        description: Describes pod affinity scheduling                                          rules (e.g. co-locate this pod in the same                                          node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                      podAntiAffinity:                                        description: Describes pod anti-affinity scheduling                                          rules (e.g. avoid putting this pod in the                                          same node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the anti-affinity expressions specified                                              by this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling anti-affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the anti-affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the anti-affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                    type: object                                  containers:                                    description: Containers is a list of csi-node-driver                                      containers. If specified, this overrides the                                      specified csi-node-driver DaemonSet containers.                                      If omitted, the csi-node-driver DaemonSet will                                      use its default values for its containers.                                    items:                                      description: CSINodeDriverDaemonSetContainer                                        is a csi-node-driver DaemonSet container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the csi-node-driver DaemonSet container                                            by name.                                          enum:                                          - csi-node-driver                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named csi-node-driver                                            DaemonSet container's resources. If omitted,                                            the csi-node-driver DaemonSet will use                                            its default value for this container's                                            resources.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  nodeSelector:                                    additionalProperties:                                      type: string                                    description: 'NodeSelector is the csi-node-driver                                      pod''s scheduling constraints. If specified,                                      each of the key/value pairs are added to the                                      csi-node-driver DaemonSet nodeSelector provided                                      the key does not already exist in the object''s                                      nodeSelector. If omitted, the csi-node-driver                                      DaemonSet will use its default value for nodeSelector.                                      WARNING: Please note that this field will modify                                      the default csi-node-driver DaemonSet nodeSelector.'                                    type: object                                  tolerations:                                    description: 'Tolerations is the csi-node-driver                                      pod''s tolerations. If specified, this overrides                                      any tolerations that may be set on the csi-node-driver                                      DaemonSet. If omitted, the csi-node-driver DaemonSet                                      will use its default value for tolerations.                                      WARNING: Please note that this field will override                                      the default csi-node-driver DaemonSet tolerations.'                                    items:                                      description: The pod this Toleration is attached                                        to tolerates any taint that matches the triple                                        <key,value,effect> using the matching operator                                        <operator>.                                      properties:                                        effect:                                          description: Effect indicates the taint                                            effect to match. Empty means match all                                            taint effects. When specified, allowed                                            values are NoSchedule, PreferNoSchedule                                            and NoExecute.                                          type: string                                        key:                                          description: Key is the taint key that the                                            toleration applies to. Empty means match                                            all taint keys. If the key is empty, operator                                            must be Exists; this combination means                                            to match all values and all keys.                                          type: string                                        operator:                                          description: Operator represents a key's                                            relationship to the value. Valid operators                                            are Exists and Equal. Defaults to Equal.                                            Exists is equivalent to wildcard for value,                                            so that a pod can tolerate all taints                                            of a particular category.                                          type: string                                        tolerationSeconds:                                          description: TolerationSeconds represents                                            the period of time the toleration (which                                            must be of effect NoExecute, otherwise                                            this field is ignored) tolerates the taint.                                            By default, it is not set, which means                                            tolerate the taint forever (do not evict).                                            Zero and negative values will be treated                                            as 0 (evict immediately) by the system.                                          format: int64                                          type: integer                                        value:                                          description: Value is the taint value the                                            toleration matches to. If the operator                                            is Exists, the value should be empty,                                            otherwise just a regular string.                                          type: string                                      type: object                                    type: array                                type: object                            type: object                        type: object                    type: object                  fipsMode:                    description: 'FIPSMode uses images and features only that are                      using FIPS 140-2 validated cryptographic modules and standards.                      Default: Disabled'                    enum:                    - Enabled                    - Disabled                    type: string                  flexVolumePath:                    description: FlexVolumePath optionally specifies a custom path                      for FlexVolume. If not specified, FlexVolume will be enabled                      by default. If set to 'None', FlexVolume will be disabled. The                      default is based on the kubernetesProvider.                    type: string                  imagePath:                    description: "ImagePath allows for the path part of an image to                      be specified. If specified then the specified value will be                      used as the image path for each image. If not specified or empty,                      the default for each image will be used. A special case value,                      UseDefault, is supported to explicitly specify the default image                      path will be used for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                      \n This option allows configuring the `<imagePath>` portion                      of the above format."                    type: string                  imagePrefix:                    description: "ImagePrefix allows for the prefix part of an image                      to be specified. If specified then the given value will be used                      as a prefix on each image. If not specified or empty, no prefix                      will be used. A special case value, UseDefault, is supported                      to explicitly specify the default image prefix will be used                      for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                      \n This option allows configuring the `<imagePrefix>` portion                      of the above format."                    type: string                  imagePullSecrets:                    description: ImagePullSecrets is an array of references to container                      registry pull secrets to use. These are applied to all images                      to be pulled.                    items:                      description: LocalObjectReference contains enough information                        to let you locate the referenced object inside the same namespace.                      properties:                        name:                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names                            TODO: Add other useful fields. apiVersion, kind, uid?'                          type: string                      type: object                      x-kubernetes-map-type: atomic                    type: array                  kubeletVolumePluginPath:                    description: 'KubeletVolumePluginPath optionally specifies enablement                      of Calico CSI plugin. If not specified, CSI will be enabled                      by default. If set to ''None'', CSI will be disabled. Default:                      /var/lib/kubelet'                    type: string                  kubernetesProvider:                    description: KubernetesProvider specifies a particular provider                      of the Kubernetes platform and enables provider-specific configuration.                      If the specified value is empty, the Operator will attempt to                      automatically determine the current provider. If the specified                      value is not empty, the Operator will still attempt auto-detection,                      but will additionally compare the auto-detected value to the                      specified value to confirm they match.                    enum:                    - ""                    - EKS                    - GKE                    - AKS                    - OpenShift                    - DockerEnterprise                    - RKE2                    type: string                  logging:                    description: Logging Configuration for Components                    properties:                      cni:                        description: Customized logging specification for calico-cni                          plugin                        properties:                          logFileMaxAgeDays:                            description: 'Default: 30 (days)'                            format: int32                            type: integer                          logFileMaxCount:                            description: 'Default: 10'                            format: int32                            type: integer                          logFileMaxSize:                            anyOf:                            - type: integer                            - type: string                            description: 'Default: 100Mi'                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                            x-kubernetes-int-or-string: true                          logSeverity:                            description: 'Default: Info'                            enum:                            - Error                            - Warning                            - Debug                            - Info                            type: string                        type: object                    type: object                  nodeMetricsPort:                    description: NodeMetricsPort specifies which port calico/node                      serves prometheus metrics on. By default, metrics are not enabled.                      If specified, this overrides any FelixConfiguration resources                      which may exist. If omitted, then prometheus metrics may still                      be configured through FelixConfiguration.                    format: int32                    type: integer                  nodeUpdateStrategy:                    description: NodeUpdateStrategy can be used to customize the desired                      update strategy, such as the MaxUnavailable field.                    properties:                      rollingUpdate:                        description: 'Rolling update config params. Present only if                          type = "RollingUpdate". --- TODO: Update this to follow                          our convention for oneOf, whatever we decide it to be. Same                          as Deployment `strategy.rollingUpdate`. See https://github.com/kubernetes/kubernetes/issues/35345'                        properties:                          maxSurge:                            anyOf:                            - type: integer                            - type: string                            description: 'The maximum number of nodes with an existing                              available DaemonSet pod that can have an updated DaemonSet                              pod during during an update. Value can be an absolute                              number (ex: 5) or a percentage of desired pods (ex:                              10%). This can not be 0 if MaxUnavailable is 0. Absolute                              number is calculated from percentage by rounding up                              to a minimum of 1. Default value is 0. Example: when                              this is set to 30%, at most 30% of the total number                              of nodes that should be running the daemon pod (i.e.                              status.desiredNumberScheduled) can have their a new                              pod created before the old pod is marked as deleted.                              The update starts by launching new pods on 30% of nodes.                              Once an updated pod is available (Ready for at least                              minReadySeconds) the old DaemonSet pod on that node                              is marked deleted. If the old pod becomes unavailable                              for any reason (Ready transitions to false, is evicted,                              or is drained) an updated pod is immediatedly created                              on that node without considering surge limits. Allowing                              surge implies the possibility that the resources consumed                              by the daemonset on any given node can double if the                              readiness check fails, and so resource intensive daemonsets                              should take into account that they may cause evictions                              during disruption.'                            x-kubernetes-int-or-string: true                          maxUnavailable:                            anyOf:                            - type: integer                            - type: string                            description: 'The maximum number of DaemonSet pods that                              can be unavailable during the update. Value can be an                              absolute number (ex: 5) or a percentage of total number                              of DaemonSet pods at the start of the update (ex: 10%).                              Absolute number is calculated from percentage by rounding                              up. This cannot be 0 if MaxSurge is 0 Default value                              is 1. Example: when this is set to 30%, at most 30%                              of the total number of nodes that should be running                              the daemon pod (i.e. status.desiredNumberScheduled)                              can have their pods stopped for an update at any given                              time. The update starts by stopping at most 30% of those                              DaemonSet pods and then brings up new DaemonSet pods                              in their place. Once the new pods are available, it                              then proceeds onto other DaemonSet pods, thus ensuring                              that at least 70% of original number of DaemonSet pods                              are available at all times during the update.'                            x-kubernetes-int-or-string: true                        type: object                      type:                        description: Type of daemon set update. Can be "RollingUpdate"                          or "OnDelete". Default is RollingUpdate.                        type: string                    type: object                  nonPrivileged:                    description: NonPrivileged configures Calico to be run in non-privileged                      containers as non-root users where possible.                    type: string                  registry:                    description: "Registry is the default Docker registry used for                      component Docker images. If specified then the given value must                      end with a slash character (`/`) and all images will be pulled                      from this registry. If not specified then the default registries                      will be used. A special case value, UseDefault, is supported                      to explicitly specify the default registries will be used. \n                      Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`                      \n This option allows configuring the `<registry>` portion of                      the above format."                    type: string                  typhaAffinity:                    description: Deprecated. Please use Installation.Spec.TyphaDeployment                      instead. TyphaAffinity allows configuration of node affinity                      characteristics for Typha pods.                    properties:                      nodeAffinity:                        description: NodeAffinity describes node affinity scheduling                          rules for typha.                        properties:                          preferredDuringSchedulingIgnoredDuringExecution:                            description: The scheduler will prefer to schedule pods                              to nodes that satisfy the affinity expressions specified                              by this field, but it may choose a node that violates                              one or more of the expressions.                            items:                              description: An empty preferred scheduling term matches                                all objects with implicit weight 0 (i.e. it's a no-op).                                A null preferred scheduling term matches no objects                                (i.e. is also a no-op).                              properties:                                preference:                                  description: A node selector term, associated with                                    the corresponding weight.                                  properties:                                    matchExpressions:                                      description: A list of node selector requirements                                        by node's labels.                                      items:                                        description: A node selector requirement is                                          a selector that contains values, a key,                                          and an operator that relates the key and                                          values.                                        properties:                                          key:                                            description: The label key that the selector                                              applies to.                                            type: string                                          operator:                                            description: Represents a key's relationship                                              to a set of values. Valid operators                                              are In, NotIn, Exists, DoesNotExist.                                              Gt, and Lt.                                            type: string                                          values:                                            description: An array of string values.                                              If the operator is In or NotIn, the                                              values array must be non-empty. If the                                              operator is Exists or DoesNotExist,                                              the values array must be empty. If the                                              operator is Gt or Lt, the values array                                              must have a single element, which will                                              be interpreted as an integer. This array                                              is replaced during a strategic merge                                              patch.                                            items:                                              type: string                                            type: array                                        required:                                        - key                                        - operator                                        type: object                                      type: array                                    matchFields:                                      description: A list of node selector requirements                                        by node's fields.                                      items:                                        description: A node selector requirement is                                          a selector that contains values, a key,                                          and an operator that relates the key and                                          values.                                        properties:                                          key:                                            description: The label key that the selector                                              applies to.                                            type: string                                          operator:                                            description: Represents a key's relationship                                              to a set of values. Valid operators                                              are In, NotIn, Exists, DoesNotExist.                                              Gt, and Lt.                                            type: string                                          values:                                            description: An array of string values.                                              If the operator is In or NotIn, the                                              values array must be non-empty. If the                                              operator is Exists or DoesNotExist,                                              the values array must be empty. If the                                              operator is Gt or Lt, the values array                                              must have a single element, which will                                              be interpreted as an integer. This array                                              is replaced during a strategic merge                                              patch.                                            items:                                              type: string                                            type: array                                        required:                                        - key                                        - operator                                        type: object                                      type: array                                  type: object                                  x-kubernetes-map-type: atomic                                weight:                                  description: Weight associated with matching the                                    corresponding nodeSelectorTerm, in the range 1-100.                                  format: int32                                  type: integer                              required:                              - preference                              - weight                              type: object                            type: array                          requiredDuringSchedulingIgnoredDuringExecution:                            description: 'WARNING: Please note that if the affinity                              requirements specified by this field are not met at                              scheduling time, the pod will NOT be scheduled onto                              the node. There is no fallback to another affinity rules                              with this setting. This may cause networking disruption                              or even catastrophic failure! PreferredDuringSchedulingIgnoredDuringExecution                              should be used for affinity unless there is a specific                              well understood reason to use RequiredDuringSchedulingIgnoredDuringExecution                              and you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution                              will always have sufficient nodes to satisfy the requirement.                              NOTE: RequiredDuringSchedulingIgnoredDuringExecution                              is set by default for AKS nodes, to avoid scheduling                              Typhas on virtual-nodes. If the affinity requirements                              specified by this field cease to be met at some point                              during pod execution (e.g. due to an update), the system                              may or may not try to eventually evict the pod from                              its node.'                            properties:                              nodeSelectorTerms:                                description: Required. A list of node selector terms.                                  The terms are ORed.                                items:                                  description: A null or empty node selector term                                    matches no objects. The requirements of them are                                    ANDed. The TopologySelectorTerm type implements                                    a subset of the NodeSelectorTerm.                                  properties:                                    matchExpressions:                                      description: A list of node selector requirements                                        by node's labels.                                      items:                                        description: A node selector requirement is                                          a selector that contains values, a key,                                          and an operator that relates the key and                                          values.                                        properties:                                          key:                                            description: The label key that the selector                                              applies to.                                            type: string                                          operator:                                            description: Represents a key's relationship                                              to a set of values. Valid operators                                              are In, NotIn, Exists, DoesNotExist.                                              Gt, and Lt.                                            type: string                                          values:                                            description: An array of string values.                                              If the operator is In or NotIn, the                                              values array must be non-empty. If the                                              operator is Exists or DoesNotExist,                                              the values array must be empty. If the                                              operator is Gt or Lt, the values array                                              must have a single element, which will                                              be interpreted as an integer. This array                                              is replaced during a strategic merge                                              patch.                                            items:                                              type: string                                            type: array                                        required:                                        - key                                        - operator                                        type: object                                      type: array                                    matchFields:                                      description: A list of node selector requirements                                        by node's fields.                                      items:                                        description: A node selector requirement is                                          a selector that contains values, a key,                                          and an operator that relates the key and                                          values.                                        properties:                                          key:                                            description: The label key that the selector                                              applies to.                                            type: string                                          operator:                                            description: Represents a key's relationship                                              to a set of values. Valid operators                                              are In, NotIn, Exists, DoesNotExist.                                              Gt, and Lt.                                            type: string                                          values:                                            description: An array of string values.                                              If the operator is In or NotIn, the                                              values array must be non-empty. If the                                              operator is Exists or DoesNotExist,                                              the values array must be empty. If the                                              operator is Gt or Lt, the values array                                              must have a single element, which will                                              be interpreted as an integer. This array                                              is replaced during a strategic merge                                              patch.                                            items:                                              type: string                                            type: array                                        required:                                        - key                                        - operator                                        type: object                                      type: array                                  type: object                                  x-kubernetes-map-type: atomic                                type: array                            required:                            - nodeSelectorTerms                            type: object                            x-kubernetes-map-type: atomic                        type: object                    type: object                  typhaDeployment:                    description: TyphaDeployment configures the typha Deployment.                      If used in conjunction with the deprecated ComponentResources                      or TyphaAffinity, then these overrides take precedence.                    properties:                      metadata:                        description: Metadata is a subset of a Kubernetes object's                          metadata that is added to the Deployment.                        properties:                          annotations:                            additionalProperties:                              type: string                            description: Annotations is a map of arbitrary non-identifying                              metadata. Each of these key/value pairs are added to                              the object's annotations provided the key does not already                              exist in the object's annotations.                            type: object                          labels:                            additionalProperties:                              type: string                            description: Labels is a map of string keys and values                              that may match replicaset and service selectors. Each                              of these key/value pairs are added to the object's labels                              provided the key does not already exist in the object's                              labels.                            type: object                        type: object                      spec:                        description: Spec is the specification of the typha Deployment.                        properties:                          minReadySeconds:                            description: MinReadySeconds is the minimum number of                              seconds for which a newly created Deployment pod should                              be ready without any of its container crashing, for                              it to be considered available. If specified, this overrides                              any minReadySeconds value that may be set on the typha                              Deployment. If omitted, the typha Deployment will use                              its default value for minReadySeconds.                            format: int32                            maximum: 2147483647                            minimum: 0                            type: integer                          strategy:                            description: The deployment strategy to use to replace                              existing pods with new ones.                            properties:                              rollingUpdate:                                description: Rolling update config params. Present                                  only if DeploymentStrategyType = RollingUpdate.                                  to be.                                properties:                                  maxSurge:                                    anyOf:                                    - type: integer                                    - type: string                                    description: 'The maximum number of pods that                                      can be scheduled above the desired number of                                      pods. Value can be an absolute number (ex: 5)                                      or a percentage of desired pods (ex: 10%). This                                      can not be 0 if MaxUnavailable is 0. Absolute                                      number is calculated from percentage by rounding                                      up. Defaults to 25%. Example: when this is set                                      to 30%, the new ReplicaSet can be scaled up                                      immediately when the rolling update starts,                                      such that the total number of old and new pods                                      do not exceed 130% of desired pods. Once old                                      pods have been killed, new ReplicaSet can be                                      scaled up further, ensuring that total number                                      of pods running at any time during the update                                      is at most 130% of desired pods.'                                    x-kubernetes-int-or-string: true                                  maxUnavailable:                                    anyOf:                                    - type: integer                                    - type: string                                    description: 'The maximum number of pods that                                      can be unavailable during the update. Value                                      can be an absolute number (ex: 5) or a percentage                                      of desired pods (ex: 10%). Absolute number is                                      calculated from percentage by rounding down.                                      This can not be 0 if MaxSurge is 0. Defaults                                      to 25%. Example: when this is set to 30%, the                                      old ReplicaSet can be scaled down to 70% of                                      desired pods immediately when the rolling update                                      starts. Once new pods are ready, old ReplicaSet                                      can be scaled down further, followed by scaling                                      up the new ReplicaSet, ensuring that the total                                      number of pods available at all times during                                      the update is at least 70% of desired pods.'                                    x-kubernetes-int-or-string: true                                type: object                            type: object                          template:                            description: Template describes the typha Deployment pod                              that will be created.                            properties:                              metadata:                                description: Metadata is a subset of a Kubernetes                                  object's metadata that is added to the pod's metadata.                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    description: Annotations is a map of arbitrary                                      non-identifying metadata. Each of these key/value                                      pairs are added to the object's annotations                                      provided the key does not already exist in the                                      object's annotations.                                    type: object                                  labels:                                    additionalProperties:                                      type: string                                    description: Labels is a map of string keys and                                      values that may match replicaset and service                                      selectors. Each of these key/value pairs are                                      added to the object's labels provided the key                                      does not already exist in the object's labels.                                    type: object                                type: object                              spec:                                description: Spec is the typha Deployment's PodSpec.                                properties:                                  affinity:                                    description: 'Affinity is a group of affinity                                      scheduling rules for the typha pods. If specified,                                      this overrides any affinity that may be set                                      on the typha Deployment. If omitted, the typha                                      Deployment will use its default value for affinity.                                      If used in conjunction with the deprecated TyphaAffinity,                                      then this value takes precedence. WARNING: Please                                      note that this field will override the default                                      calico-typha Deployment affinity.'                                    properties:                                      nodeAffinity:                                        description: Describes node affinity scheduling                                          rules for the pod.                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node matches the corresponding                                              matchExpressions; the node(s) with the                                              highest sum are the most preferred.                                            items:                                              description: An empty preferred scheduling                                                term matches all objects with implicit                                                weight 0 (i.e. it's a no-op). A null                                                preferred scheduling term matches                                                no objects (i.e. is also a no-op).                                              properties:                                                preference:                                                  description: A node selector term,                                                    associated with the corresponding                                                    weight.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                weight:                                                  description: Weight associated with                                                    matching the corresponding nodeSelectorTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - preference                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to an update),                                              the system may or may not try to eventually                                              evict the pod from its node.                                            properties:                                              nodeSelectorTerms:                                                description: Required. A list of node                                                  selector terms. The terms are ORed.                                                items:                                                  description: A null or empty node                                                    selector term matches no objects.                                                    The requirements of them are ANDed.                                                    The TopologySelectorTerm type                                                    implements a subset of the NodeSelectorTerm.                                                  properties:                                                    matchExpressions:                                                      description: A list of node                                                        selector requirements by node's                                                        labels.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchFields:                                                      description: A list of node                                                        selector requirements by node's                                                        fields.                                                      items:                                                        description: A node selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: The label                                                              key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: Represents                                                              a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists, DoesNotExist.                                                              Gt, and Lt.                                                            type: string                                                          values:                                                            description: An array                                                              of string values. If                                                              the operator is In or                                                              NotIn, the values array                                                              must be non-empty. If                                                              the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. If the operator                                                              is Gt or Lt, the values                                                              array must have a single                                                              element, which will                                                              be interpreted as an                                                              integer. This array                                                              is replaced during a                                                              strategic merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                  type: object                                                  x-kubernetes-map-type: atomic                                                type: array                                            required:                                            - nodeSelectorTerms                                            type: object                                            x-kubernetes-map-type: atomic                                        type: object                                      podAffinity:                                        description: Describes pod affinity scheduling                                          rules (e.g. co-locate this pod in the same                                          node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the affinity expressions specified by                                              this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                      podAntiAffinity:                                        description: Describes pod anti-affinity scheduling                                          rules (e.g. avoid putting this pod in the                                          same node, zone, etc. as some other pod(s)).                                        properties:                                          preferredDuringSchedulingIgnoredDuringExecution:                                            description: The scheduler will prefer                                              to schedule pods to nodes that satisfy                                              the anti-affinity expressions specified                                              by this field, but it may choose a node                                              that violates one or more of the expressions.                                              The node that is most preferred is the                                              one with the greatest sum of weights,                                              i.e. for each node that meets all of                                              the scheduling requirements (resource                                              request, requiredDuringScheduling anti-affinity                                              expressions, etc.), compute a sum by                                              iterating through the elements of this                                              field and adding "weight" to the sum                                              if the node has pods which matches the                                              corresponding podAffinityTerm; the node(s)                                              with the highest sum are the most preferred.                                            items:                                              description: The weights of all of the                                                matched WeightedPodAffinityTerm fields                                                are added per-node to find the most                                                preferred node(s)                                              properties:                                                podAffinityTerm:                                                  description: Required. A pod affinity                                                    term, associated with the corresponding                                                    weight.                                                  properties:                                                    labelSelector:                                                      description: A label query over                                                        a set of resources, in this                                                        case pods.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaceSelector:                                                      description: A label query over                                                        the set of namespaces that                                                        the term applies to. The term                                                        is applied to the union of                                                        the namespaces selected by                                                        this field and the ones listed                                                        in the namespaces field. null                                                        selector and null or empty                                                        namespaces list means "this                                                        pod's namespace". An empty                                                        selector ({}) matches all                                                        namespaces.                                                      properties:                                                        matchExpressions:                                                          description: matchExpressions                                                            is a list of label selector                                                            requirements. The requirements                                                            are ANDed.                                                          items:                                                            description: A label selector                                                              requirement is a selector                                                              that contains values,                                                              a key, and an operator                                                              that relates the key                                                              and values.                                                            properties:                                                              key:                                                                description: key is                                                                  the label key that                                                                  the selector applies                                                                  to.                                                                type: string                                                              operator:                                                                description: operator                                                                  represents a key's                                                                  relationship to                                                                  a set of values.                                                                  Valid operators                                                                  are In, NotIn, Exists                                                                  and DoesNotExist.                                                                type: string                                                              values:                                                                description: values                                                                  is an array of string                                                                  values. If the operator                                                                  is In or NotIn,                                                                  the values array                                                                  must be non-empty.                                                                  If the operator                                                                  is Exists or DoesNotExist,                                                                  the values array                                                                  must be empty. This                                                                  array is replaced                                                                  during a strategic                                                                  merge patch.                                                                items:                                                                  type: string                                                                type: array                                                            required:                                                            - key                                                            - operator                                                            type: object                                                          type: array                                                        matchLabels:                                                          additionalProperties:                                                            type: string                                                          description: matchLabels                                                            is a map of {key,value}                                                            pairs. A single {key,value}                                                            in the matchLabels map                                                            is equivalent to an element                                                            of matchExpressions, whose                                                            key field is "key", the                                                            operator is "In", and                                                            the values array contains                                                            only "value". The requirements                                                            are ANDed.                                                          type: object                                                      type: object                                                      x-kubernetes-map-type: atomic                                                    namespaces:                                                      description: namespaces specifies                                                        a static list of namespace                                                        names that the term applies                                                        to. The term is applied to                                                        the union of the namespaces                                                        listed in this field and the                                                        ones selected by namespaceSelector.                                                        null or empty namespaces list                                                        and null namespaceSelector                                                        means "this pod's namespace".                                                      items:                                                        type: string                                                      type: array                                                    topologyKey:                                                      description: This pod should                                                        be co-located (affinity) or                                                        not co-located (anti-affinity)                                                        with the pods matching the                                                        labelSelector in the specified                                                        namespaces, where co-located                                                        is defined as running on a                                                        node whose value of the label                                                        with key topologyKey matches                                                        that of any node on which                                                        any of the selected pods is                                                        running. Empty topologyKey                                                        is not allowed.                                                      type: string                                                  required:                                                  - topologyKey                                                  type: object                                                weight:                                                  description: weight associated with                                                    matching the corresponding podAffinityTerm,                                                    in the range 1-100.                                                  format: int32                                                  type: integer                                              required:                                              - podAffinityTerm                                              - weight                                              type: object                                            type: array                                          requiredDuringSchedulingIgnoredDuringExecution:                                            description: If the anti-affinity requirements                                              specified by this field are not met                                              at scheduling time, the pod will not                                              be scheduled onto the node. If the anti-affinity                                              requirements specified by this field                                              cease to be met at some point during                                              pod execution (e.g. due to a pod label                                              update), the system may or may not try                                              to eventually evict the pod from its                                              node. When there are multiple elements,                                              the lists of nodes corresponding to                                              each podAffinityTerm are intersected,                                              i.e. all terms must be satisfied.                                            items:                                              description: Defines a set of pods (namely                                                those matching the labelSelector relative                                                to the given namespace(s)) that this                                                pod should be co-located (affinity)                                                or not co-located (anti-affinity)                                                with, where co-located is defined                                                as running on a node whose value of                                                the label with key <topologyKey> matches                                                that of any node on which a pod of                                                the set of pods is running                                              properties:                                                labelSelector:                                                  description: A label query over                                                    a set of resources, in this case                                                    pods.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaceSelector:                                                  description: A label query over                                                    the set of namespaces that the                                                    term applies to. The term is applied                                                    to the union of the namespaces                                                    selected by this field and the                                                    ones listed in the namespaces                                                    field. null selector and null                                                    or empty namespaces list means                                                    "this pod's namespace". An empty                                                    selector ({}) matches all namespaces.                                                  properties:                                                    matchExpressions:                                                      description: matchExpressions                                                        is a list of label selector                                                        requirements. The requirements                                                        are ANDed.                                                      items:                                                        description: A label selector                                                          requirement is a selector                                                          that contains values, a                                                          key, and an operator that                                                          relates the key and values.                                                        properties:                                                          key:                                                            description: key is the                                                              label key that the selector                                                              applies to.                                                            type: string                                                          operator:                                                            description: operator                                                              represents a key's relationship                                                              to a set of values.                                                              Valid operators are                                                              In, NotIn, Exists and                                                              DoesNotExist.                                                            type: string                                                          values:                                                            description: values is                                                              an array of string values.                                                              If the operator is In                                                              or NotIn, the values                                                              array must be non-empty.                                                              If the operator is Exists                                                              or DoesNotExist, the                                                              values array must be                                                              empty. This array is                                                              replaced during a strategic                                                              merge patch.                                                            items:                                                              type: string                                                            type: array                                                        required:                                                        - key                                                        - operator                                                        type: object                                                      type: array                                                    matchLabels:                                                      additionalProperties:                                                        type: string                                                      description: matchLabels is                                                        a map of {key,value} pairs.                                                        A single {key,value} in the                                                        matchLabels map is equivalent                                                        to an element of matchExpressions,                                                        whose key field is "key",                                                        the operator is "In", and                                                        the values array contains                                                        only "value". The requirements                                                        are ANDed.                                                      type: object                                                  type: object                                                  x-kubernetes-map-type: atomic                                                namespaces:                                                  description: namespaces specifies                                                    a static list of namespace names                                                    that the term applies to. The                                                    term is applied to the union of                                                    the namespaces listed in this                                                    field and the ones selected by                                                    namespaceSelector. null or empty                                                    namespaces list and null namespaceSelector                                                    means "this pod's namespace".                                                  items:                                                    type: string                                                  type: array                                                topologyKey:                                                  description: This pod should be                                                    co-located (affinity) or not co-located                                                    (anti-affinity) with the pods                                                    matching the labelSelector in                                                    the specified namespaces, where                                                    co-located is defined as running                                                    on a node whose value of the label                                                    with key topologyKey matches that                                                    of any node on which any of the                                                    selected pods is running. Empty                                                    topologyKey is not allowed.                                                  type: string                                              required:                                              - topologyKey                                              type: object                                            type: array                                        type: object                                    type: object                                  containers:                                    description: Containers is a list of typha containers.                                      If specified, this overrides the specified typha                                      Deployment containers. If omitted, the typha                                      Deployment will use its default values for its                                      containers.                                    items:                                      description: TyphaDeploymentContainer is a typha                                        Deployment container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the typha Deployment container by name.                                          enum:                                          - calico-typha                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named typha Deployment                                            container's resources. If omitted, the                                            typha Deployment will use its default                                            value for this container's resources.                                            If used in conjunction with the deprecated                                            ComponentResources, then this value takes                                            precedence.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  initContainers:                                    description: InitContainers is a list of typha                                      init containers. If specified, this overrides                                      the specified typha Deployment init containers.                                      If omitted, the typha Deployment will use its                                      default values for its init containers.                                    items:                                      description: TyphaDeploymentInitContainer is                                        a typha Deployment init container.                                      properties:                                        name:                                          description: Name is an enum which identifies                                            the typha Deployment init container by                                            name.                                          enum:                                          - typha-certs-key-cert-provisioner                                          type: string                                        resources:                                          description: Resources allows customization                                            of limits and requests for compute resources                                            such as cpu and memory. If specified,                                            this overrides the named typha Deployment                                            init container's resources. If omitted,                                            the typha Deployment will use its default                                            value for this init container's resources.                                            If used in conjunction with the deprecated                                            ComponentResources, then this value takes                                            precedence.                                          properties:                                            limits:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Limits describes the maximum                                                amount of compute resources allowed.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                            requests:                                              additionalProperties:                                                anyOf:                                                - type: integer                                                - type: string                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                                x-kubernetes-int-or-string: true                                              description: 'Requests describes the                                                minimum amount of compute resources                                                required. If Requests is omitted for                                                a container, it defaults to Limits                                                if that is explicitly specified, otherwise                                                to an implementation-defined value.                                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                              type: object                                          type: object                                      required:                                      - name                                      type: object                                    type: array                                  nodeSelector:                                    additionalProperties:                                      type: string                                    description: 'NodeSelector is the calico-typha                                      pod''s scheduling constraints. If specified,                                      each of the key/value pairs are added to the                                      calico-typha Deployment nodeSelector provided                                      the key does not already exist in the object''s                                      nodeSelector. If omitted, the calico-typha Deployment                                      will use its default value for nodeSelector.                                      WARNING: Please note that this field will modify                                      the default calico-typha Deployment nodeSelector.'                                    type: object                                  terminationGracePeriodSeconds:                                    description: Optional duration in seconds the                                      pod needs to terminate gracefully. May be decreased                                      in delete request. Value must be non-negative                                      integer. The value zero indicates stop immediately                                      via the kill signal (no opportunity to shut                                      down). If this value is nil, the default grace                                      period will be used instead. The grace period                                      is the duration in seconds after the processes                                      running in the pod are sent a termination signal                                      and the time when the processes are forcibly                                      halted with a kill signal. Set this value longer                                      than the expected cleanup time for your process.                                      Defaults to 30 seconds.                                    format: int64                                    type: integer                                  tolerations:                                    description: 'Tolerations is the typha pod''s                                      tolerations. If specified, this overrides any                                      tolerations that may be set on the typha Deployment.                                      If omitted, the typha Deployment will use its                                      default value for tolerations. WARNING: Please                                      note that this field will override the default                                      calico-typha Deployment tolerations.'                                    items:                                      description: The pod this Toleration is attached                                        to tolerates any taint that matches the triple                                        <key,value,effect> using the matching operator                                        <operator>.                                      properties:                                        effect:                                          description: Effect indicates the taint                                            effect to match. Empty means match all                                            taint effects. When specified, allowed                                            values are NoSchedule, PreferNoSchedule                                            and NoExecute.                                          type: string                                        key:                                          description: Key is the taint key that the                                            toleration applies to. Empty means match                                            all taint keys. If the key is empty, operator                                            must be Exists; this combination means                                            to match all values and all keys.                                          type: string                                        operator:                                          description: Operator represents a key's                                            relationship to the value. Valid operators                                            are Exists and Equal. Defaults to Equal.                                            Exists is equivalent to wildcard for value,                                            so that a pod can tolerate all taints                                            of a particular category.                                          type: string                                        tolerationSeconds:                                          description: TolerationSeconds represents                                            the period of time the toleration (which                                            must be of effect NoExecute, otherwise                                            this field is ignored) tolerates the taint.                                            By default, it is not set, which means                                            tolerate the taint forever (do not evict).                                            Zero and negative values will be treated                                            as 0 (evict immediately) by the system.                                          format: int64                                          type: integer                                        value:                                          description: Value is the taint value the                                            toleration matches to. If the operator                                            is Exists, the value should be empty,                                            otherwise just a regular string.                                          type: string                                      type: object                                    type: array                                  topologySpreadConstraints:                                    description: TopologySpreadConstraints describes                                      how a group of pods ought to spread across topology                                      domains. Scheduler will schedule pods in a way                                      which abides by the constraints. All topologySpreadConstraints                                      are ANDed.                                    items:                                      description: TopologySpreadConstraint specifies                                        how to spread matching pods among the given                                        topology.                                      properties:                                        labelSelector:                                          description: LabelSelector is used to find                                            matching pods. Pods that match this label                                            selector are counted to determine the                                            number of pods in their corresponding                                            topology domain.                                          properties:                                            matchExpressions:                                              description: matchExpressions is a list                                                of label selector requirements. The                                                requirements are ANDed.                                              items:                                                description: A label selector requirement                                                  is a selector that contains values,                                                  a key, and an operator that relates                                                  the key and values.                                                properties:                                                  key:                                                    description: key is the label                                                      key that the selector applies                                                      to.                                                    type: string                                                  operator:                                                    description: operator represents                                                      a key's relationship to a set                                                      of values. Valid operators are                                                      In, NotIn, Exists and DoesNotExist.                                                    type: string                                                  values:                                                    description: values is an array                                                      of string values. If the operator                                                      is In or NotIn, the values array                                                      must be non-empty. If the operator                                                      is Exists or DoesNotExist, the                                                      values array must be empty.                                                      This array is replaced during                                                      a strategic merge patch.                                                    items:                                                      type: string                                                    type: array                                                required:                                                - key                                                - operator                                                type: object                                              type: array                                            matchLabels:                                              additionalProperties:                                                type: string                                              description: matchLabels is a map of                                                {key,value} pairs. A single {key,value}                                                in the matchLabels map is equivalent                                                to an element of matchExpressions,                                                whose key field is "key", the operator                                                is "In", and the values array contains                                                only "value". The requirements are                                                ANDed.                                              type: object                                          type: object                                          x-kubernetes-map-type: atomic                                        matchLabelKeys:                                          description: MatchLabelKeys is a set of                                            pod label keys to select the pods over                                            which spreading will be calculated. The                                            keys are used to lookup values from the                                            incoming pod labels, those key-value labels                                            are ANDed with labelSelector to select                                            the group of existing pods over which                                            spreading will be calculated for the incoming                                            pod. Keys that don't exist in the incoming                                            pod labels will be ignored. A null or                                            empty list means only match against labelSelector.                                          items:                                            type: string                                          type: array                                          x-kubernetes-list-type: atomic                                        maxSkew:                                          description: 'MaxSkew describes the degree                                            to which pods may be unevenly distributed.                                            When `whenUnsatisfiable=DoNotSchedule`,                                            it is the maximum permitted difference                                            between the number of matching pods in                                            the target topology and the global minimum.                                            The global minimum is the minimum number                                            of matching pods in an eligible domain                                            or zero if the number of eligible domains                                            is less than MinDomains. For example,                                            in a 3-zone cluster, MaxSkew is set to                                            1, and pods with the same labelSelector                                            spread as 2/2/1: In this case, the global                                            minimum is 1. | zone1 | zone2 | zone3                                            | |  P P  |  P P  |   P   | - if MaxSkew                                            is 1, incoming pod can only be scheduled                                            to zone3 to become 2/2/2; scheduling it                                            onto zone1(zone2) would make the ActualSkew(3-1)                                            on zone1(zone2) violate MaxSkew(1). -                                            if MaxSkew is 2, incoming pod can be scheduled                                            onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,                                            it is used to give higher precedence to                                            topologies that satisfy it. It''s a required                                            field. Default value is 1 and 0 is not                                            allowed.'                                          format: int32                                          type: integer                                        minDomains:                                          description: "MinDomains indicates a minimum                                            number of eligible domains. When the number                                            of eligible domains with matching topology                                            keys is less than minDomains, Pod Topology                                            Spread treats \"global minimum\" as 0,                                            and then the calculation of Skew is performed.                                            And when the number of eligible domains                                            with matching topology keys equals or                                            greater than minDomains, this value has                                            no effect on scheduling. As a result,                                            when the number of eligible domains is                                            less than minDomains, scheduler won't                                            schedule more than maxSkew Pods to those                                            domains. If value is nil, the constraint                                            behaves as if MinDomains is equal to 1.                                            Valid values are integers greater than                                            0. When value is not nil, WhenUnsatisfiable                                            must be DoNotSchedule. \n For example,                                            in a 3-zone cluster, MaxSkew is set to                                            2, MinDomains is set to 5 and pods with                                            the same labelSelector spread as 2/2/2:                                            | zone1 | zone2 | zone3 | |  P P  |  P                                            P  |  P P  | The number of domains is                                            less than 5(MinDomains), so \"global minimum\"                                            is treated as 0. In this situation, new                                            pod with the same labelSelector cannot                                            be scheduled, because computed skew will                                            be 3(3 - 0) if new Pod is scheduled to                                            any of the three zones, it will violate                                            MaxSkew. \n This is a beta field and requires                                            the MinDomainsInPodTopologySpread feature                                            gate to be enabled (enabled by default)."                                          format: int32                                          type: integer                                        nodeAffinityPolicy:                                          description: "NodeAffinityPolicy indicates                                            how we will treat Pod's nodeAffinity/nodeSelector                                            when calculating pod topology spread skew.                                            Options are: - Honor: only nodes matching                                            nodeAffinity/nodeSelector are included                                            in the calculations. - Ignore: nodeAffinity/nodeSelector                                            are ignored. All nodes are included in                                            the calculations. \n If this value is                                            nil, the behavior is equivalent to the                                            Honor policy. This is a alpha-level feature                                            enabled by the NodeInclusionPolicyInPodTopologySpread                                            feature flag."                                          type: string                                        nodeTaintsPolicy:                                          description: "NodeTaintsPolicy indicates                                            how we will treat node taints when calculating                                            pod topology spread skew. Options are:                                            - Honor: nodes without taints, along with                                            tainted nodes for which the incoming pod                                            has a toleration, are included. - Ignore:                                            node taints are ignored. All nodes are                                            included. \n If this value is nil, the                                            behavior is equivalent to the Ignore policy.                                            This is a alpha-level feature enabled                                            by the NodeInclusionPolicyInPodTopologySpread                                            feature flag."                                          type: string                                        topologyKey:                                          description: TopologyKey is the key of node                                            labels. Nodes that have a label with this                                            key and identical values are considered                                            to be in the same topology. We consider                                            each <key, value> as a "bucket", and try                                            to put balanced number of pods into each                                            bucket. We define a domain as a particular                                            instance of a topology. Also, we define                                            an eligible domain as a domain whose nodes                                            meet the requirements of nodeAffinityPolicy                                            and nodeTaintsPolicy. e.g. If TopologyKey                                            is "kubernetes.io/hostname", each Node                                            is a domain of that topology. And, if                                            TopologyKey is "topology.kubernetes.io/zone",                                            each zone is a domain of that topology.                                            It's a required field.                                          type: string                                        whenUnsatisfiable:                                          description: 'WhenUnsatisfiable indicates                                            how to deal with a pod if it doesn''t                                            satisfy the spread constraint. - DoNotSchedule                                            (default) tells the scheduler not to schedule                                            it. - ScheduleAnyway tells the scheduler                                            to schedule the pod in any location, but                                            giving higher precedence to topologies                                            that would help reduce the skew. A constraint                                            is considered "Unsatisfiable" for an incoming                                            pod if and only if every possible node                                            assignment for that pod would violate                                            "MaxSkew" on some topology. For example,                                            in a 3-zone cluster, MaxSkew is set to                                            1, and pods with the same labelSelector                                            spread as 3/1/1: | zone1 | zone2 | zone3                                            | | P P P |   P   |   P   | If WhenUnsatisfiable                                            is set to DoNotSchedule, incoming pod                                            can only be scheduled to zone2(zone3)                                            to become 3/2/1(3/1/2) as ActualSkew(2-1)                                            on zone2(zone3) satisfies MaxSkew(1).                                            In other words, the cluster can still                                            be imbalanced, but scheduler won''t make                                            it *more* imbalanced. It''s a required                                            field.'                                          type: string                                      required:                                      - maxSkew                                      - topologyKey                                      - whenUnsatisfiable                                      type: object                                    type: array                                type: object                            type: object                        type: object                    type: object                  typhaMetricsPort:                    description: TyphaMetricsPort specifies which port calico/typha                      serves prometheus metrics on. By default, metrics are not enabled.                    format: int32                    type: integer                  variant:                    description: 'Variant is the product to install - one of Calico                      or TigeraSecureEnterprise Default: Calico'                    enum:                    - Calico                    - TigeraSecureEnterprise                    type: string                type: object              conditions:                description: Conditions represents the latest observed set of conditions                  for the component. A component may be one or more of Ready, Progressing,                  Degraded or other customer types.                items:                  description: "Condition contains details for one aspect of the current                    state of this API Resource. --- This struct is intended for direct                    use as an array at the field path .status.conditions.  For example,                    \n type FooStatus struct{ // Represents the observations of a                    foo's current state. // Known .status.conditions.type are: \"Available\",                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge                    // +listType=map // +listMapKey=type Conditions []metav1.Condition                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"                  properties:                    lastTransitionTime:                      description: lastTransitionTime is the last time the condition                        transitioned from one status to another. This should be when                        the underlying condition changed.  If that is not known, then                        using the time when the API field changed is acceptable.                      format: date-time                      type: string                    message:                      description: message is a human readable message indicating                        details about the transition. This may be an empty string.                      maxLength: 32768                      type: string                    observedGeneration:                      description: observedGeneration represents the .metadata.generation                        that the condition was set based upon. For instance, if .metadata.generation                        is currently 12, but the .status.conditions[x].observedGeneration                        is 9, the condition is out of date with respect to the current                        state of the instance.                      format: int64                      minimum: 0                      type: integer                    reason:                      description: reason contains a programmatic identifier indicating                        the reason for the condition's last transition. Producers                        of specific condition types may define expected values and                        meanings for this field, and whether the values are considered                        a guaranteed API. The value should be a CamelCase string.                        This field may not be empty.                      maxLength: 1024                      minLength: 1                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$                      type: string                    status:                      description: status of the condition, one of True, False, Unknown.                      enum:                      - "True"                      - "False"                      - Unknown                      type: string                    type:                      description: type of condition in CamelCase or in foo.example.com/CamelCase.                        --- Many .condition.type values are consistent across resources                        like Available, but because arbitrary conditions can be useful                        (see .node.status.conditions), the ability to deconflict is                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)                      maxLength: 316                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$                      type: string                  required:                  - lastTransitionTime                  - message                  - reason                  - status                  - type                  type: object                type: array              imageSet:                description: ImageSet is the name of the ImageSet being used, if there                  is an ImageSet that is being used. If an ImageSet is not being used                  then this will not be set.                type: string              mtu:                description: MTU is the most recently observed value for pod network                  MTU. This may be an explicitly configured value, or based on Calico's                  native auto-detetion.                format: int32                type: integer              variant:                description: Variant is the most recently observed installed variant                  - one of Calico or TigeraSecureEnterprise                enum:                - Calico                - TigeraSecureEnterprise                type: string            type: object        type: object    served: true    storage: true    subresources:      status: {}---# Source: crds/operator.tigera.io_tigerastatuses_crd.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.3.0  name: tigerastatuses.operator.tigera.iospec:  group: operator.tigera.io  names:    kind: TigeraStatus    listKind: TigeraStatusList    plural: tigerastatuses    singular: tigerastatus  scope: Cluster  versions:  - additionalPrinterColumns:    - description: Whether the component running and stable.      jsonPath: .status.conditions[?(@.type=='Available')].status      name: Available      type: string    - description: Whether the component is processing changes.      jsonPath: .status.conditions[?(@.type=='Progressing')].status      name: Progressing      type: string    - description: Whether the component is degraded.      jsonPath: .status.conditions[?(@.type=='Degraded')].status      name: Degraded      type: string    - description: The time the component's Available status last changed.      jsonPath: .status.conditions[?(@.type=='Available')].lastTransitionTime      name: Since      type: date    name: v1    schema:      openAPIV3Schema:        description: TigeraStatus represents the most recently observed status for          Calico or a Calico Enterprise functional area.        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: TigeraStatusSpec defines the desired state of TigeraStatus            type: object          status:            description: TigeraStatusStatus defines the observed state of TigeraStatus            properties:              conditions:                description: Conditions represents the latest observed set of conditions                  for this component. A component may be one or more of Available,                  Progressing, or Degraded.                items:                  description: TigeraStatusCondition represents a condition attached                    to a particular component.                  properties:                    lastTransitionTime:                      description: The timestamp representing the start time for the                        current status.                      format: date-time                      type: string                    message:                      description: Optionally, a detailed message providing additional                        context.                      type: string                    observedGeneration:                      description: observedGeneration represents the generation that                        the condition was set based upon. For instance, if generation                        is currently 12, but the .status.conditions[x].observedGeneration                        is 9, the condition is out of date with respect to the current                        state of the instance.                      format: int64                      type: integer                    reason:                      description: A brief reason explaining the condition.                      type: string                    status:                      description: The status of the condition. May be True, False,                        or Unknown.                      type: string                    type:                      description: The type of condition. May be Available, Progressing,                        or Degraded.                      type: string                  required:                  - lastTransitionTime                  - status                  - type                  type: object                type: array            required:            - conditions            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: tigera-operator/templates/tigera-operator/02-serviceaccount-tigera-operator.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: tigera-operator  namespace: tigera-operatorimagePullSecrets:  []---# Source: tigera-operator/templates/tigera-operator/02-role-tigera-operator.yaml# Permissions required when running the operator for a Calico cluster.apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: tigera-operatorrules:  - apiGroups:      - ""    resources:      - namespaces      - pods      - podtemplates      - services      - endpoints      - events      - configmaps      - secrets      - serviceaccounts    verbs:      - create      - get      - list      - update      - delete      - watch  - apiGroups:      - ""    resources:      - resourcequotas    verbs:      - list      - get      - watch  - apiGroups:      - ""    resources:      - resourcequotas    verbs:      - create      - get      - list      - update      - delete      - watch    resourceNames:      - calico-critical-pods      - tigera-critical-pods  - apiGroups:      - ""    resources:      - nodes    verbs:      # Need to update node labels when migrating nodes.      - get      - patch      - list      # We need this for Typha autoscaling      - watch  - apiGroups:      - rbac.authorization.k8s.io    resources:      - clusterroles      - clusterrolebindings      - rolebindings      - roles    verbs:      - create      - get      - list      - update      - delete      - watch      - bind      - escalate  - apiGroups:      - apps    resources:      - deployments      - daemonsets      - statefulsets    verbs:      - create      - get      - list      - patch      - update      - delete      - watch  - apiGroups:      - apps    resourceNames:      - tigera-operator    resources:      - deployments/finalizers    verbs:      - update  - apiGroups:      - operator.tigera.io    resources:      - '*'    verbs:      - create      - get      - list      - update      - patch      - delete      - watch  - apiGroups:    - networking.k8s.io    resources:    - networkpolicies    verbs:      - create      - update      - delete      - get      - list      - watch  - apiGroups:    - crd.projectcalico.org    resources:    - felixconfigurations    verbs:    - create    - patch    - list    - get    - watch  - apiGroups:    - crd.projectcalico.org    resources:    - ippools    - kubecontrollersconfigurations    - bgpconfigurations    verbs:    - get    - list    - watch  - apiGroups:      - scheduling.k8s.io    resources:      - priorityclasses    verbs:      - create      - get      - list      - update      - delete      - watch  - apiGroups:      - policy    resources:      - poddisruptionbudgets    verbs:      - create      - get      - list      - update      - delete      - watch  - apiGroups:      - apiregistration.k8s.io    resources:      - apiservices    verbs:      - list      - watch      - create      - update  # Needed for operator lock  - apiGroups:      - coordination.k8s.io    resources:      - leases    verbs:      - create      - get      - list      - update      - delete      - watch  - apiGroups:      - storage.k8s.io    resources:      - csidrivers    verbs:      - list      - watch      - update      - get      - create      - delete  # Add the appropriate pod security policy permissions  - apiGroups:      - policy    resources:      - podsecuritypolicies    resourceNames:      - tigera-operator    verbs:      - use  - apiGroups:      - policy    resources:      - podsecuritypolicies    verbs:      - get      - list      - watch      - create      - update      - delete# Add the permissions to monitor the status of certificatesigningrequests when certificate management is enabled.  - apiGroups:      - certificates.k8s.io    resources:      - certificatesigningrequests    verbs:      - list      - watch---# Source: tigera-operator/templates/tigera-operator/02-rolebinding-tigera-operator.yamlkind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:  name: tigera-operatorsubjects:- kind: ServiceAccount  name: tigera-operator  namespace: tigera-operatorroleRef:  kind: ClusterRole  name: tigera-operator  apiGroup: rbac.authorization.k8s.io---# Source: tigera-operator/templates/tigera-operator/02-tigera-operator.yamlapiVersion: apps/v1kind: Deploymentmetadata:  name: tigera-operator  namespace: tigera-operator  labels:    k8s-app: tigera-operatorspec:  replicas: 1  selector:    matchLabels:      name: tigera-operator  template:    metadata:      labels:        name: tigera-operator        k8s-app: tigera-operator    spec:      nodeSelector:        kubernetes.io/os: linux      tolerations:        - effect: NoExecute          operator: Exists        - effect: NoSchedule          operator: Exists      serviceAccountName: tigera-operator      hostNetwork: true      # This must be set when hostNetwork is true or else the cluster services won't resolve      dnsPolicy: ClusterFirstWithHostNet      containers:        - name: tigera-operator          image: quay.io/tigera/operator:v1.30.4          imagePullPolicy: IfNotPresent          command:            - operator          volumeMounts:            - name: var-lib-calico              readOnly: true              mountPath: /var/lib/calico          env:            - name: WATCH_NAMESPACE              value: ""            - name: POD_NAME              valueFrom:                fieldRef:                  fieldPath: metadata.name            - name: OPERATOR_NAME              value: "tigera-operator"            - name: TIGERA_OPERATOR_INIT_IMAGE_VERSION              value: v1.30.4          envFrom:            - configMapRef:                name: kubernetes-services-endpoint                optional: true      volumes:        - name: var-lib-calico          hostPath:            path: /var/lib/calico
 |