locostack.com_stacks.yaml 1.4 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925
  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. annotations:
  6. controller-gen.kubebuilder.io/version: v0.20.1
  7. name: stacks.locostack.com
  8. spec:
  9. group: locostack.com
  10. names:
  11. kind: Stack
  12. listKind: StackList
  13. plural: stacks
  14. shortNames:
  15. - stk
  16. singular: stack
  17. scope: Namespaced
  18. versions:
  19. - additionalPrinterColumns:
  20. - jsonPath: .status.componentStatus.gateway
  21. name: Gateway
  22. type: string
  23. - jsonPath: .status.componentStatus.vectorStore
  24. name: VectorStore
  25. type: string
  26. - jsonPath: .status.componentStatus.graphStore
  27. name: GraphStore
  28. type: string
  29. - jsonPath: .status.componentStatus.database
  30. name: Database
  31. type: string
  32. - jsonPath: .status.componentStatus.observability
  33. name: Observability
  34. type: string
  35. name: v1alpha1
  36. schema:
  37. openAPIV3Schema:
  38. description: Stack is the Schema for the stacks API
  39. properties:
  40. apiVersion:
  41. description: |-
  42. APIVersion defines the versioned schema of this representation of an object.
  43. Servers should convert recognized schemas to the latest internal value, and
  44. may reject unrecognized values.
  45. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  46. type: string
  47. kind:
  48. description: |-
  49. Kind is a string value representing the REST resource this object represents.
  50. Servers may infer this from the endpoint the client submits requests to.
  51. Cannot be updated.
  52. In CamelCase.
  53. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  54. type: string
  55. metadata:
  56. type: object
  57. spec:
  58. description: spec defines the desired state of Stack
  59. properties:
  60. database:
  61. description: database defines the configuration overrides for the
  62. stack's database component.
  63. properties:
  64. enabled:
  65. description: enabled indicates whether the component should be
  66. deployed for the stack.
  67. type: boolean
  68. template:
  69. description: template holds the configuration overrides for the
  70. component.
  71. properties:
  72. metadata:
  73. description: metadata is a standard object metadata.
  74. type: object
  75. name:
  76. description: name selects a built-in preset.
  77. type: string
  78. spec:
  79. description: spec holds the pod-level configuration for the
  80. workload.
  81. properties:
  82. affinity:
  83. description: affinity provides fine-grained node and pod
  84. (anti-)affinity rules.
  85. properties:
  86. nodeAffinity:
  87. description: Describes node affinity scheduling rules
  88. for the pod.
  89. properties:
  90. preferredDuringSchedulingIgnoredDuringExecution:
  91. description: |-
  92. The scheduler will prefer to schedule pods to nodes that satisfy
  93. the affinity expressions specified by this field, but it may choose
  94. a node that violates one or more of the expressions. The node that is
  95. most preferred is the one with the greatest sum of weights, i.e.
  96. for each node that meets all of the scheduling requirements (resource
  97. request, requiredDuringScheduling affinity expressions, etc.),
  98. compute a sum by iterating through the elements of this field and adding
  99. "weight" to the sum if the node matches the corresponding matchExpressions; the
  100. node(s) with the highest sum are the most preferred.
  101. items:
  102. description: |-
  103. An empty preferred scheduling term matches all objects with implicit weight 0
  104. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  105. properties:
  106. preference:
  107. description: A node selector term, associated
  108. with the corresponding weight.
  109. properties:
  110. matchExpressions:
  111. description: A list of node selector
  112. requirements by node's labels.
  113. items:
  114. description: |-
  115. A node selector requirement is a selector that contains values, a key, and an operator
  116. that relates the key and values.
  117. properties:
  118. key:
  119. description: The label key that
  120. the selector applies to.
  121. type: string
  122. operator:
  123. description: |-
  124. Represents a key's relationship to a set of values.
  125. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  126. type: string
  127. values:
  128. description: |-
  129. An array of string values. If the operator is In or NotIn,
  130. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  131. the values array must be empty. If the operator is Gt or Lt, the values
  132. array must have a single element, which will be interpreted as an integer.
  133. This array is replaced during a strategic merge patch.
  134. items:
  135. type: string
  136. type: array
  137. x-kubernetes-list-type: atomic
  138. required:
  139. - key
  140. - operator
  141. type: object
  142. type: array
  143. x-kubernetes-list-type: atomic
  144. matchFields:
  145. description: A list of node selector
  146. requirements by node's fields.
  147. items:
  148. description: |-
  149. A node selector requirement is a selector that contains values, a key, and an operator
  150. that relates the key and values.
  151. properties:
  152. key:
  153. description: The label key that
  154. the selector applies to.
  155. type: string
  156. operator:
  157. description: |-
  158. Represents a key's relationship to a set of values.
  159. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  160. type: string
  161. values:
  162. description: |-
  163. An array of string values. If the operator is In or NotIn,
  164. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  165. the values array must be empty. If the operator is Gt or Lt, the values
  166. array must have a single element, which will be interpreted as an integer.
  167. This array is replaced during a strategic merge patch.
  168. items:
  169. type: string
  170. type: array
  171. x-kubernetes-list-type: atomic
  172. required:
  173. - key
  174. - operator
  175. type: object
  176. type: array
  177. x-kubernetes-list-type: atomic
  178. type: object
  179. x-kubernetes-map-type: atomic
  180. weight:
  181. description: Weight associated with matching
  182. the corresponding nodeSelectorTerm, in
  183. the range 1-100.
  184. format: int32
  185. type: integer
  186. required:
  187. - preference
  188. - weight
  189. type: object
  190. type: array
  191. x-kubernetes-list-type: atomic
  192. requiredDuringSchedulingIgnoredDuringExecution:
  193. description: |-
  194. If the affinity requirements specified by this field are not met at
  195. scheduling time, the pod will not be scheduled onto the node.
  196. If the affinity requirements specified by this field cease to be met
  197. at some point during pod execution (e.g. due to an update), the system
  198. may or may not try to eventually evict the pod from its node.
  199. properties:
  200. nodeSelectorTerms:
  201. description: Required. A list of node selector
  202. terms. The terms are ORed.
  203. items:
  204. description: |-
  205. A null or empty node selector term matches no objects. The requirements of
  206. them are ANDed.
  207. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  208. properties:
  209. matchExpressions:
  210. description: A list of node selector
  211. requirements by node's labels.
  212. items:
  213. description: |-
  214. A node selector requirement is a selector that contains values, a key, and an operator
  215. that relates the key and values.
  216. properties:
  217. key:
  218. description: The label key that
  219. the selector applies to.
  220. type: string
  221. operator:
  222. description: |-
  223. Represents a key's relationship to a set of values.
  224. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  225. type: string
  226. values:
  227. description: |-
  228. An array of string values. If the operator is In or NotIn,
  229. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  230. the values array must be empty. If the operator is Gt or Lt, the values
  231. array must have a single element, which will be interpreted as an integer.
  232. This array is replaced during a strategic merge patch.
  233. items:
  234. type: string
  235. type: array
  236. x-kubernetes-list-type: atomic
  237. required:
  238. - key
  239. - operator
  240. type: object
  241. type: array
  242. x-kubernetes-list-type: atomic
  243. matchFields:
  244. description: A list of node selector
  245. requirements by node's fields.
  246. items:
  247. description: |-
  248. A node selector requirement is a selector that contains values, a key, and an operator
  249. that relates the key and values.
  250. properties:
  251. key:
  252. description: The label key that
  253. the selector applies to.
  254. type: string
  255. operator:
  256. description: |-
  257. Represents a key's relationship to a set of values.
  258. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  259. type: string
  260. values:
  261. description: |-
  262. An array of string values. If the operator is In or NotIn,
  263. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  264. the values array must be empty. If the operator is Gt or Lt, the values
  265. array must have a single element, which will be interpreted as an integer.
  266. This array is replaced during a strategic merge patch.
  267. items:
  268. type: string
  269. type: array
  270. x-kubernetes-list-type: atomic
  271. required:
  272. - key
  273. - operator
  274. type: object
  275. type: array
  276. x-kubernetes-list-type: atomic
  277. type: object
  278. x-kubernetes-map-type: atomic
  279. type: array
  280. x-kubernetes-list-type: atomic
  281. required:
  282. - nodeSelectorTerms
  283. type: object
  284. x-kubernetes-map-type: atomic
  285. type: object
  286. podAffinity:
  287. description: Describes pod affinity scheduling rules
  288. (e.g. co-locate this pod in the same node, zone,
  289. etc. as some other pod(s)).
  290. properties:
  291. preferredDuringSchedulingIgnoredDuringExecution:
  292. description: |-
  293. The scheduler will prefer to schedule pods to nodes that satisfy
  294. the affinity expressions specified by this field, but it may choose
  295. a node that violates one or more of the expressions. The node that is
  296. most preferred is the one with the greatest sum of weights, i.e.
  297. for each node that meets all of the scheduling requirements (resource
  298. request, requiredDuringScheduling affinity expressions, etc.),
  299. compute a sum by iterating through the elements of this field and adding
  300. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  301. node(s) with the highest sum are the most preferred.
  302. items:
  303. description: The weights of all of the matched
  304. WeightedPodAffinityTerm fields are added per-node
  305. to find the most preferred node(s)
  306. properties:
  307. podAffinityTerm:
  308. description: Required. A pod affinity term,
  309. associated with the corresponding weight.
  310. properties:
  311. labelSelector:
  312. description: |-
  313. A label query over a set of resources, in this case pods.
  314. If it's null, this PodAffinityTerm matches with no Pods.
  315. properties:
  316. matchExpressions:
  317. description: matchExpressions is
  318. a list of label selector requirements.
  319. The requirements are ANDed.
  320. items:
  321. description: |-
  322. A label selector requirement is a selector that contains values, a key, and an operator that
  323. relates the key and values.
  324. properties:
  325. key:
  326. description: key is the label
  327. key that the selector applies
  328. to.
  329. type: string
  330. operator:
  331. description: |-
  332. operator represents a key's relationship to a set of values.
  333. Valid operators are In, NotIn, Exists and DoesNotExist.
  334. type: string
  335. values:
  336. description: |-
  337. values is an array of string values. If the operator is In or NotIn,
  338. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  339. the values array must be empty. This array is replaced during a strategic
  340. merge patch.
  341. items:
  342. type: string
  343. type: array
  344. x-kubernetes-list-type: atomic
  345. required:
  346. - key
  347. - operator
  348. type: object
  349. type: array
  350. x-kubernetes-list-type: atomic
  351. matchLabels:
  352. additionalProperties:
  353. type: string
  354. description: |-
  355. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  356. map is equivalent to an element of matchExpressions, whose key field is "key", the
  357. operator is "In", and the values array contains only "value". The requirements are ANDed.
  358. type: object
  359. type: object
  360. x-kubernetes-map-type: atomic
  361. matchLabelKeys:
  362. description: |-
  363. MatchLabelKeys is a set of pod label keys to select which pods will
  364. be taken into consideration. The keys are used to lookup values from the
  365. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  366. to select the group of existing pods which pods will be taken into consideration
  367. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  368. pod labels will be ignored. The default value is empty.
  369. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  370. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  371. items:
  372. type: string
  373. type: array
  374. x-kubernetes-list-type: atomic
  375. mismatchLabelKeys:
  376. description: |-
  377. MismatchLabelKeys is a set of pod label keys to select which pods will
  378. be taken into consideration. The keys are used to lookup values from the
  379. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  380. to select the group of existing pods which pods will be taken into consideration
  381. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  382. pod labels will be ignored. The default value is empty.
  383. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  384. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  385. items:
  386. type: string
  387. type: array
  388. x-kubernetes-list-type: atomic
  389. namespaceSelector:
  390. description: |-
  391. A label query over the set of namespaces that the term applies to.
  392. The term is applied to the union of the namespaces selected by this field
  393. and the ones listed in the namespaces field.
  394. null selector and null or empty namespaces list means "this pod's namespace".
  395. An empty selector ({}) matches all namespaces.
  396. properties:
  397. matchExpressions:
  398. description: matchExpressions is
  399. a list of label selector requirements.
  400. The requirements are ANDed.
  401. items:
  402. description: |-
  403. A label selector requirement is a selector that contains values, a key, and an operator that
  404. relates the key and values.
  405. properties:
  406. key:
  407. description: key is the label
  408. key that the selector applies
  409. to.
  410. type: string
  411. operator:
  412. description: |-
  413. operator represents a key's relationship to a set of values.
  414. Valid operators are In, NotIn, Exists and DoesNotExist.
  415. type: string
  416. values:
  417. description: |-
  418. values is an array of string values. If the operator is In or NotIn,
  419. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  420. the values array must be empty. This array is replaced during a strategic
  421. merge patch.
  422. items:
  423. type: string
  424. type: array
  425. x-kubernetes-list-type: atomic
  426. required:
  427. - key
  428. - operator
  429. type: object
  430. type: array
  431. x-kubernetes-list-type: atomic
  432. matchLabels:
  433. additionalProperties:
  434. type: string
  435. description: |-
  436. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  437. map is equivalent to an element of matchExpressions, whose key field is "key", the
  438. operator is "In", and the values array contains only "value". The requirements are ANDed.
  439. type: object
  440. type: object
  441. x-kubernetes-map-type: atomic
  442. namespaces:
  443. description: |-
  444. namespaces specifies a static list of namespace names that the term applies to.
  445. The term is applied to the union of the namespaces listed in this field
  446. and the ones selected by namespaceSelector.
  447. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  448. items:
  449. type: string
  450. type: array
  451. x-kubernetes-list-type: atomic
  452. topologyKey:
  453. description: |-
  454. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  455. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  456. whose value of the label with key topologyKey matches that of any node on which any of the
  457. selected pods is running.
  458. Empty topologyKey is not allowed.
  459. type: string
  460. required:
  461. - topologyKey
  462. type: object
  463. weight:
  464. description: |-
  465. weight associated with matching the corresponding podAffinityTerm,
  466. in the range 1-100.
  467. format: int32
  468. type: integer
  469. required:
  470. - podAffinityTerm
  471. - weight
  472. type: object
  473. type: array
  474. x-kubernetes-list-type: atomic
  475. requiredDuringSchedulingIgnoredDuringExecution:
  476. description: |-
  477. If the affinity requirements specified by this field are not met at
  478. scheduling time, the pod will not be scheduled onto the node.
  479. If the affinity requirements specified by this field cease to be met
  480. at some point during pod execution (e.g. due to a pod label update), the
  481. system may or may not try to eventually evict the pod from its node.
  482. When there are multiple elements, the lists of nodes corresponding to each
  483. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  484. items:
  485. description: |-
  486. Defines a set of pods (namely those matching the labelSelector
  487. relative to the given namespace(s)) that this pod should be
  488. co-located (affinity) or not co-located (anti-affinity) with,
  489. where co-located is defined as running on a node whose value of
  490. the label with key <topologyKey> matches that of any node on which
  491. a pod of the set of pods is running
  492. properties:
  493. labelSelector:
  494. description: |-
  495. A label query over a set of resources, in this case pods.
  496. If it's null, this PodAffinityTerm matches with no Pods.
  497. properties:
  498. matchExpressions:
  499. description: matchExpressions is a list
  500. of label selector requirements. The
  501. requirements are ANDed.
  502. items:
  503. description: |-
  504. A label selector requirement is a selector that contains values, a key, and an operator that
  505. relates the key and values.
  506. properties:
  507. key:
  508. description: key is the label
  509. key that the selector applies
  510. to.
  511. type: string
  512. operator:
  513. description: |-
  514. operator represents a key's relationship to a set of values.
  515. Valid operators are In, NotIn, Exists and DoesNotExist.
  516. type: string
  517. values:
  518. description: |-
  519. values is an array of string values. If the operator is In or NotIn,
  520. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  521. the values array must be empty. This array is replaced during a strategic
  522. merge patch.
  523. items:
  524. type: string
  525. type: array
  526. x-kubernetes-list-type: atomic
  527. required:
  528. - key
  529. - operator
  530. type: object
  531. type: array
  532. x-kubernetes-list-type: atomic
  533. matchLabels:
  534. additionalProperties:
  535. type: string
  536. description: |-
  537. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  538. map is equivalent to an element of matchExpressions, whose key field is "key", the
  539. operator is "In", and the values array contains only "value". The requirements are ANDed.
  540. type: object
  541. type: object
  542. x-kubernetes-map-type: atomic
  543. matchLabelKeys:
  544. description: |-
  545. MatchLabelKeys is a set of pod label keys to select which pods will
  546. be taken into consideration. The keys are used to lookup values from the
  547. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  548. to select the group of existing pods which pods will be taken into consideration
  549. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  550. pod labels will be ignored. The default value is empty.
  551. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  552. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  553. items:
  554. type: string
  555. type: array
  556. x-kubernetes-list-type: atomic
  557. mismatchLabelKeys:
  558. description: |-
  559. MismatchLabelKeys is a set of pod label keys to select which pods will
  560. be taken into consideration. The keys are used to lookup values from the
  561. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  562. to select the group of existing pods which pods will be taken into consideration
  563. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  564. pod labels will be ignored. The default value is empty.
  565. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  566. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  567. items:
  568. type: string
  569. type: array
  570. x-kubernetes-list-type: atomic
  571. namespaceSelector:
  572. description: |-
  573. A label query over the set of namespaces that the term applies to.
  574. The term is applied to the union of the namespaces selected by this field
  575. and the ones listed in the namespaces field.
  576. null selector and null or empty namespaces list means "this pod's namespace".
  577. An empty selector ({}) matches all namespaces.
  578. properties:
  579. matchExpressions:
  580. description: matchExpressions is a list
  581. of label selector requirements. The
  582. requirements are ANDed.
  583. items:
  584. description: |-
  585. A label selector requirement is a selector that contains values, a key, and an operator that
  586. relates the key and values.
  587. properties:
  588. key:
  589. description: key is the label
  590. key that the selector applies
  591. to.
  592. type: string
  593. operator:
  594. description: |-
  595. operator represents a key's relationship to a set of values.
  596. Valid operators are In, NotIn, Exists and DoesNotExist.
  597. type: string
  598. values:
  599. description: |-
  600. values is an array of string values. If the operator is In or NotIn,
  601. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  602. the values array must be empty. This array is replaced during a strategic
  603. merge patch.
  604. items:
  605. type: string
  606. type: array
  607. x-kubernetes-list-type: atomic
  608. required:
  609. - key
  610. - operator
  611. type: object
  612. type: array
  613. x-kubernetes-list-type: atomic
  614. matchLabels:
  615. additionalProperties:
  616. type: string
  617. description: |-
  618. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  619. map is equivalent to an element of matchExpressions, whose key field is "key", the
  620. operator is "In", and the values array contains only "value". The requirements are ANDed.
  621. type: object
  622. type: object
  623. x-kubernetes-map-type: atomic
  624. namespaces:
  625. description: |-
  626. namespaces specifies a static list of namespace names that the term applies to.
  627. The term is applied to the union of the namespaces listed in this field
  628. and the ones selected by namespaceSelector.
  629. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  630. items:
  631. type: string
  632. type: array
  633. x-kubernetes-list-type: atomic
  634. topologyKey:
  635. description: |-
  636. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  637. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  638. whose value of the label with key topologyKey matches that of any node on which any of the
  639. selected pods is running.
  640. Empty topologyKey is not allowed.
  641. type: string
  642. required:
  643. - topologyKey
  644. type: object
  645. type: array
  646. x-kubernetes-list-type: atomic
  647. type: object
  648. podAntiAffinity:
  649. description: Describes pod anti-affinity scheduling
  650. rules (e.g. avoid putting this pod in the same node,
  651. zone, etc. as some other pod(s)).
  652. properties:
  653. preferredDuringSchedulingIgnoredDuringExecution:
  654. description: |-
  655. The scheduler will prefer to schedule pods to nodes that satisfy
  656. the anti-affinity expressions specified by this field, but it may choose
  657. a node that violates one or more of the expressions. The node that is
  658. most preferred is the one with the greatest sum of weights, i.e.
  659. for each node that meets all of the scheduling requirements (resource
  660. request, requiredDuringScheduling anti-affinity expressions, etc.),
  661. compute a sum by iterating through the elements of this field and subtracting
  662. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  663. node(s) with the highest sum are the most preferred.
  664. items:
  665. description: The weights of all of the matched
  666. WeightedPodAffinityTerm fields are added per-node
  667. to find the most preferred node(s)
  668. properties:
  669. podAffinityTerm:
  670. description: Required. A pod affinity term,
  671. associated with the corresponding weight.
  672. properties:
  673. labelSelector:
  674. description: |-
  675. A label query over a set of resources, in this case pods.
  676. If it's null, this PodAffinityTerm matches with no Pods.
  677. properties:
  678. matchExpressions:
  679. description: matchExpressions is
  680. a list of label selector requirements.
  681. The requirements are ANDed.
  682. items:
  683. description: |-
  684. A label selector requirement is a selector that contains values, a key, and an operator that
  685. relates the key and values.
  686. properties:
  687. key:
  688. description: key is the label
  689. key that the selector applies
  690. to.
  691. type: string
  692. operator:
  693. description: |-
  694. operator represents a key's relationship to a set of values.
  695. Valid operators are In, NotIn, Exists and DoesNotExist.
  696. type: string
  697. values:
  698. description: |-
  699. values is an array of string values. If the operator is In or NotIn,
  700. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  701. the values array must be empty. This array is replaced during a strategic
  702. merge patch.
  703. items:
  704. type: string
  705. type: array
  706. x-kubernetes-list-type: atomic
  707. required:
  708. - key
  709. - operator
  710. type: object
  711. type: array
  712. x-kubernetes-list-type: atomic
  713. matchLabels:
  714. additionalProperties:
  715. type: string
  716. description: |-
  717. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  718. map is equivalent to an element of matchExpressions, whose key field is "key", the
  719. operator is "In", and the values array contains only "value". The requirements are ANDed.
  720. type: object
  721. type: object
  722. x-kubernetes-map-type: atomic
  723. matchLabelKeys:
  724. description: |-
  725. MatchLabelKeys is a set of pod label keys to select which pods will
  726. be taken into consideration. The keys are used to lookup values from the
  727. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  728. to select the group of existing pods which pods will be taken into consideration
  729. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  730. pod labels will be ignored. The default value is empty.
  731. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  732. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  733. items:
  734. type: string
  735. type: array
  736. x-kubernetes-list-type: atomic
  737. mismatchLabelKeys:
  738. description: |-
  739. MismatchLabelKeys is a set of pod label keys to select which pods will
  740. be taken into consideration. The keys are used to lookup values from the
  741. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  742. to select the group of existing pods which pods will be taken into consideration
  743. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  744. pod labels will be ignored. The default value is empty.
  745. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  746. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  747. items:
  748. type: string
  749. type: array
  750. x-kubernetes-list-type: atomic
  751. namespaceSelector:
  752. description: |-
  753. A label query over the set of namespaces that the term applies to.
  754. The term is applied to the union of the namespaces selected by this field
  755. and the ones listed in the namespaces field.
  756. null selector and null or empty namespaces list means "this pod's namespace".
  757. An empty selector ({}) matches all namespaces.
  758. properties:
  759. matchExpressions:
  760. description: matchExpressions is
  761. a list of label selector requirements.
  762. The requirements are ANDed.
  763. items:
  764. description: |-
  765. A label selector requirement is a selector that contains values, a key, and an operator that
  766. relates the key and values.
  767. properties:
  768. key:
  769. description: key is the label
  770. key that the selector applies
  771. to.
  772. type: string
  773. operator:
  774. description: |-
  775. operator represents a key's relationship to a set of values.
  776. Valid operators are In, NotIn, Exists and DoesNotExist.
  777. type: string
  778. values:
  779. description: |-
  780. values is an array of string values. If the operator is In or NotIn,
  781. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  782. the values array must be empty. This array is replaced during a strategic
  783. merge patch.
  784. items:
  785. type: string
  786. type: array
  787. x-kubernetes-list-type: atomic
  788. required:
  789. - key
  790. - operator
  791. type: object
  792. type: array
  793. x-kubernetes-list-type: atomic
  794. matchLabels:
  795. additionalProperties:
  796. type: string
  797. description: |-
  798. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  799. map is equivalent to an element of matchExpressions, whose key field is "key", the
  800. operator is "In", and the values array contains only "value". The requirements are ANDed.
  801. type: object
  802. type: object
  803. x-kubernetes-map-type: atomic
  804. namespaces:
  805. description: |-
  806. namespaces specifies a static list of namespace names that the term applies to.
  807. The term is applied to the union of the namespaces listed in this field
  808. and the ones selected by namespaceSelector.
  809. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  810. items:
  811. type: string
  812. type: array
  813. x-kubernetes-list-type: atomic
  814. topologyKey:
  815. description: |-
  816. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  817. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  818. whose value of the label with key topologyKey matches that of any node on which any of the
  819. selected pods is running.
  820. Empty topologyKey is not allowed.
  821. type: string
  822. required:
  823. - topologyKey
  824. type: object
  825. weight:
  826. description: |-
  827. weight associated with matching the corresponding podAffinityTerm,
  828. in the range 1-100.
  829. format: int32
  830. type: integer
  831. required:
  832. - podAffinityTerm
  833. - weight
  834. type: object
  835. type: array
  836. x-kubernetes-list-type: atomic
  837. requiredDuringSchedulingIgnoredDuringExecution:
  838. description: |-
  839. If the anti-affinity requirements specified by this field are not met at
  840. scheduling time, the pod will not be scheduled onto the node.
  841. If the anti-affinity requirements specified by this field cease to be met
  842. at some point during pod execution (e.g. due to a pod label update), the
  843. system may or may not try to eventually evict the pod from its node.
  844. When there are multiple elements, the lists of nodes corresponding to each
  845. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  846. items:
  847. description: |-
  848. Defines a set of pods (namely those matching the labelSelector
  849. relative to the given namespace(s)) that this pod should be
  850. co-located (affinity) or not co-located (anti-affinity) with,
  851. where co-located is defined as running on a node whose value of
  852. the label with key <topologyKey> matches that of any node on which
  853. a pod of the set of pods is running
  854. properties:
  855. labelSelector:
  856. description: |-
  857. A label query over a set of resources, in this case pods.
  858. If it's null, this PodAffinityTerm matches with no Pods.
  859. properties:
  860. matchExpressions:
  861. description: matchExpressions is a list
  862. of label selector requirements. The
  863. requirements are ANDed.
  864. items:
  865. description: |-
  866. A label selector requirement is a selector that contains values, a key, and an operator that
  867. relates the key and values.
  868. properties:
  869. key:
  870. description: key is the label
  871. key that the selector applies
  872. to.
  873. type: string
  874. operator:
  875. description: |-
  876. operator represents a key's relationship to a set of values.
  877. Valid operators are In, NotIn, Exists and DoesNotExist.
  878. type: string
  879. values:
  880. description: |-
  881. values is an array of string values. If the operator is In or NotIn,
  882. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  883. the values array must be empty. This array is replaced during a strategic
  884. merge patch.
  885. items:
  886. type: string
  887. type: array
  888. x-kubernetes-list-type: atomic
  889. required:
  890. - key
  891. - operator
  892. type: object
  893. type: array
  894. x-kubernetes-list-type: atomic
  895. matchLabels:
  896. additionalProperties:
  897. type: string
  898. description: |-
  899. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  900. map is equivalent to an element of matchExpressions, whose key field is "key", the
  901. operator is "In", and the values array contains only "value". The requirements are ANDed.
  902. type: object
  903. type: object
  904. x-kubernetes-map-type: atomic
  905. matchLabelKeys:
  906. description: |-
  907. MatchLabelKeys is a set of pod label keys to select which pods will
  908. be taken into consideration. The keys are used to lookup values from the
  909. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  910. to select the group of existing pods which pods will be taken into consideration
  911. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  912. pod labels will be ignored. The default value is empty.
  913. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  914. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  915. items:
  916. type: string
  917. type: array
  918. x-kubernetes-list-type: atomic
  919. mismatchLabelKeys:
  920. description: |-
  921. MismatchLabelKeys is a set of pod label keys to select which pods will
  922. be taken into consideration. The keys are used to lookup values from the
  923. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  924. to select the group of existing pods which pods will be taken into consideration
  925. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  926. pod labels will be ignored. The default value is empty.
  927. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  928. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  929. items:
  930. type: string
  931. type: array
  932. x-kubernetes-list-type: atomic
  933. namespaceSelector:
  934. description: |-
  935. A label query over the set of namespaces that the term applies to.
  936. The term is applied to the union of the namespaces selected by this field
  937. and the ones listed in the namespaces field.
  938. null selector and null or empty namespaces list means "this pod's namespace".
  939. An empty selector ({}) matches all namespaces.
  940. properties:
  941. matchExpressions:
  942. description: matchExpressions is a list
  943. of label selector requirements. The
  944. requirements are ANDed.
  945. items:
  946. description: |-
  947. A label selector requirement is a selector that contains values, a key, and an operator that
  948. relates the key and values.
  949. properties:
  950. key:
  951. description: key is the label
  952. key that the selector applies
  953. to.
  954. type: string
  955. operator:
  956. description: |-
  957. operator represents a key's relationship to a set of values.
  958. Valid operators are In, NotIn, Exists and DoesNotExist.
  959. type: string
  960. values:
  961. description: |-
  962. values is an array of string values. If the operator is In or NotIn,
  963. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  964. the values array must be empty. This array is replaced during a strategic
  965. merge patch.
  966. items:
  967. type: string
  968. type: array
  969. x-kubernetes-list-type: atomic
  970. required:
  971. - key
  972. - operator
  973. type: object
  974. type: array
  975. x-kubernetes-list-type: atomic
  976. matchLabels:
  977. additionalProperties:
  978. type: string
  979. description: |-
  980. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  981. map is equivalent to an element of matchExpressions, whose key field is "key", the
  982. operator is "In", and the values array contains only "value". The requirements are ANDed.
  983. type: object
  984. type: object
  985. x-kubernetes-map-type: atomic
  986. namespaces:
  987. description: |-
  988. namespaces specifies a static list of namespace names that the term applies to.
  989. The term is applied to the union of the namespaces listed in this field
  990. and the ones selected by namespaceSelector.
  991. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  992. items:
  993. type: string
  994. type: array
  995. x-kubernetes-list-type: atomic
  996. topologyKey:
  997. description: |-
  998. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  999. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  1000. whose value of the label with key topologyKey matches that of any node on which any of the
  1001. selected pods is running.
  1002. Empty topologyKey is not allowed.
  1003. type: string
  1004. required:
  1005. - topologyKey
  1006. type: object
  1007. type: array
  1008. x-kubernetes-list-type: atomic
  1009. type: object
  1010. type: object
  1011. nodeSelector:
  1012. additionalProperties:
  1013. type: string
  1014. description: nodeSelector pins pods to nodes that match
  1015. all the specified labels.
  1016. type: object
  1017. resources:
  1018. description: resources sets per-container resource requests
  1019. and limits.
  1020. properties:
  1021. claims:
  1022. description: |-
  1023. Claims lists the names of resources, defined in spec.resourceClaims,
  1024. that are used by this container.
  1025. This field depends on the
  1026. DynamicResourceAllocation feature gate.
  1027. This field is immutable. It can only be set for containers.
  1028. items:
  1029. description: ResourceClaim references one entry
  1030. in PodSpec.ResourceClaims.
  1031. properties:
  1032. name:
  1033. description: |-
  1034. Name must match the name of one entry in pod.spec.resourceClaims of
  1035. the Pod where this field is used. It makes that resource available
  1036. inside a container.
  1037. type: string
  1038. request:
  1039. description: |-
  1040. Request is the name chosen for a request in the referenced claim.
  1041. If empty, everything from the claim is made available, otherwise
  1042. only the result of this request.
  1043. type: string
  1044. required:
  1045. - name
  1046. type: object
  1047. type: array
  1048. x-kubernetes-list-map-keys:
  1049. - name
  1050. x-kubernetes-list-type: map
  1051. limits:
  1052. additionalProperties:
  1053. anyOf:
  1054. - type: integer
  1055. - type: string
  1056. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1057. x-kubernetes-int-or-string: true
  1058. description: |-
  1059. Limits describes the maximum amount of compute resources allowed.
  1060. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  1061. type: object
  1062. requests:
  1063. additionalProperties:
  1064. anyOf:
  1065. - type: integer
  1066. - type: string
  1067. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1068. x-kubernetes-int-or-string: true
  1069. description: |-
  1070. Requests describes the minimum amount of compute resources required.
  1071. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  1072. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  1073. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  1074. type: object
  1075. type: object
  1076. runtime:
  1077. description: runtime describes the container runtime to
  1078. use for the workload.
  1079. properties:
  1080. args:
  1081. description: args specifies or overrides the preset's
  1082. container command.
  1083. items:
  1084. type: string
  1085. type: array
  1086. command:
  1087. description: command specifies or overrides the preset's
  1088. container entrypoint.
  1089. items:
  1090. type: string
  1091. type: array
  1092. conditionalArgs:
  1093. description: conditionalArgs are appended to the preset
  1094. command conditionally.
  1095. items:
  1096. properties:
  1097. args:
  1098. description: args are appended to the preset
  1099. args.
  1100. items:
  1101. type: string
  1102. type: array
  1103. when:
  1104. description: when the value is not empty after
  1105. variable substitution, the args are appended
  1106. to the preset args.
  1107. type: string
  1108. required:
  1109. - args
  1110. - when
  1111. type: object
  1112. type: array
  1113. env:
  1114. description: env holds environment variables injected
  1115. into the container.
  1116. items:
  1117. description: EnvVar represents an environment variable
  1118. present in a Container.
  1119. properties:
  1120. name:
  1121. description: |-
  1122. Name of the environment variable.
  1123. May consist of any printable ASCII characters except '='.
  1124. type: string
  1125. value:
  1126. description: |-
  1127. Variable references $(VAR_NAME) are expanded
  1128. using the previously defined environment variables in the container and
  1129. any service environment variables. If a variable cannot be resolved,
  1130. the reference in the input string will be unchanged. Double $$ are reduced
  1131. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  1132. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  1133. Escaped references will never be expanded, regardless of whether the variable
  1134. exists or not.
  1135. Defaults to "".
  1136. type: string
  1137. valueFrom:
  1138. description: Source for the environment variable's
  1139. value. Cannot be used if value is not empty.
  1140. properties:
  1141. configMapKeyRef:
  1142. description: Selects a key of a ConfigMap.
  1143. properties:
  1144. key:
  1145. description: The key to select.
  1146. type: string
  1147. name:
  1148. default: ""
  1149. description: |-
  1150. Name of the referent.
  1151. This field is effectively required, but due to backwards compatibility is
  1152. allowed to be empty. Instances of this type with an empty value here are
  1153. almost certainly wrong.
  1154. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1155. type: string
  1156. optional:
  1157. description: Specify whether the ConfigMap
  1158. or its key must be defined
  1159. type: boolean
  1160. required:
  1161. - key
  1162. type: object
  1163. x-kubernetes-map-type: atomic
  1164. fieldRef:
  1165. description: |-
  1166. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  1167. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  1168. properties:
  1169. apiVersion:
  1170. description: Version of the schema the
  1171. FieldPath is written in terms of,
  1172. defaults to "v1".
  1173. type: string
  1174. fieldPath:
  1175. description: Path of the field to select
  1176. in the specified API version.
  1177. type: string
  1178. required:
  1179. - fieldPath
  1180. type: object
  1181. x-kubernetes-map-type: atomic
  1182. fileKeyRef:
  1183. description: |-
  1184. FileKeyRef selects a key of the env file.
  1185. Requires the EnvFiles feature gate to be enabled.
  1186. properties:
  1187. key:
  1188. description: |-
  1189. The key within the env file. An invalid key will prevent the pod from starting.
  1190. The keys defined within a source may consist of any printable ASCII characters except '='.
  1191. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  1192. type: string
  1193. optional:
  1194. default: false
  1195. description: |-
  1196. Specify whether the file or its key must be defined. If the file or key
  1197. does not exist, then the env var is not published.
  1198. If optional is set to true and the specified key does not exist,
  1199. the environment variable will not be set in the Pod's containers.
  1200. If optional is set to false and the specified key does not exist,
  1201. an error will be returned during Pod creation.
  1202. type: boolean
  1203. path:
  1204. description: |-
  1205. The path within the volume from which to select the file.
  1206. Must be relative and may not contain the '..' path or start with '..'.
  1207. type: string
  1208. volumeName:
  1209. description: The name of the volume
  1210. mount containing the env file.
  1211. type: string
  1212. required:
  1213. - key
  1214. - path
  1215. - volumeName
  1216. type: object
  1217. x-kubernetes-map-type: atomic
  1218. resourceFieldRef:
  1219. description: |-
  1220. Selects a resource of the container: only resources limits and requests
  1221. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  1222. properties:
  1223. containerName:
  1224. description: 'Container name: required
  1225. for volumes, optional for env vars'
  1226. type: string
  1227. divisor:
  1228. anyOf:
  1229. - type: integer
  1230. - type: string
  1231. description: Specifies the output format
  1232. of the exposed resources, defaults
  1233. to "1"
  1234. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1235. x-kubernetes-int-or-string: true
  1236. resource:
  1237. description: 'Required: resource to
  1238. select'
  1239. type: string
  1240. required:
  1241. - resource
  1242. type: object
  1243. x-kubernetes-map-type: atomic
  1244. secretKeyRef:
  1245. description: Selects a key of a secret in
  1246. the pod's namespace
  1247. properties:
  1248. key:
  1249. description: The key of the secret to
  1250. select from. Must be a valid secret
  1251. key.
  1252. type: string
  1253. name:
  1254. default: ""
  1255. description: |-
  1256. Name of the referent.
  1257. This field is effectively required, but due to backwards compatibility is
  1258. allowed to be empty. Instances of this type with an empty value here are
  1259. almost certainly wrong.
  1260. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1261. type: string
  1262. optional:
  1263. description: Specify whether the Secret
  1264. or its key must be defined
  1265. type: boolean
  1266. required:
  1267. - key
  1268. type: object
  1269. x-kubernetes-map-type: atomic
  1270. type: object
  1271. required:
  1272. - name
  1273. type: object
  1274. type: array
  1275. envFrom:
  1276. description: envFrom references ConfigMaps or Secrets
  1277. whose key-value pairs are injected as environment
  1278. variables.
  1279. items:
  1280. description: EnvFromSource represents the source
  1281. of a set of ConfigMaps or Secrets
  1282. properties:
  1283. configMapRef:
  1284. description: The ConfigMap to select from
  1285. properties:
  1286. name:
  1287. default: ""
  1288. description: |-
  1289. Name of the referent.
  1290. This field is effectively required, but due to backwards compatibility is
  1291. allowed to be empty. Instances of this type with an empty value here are
  1292. almost certainly wrong.
  1293. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1294. type: string
  1295. optional:
  1296. description: Specify whether the ConfigMap
  1297. must be defined
  1298. type: boolean
  1299. type: object
  1300. x-kubernetes-map-type: atomic
  1301. prefix:
  1302. description: |-
  1303. Optional text to prepend to the name of each environment variable.
  1304. May consist of any printable ASCII characters except '='.
  1305. type: string
  1306. secretRef:
  1307. description: The Secret to select from
  1308. properties:
  1309. name:
  1310. default: ""
  1311. description: |-
  1312. Name of the referent.
  1313. This field is effectively required, but due to backwards compatibility is
  1314. allowed to be empty. Instances of this type with an empty value here are
  1315. almost certainly wrong.
  1316. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1317. type: string
  1318. optional:
  1319. description: Specify whether the Secret
  1320. must be defined
  1321. type: boolean
  1322. type: object
  1323. x-kubernetes-map-type: atomic
  1324. type: object
  1325. type: array
  1326. extraArgs:
  1327. description: extraArgs are appended to the preset
  1328. command.
  1329. items:
  1330. type: string
  1331. type: array
  1332. image:
  1333. description: |-
  1334. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  1335. or pull from a private registry mirror.
  1336. type: string
  1337. name:
  1338. description: name selects a built-in runtime preset.
  1339. type: string
  1340. port:
  1341. description: port specifies or overrides the container
  1342. port the runtime listens on.
  1343. format: int32
  1344. type: integer
  1345. volumeMounts:
  1346. description: volumeMounts defines where pod volumes
  1347. are mounted inside the container.
  1348. items:
  1349. description: VolumeMount describes a mounting of
  1350. a Volume within a container.
  1351. properties:
  1352. mountPath:
  1353. description: |-
  1354. Path within the container at which the volume should be mounted. Must
  1355. not contain ':'.
  1356. type: string
  1357. mountPropagation:
  1358. description: |-
  1359. mountPropagation determines how mounts are propagated from the host
  1360. to container and the other way around.
  1361. When not set, MountPropagationNone is used.
  1362. This field is beta in 1.10.
  1363. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  1364. (which defaults to None).
  1365. type: string
  1366. name:
  1367. description: This must match the Name of a Volume.
  1368. type: string
  1369. readOnly:
  1370. description: |-
  1371. Mounted read-only if true, read-write otherwise (false or unspecified).
  1372. Defaults to false.
  1373. type: boolean
  1374. recursiveReadOnly:
  1375. description: |-
  1376. RecursiveReadOnly specifies whether read-only mounts should be handled
  1377. recursively.
  1378. If ReadOnly is false, this field has no meaning and must be unspecified.
  1379. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  1380. recursively read-only. If this field is set to IfPossible, the mount is made
  1381. recursively read-only, if it is supported by the container runtime. If this
  1382. field is set to Enabled, the mount is made recursively read-only if it is
  1383. supported by the container runtime, otherwise the pod will not be started and
  1384. an error will be generated to indicate the reason.
  1385. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  1386. None (or be unspecified, which defaults to None).
  1387. If this field is not specified, it is treated as an equivalent of Disabled.
  1388. type: string
  1389. subPath:
  1390. description: |-
  1391. Path within the volume from which the container's volume should be mounted.
  1392. Defaults to "" (volume's root).
  1393. type: string
  1394. subPathExpr:
  1395. description: |-
  1396. Expanded path within the volume from which the container's volume should be mounted.
  1397. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  1398. Defaults to "" (volume's root).
  1399. SubPathExpr and SubPath are mutually exclusive.
  1400. type: string
  1401. required:
  1402. - mountPath
  1403. - name
  1404. type: object
  1405. type: array
  1406. type: object
  1407. securityContext:
  1408. description: |-
  1409. securityContext sets pod-level security attributes such as runAsUser,
  1410. runAsGroup, fsGroup, and sysctls.
  1411. properties:
  1412. appArmorProfile:
  1413. description: |-
  1414. appArmorProfile is the AppArmor options to use by the containers in this pod.
  1415. Note that this field cannot be set when spec.os.name is windows.
  1416. properties:
  1417. localhostProfile:
  1418. description: |-
  1419. localhostProfile indicates a profile loaded on the node that should be used.
  1420. The profile must be preconfigured on the node to work.
  1421. Must match the loaded name of the profile.
  1422. Must be set if and only if type is "Localhost".
  1423. type: string
  1424. type:
  1425. description: |-
  1426. type indicates which kind of AppArmor profile will be applied.
  1427. Valid options are:
  1428. Localhost - a profile pre-loaded on the node.
  1429. RuntimeDefault - the container runtime's default profile.
  1430. Unconfined - no AppArmor enforcement.
  1431. type: string
  1432. required:
  1433. - type
  1434. type: object
  1435. fsGroup:
  1436. description: |-
  1437. A special supplemental group that applies to all containers in a pod.
  1438. Some volume types allow the Kubelet to change the ownership of that volume
  1439. to be owned by the pod:
  1440. 1. The owning GID will be the FSGroup
  1441. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  1442. 3. The permission bits are OR'd with rw-rw----
  1443. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  1444. Note that this field cannot be set when spec.os.name is windows.
  1445. format: int64
  1446. type: integer
  1447. fsGroupChangePolicy:
  1448. description: |-
  1449. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  1450. before being exposed inside Pod. This field will only apply to
  1451. volume types which support fsGroup based ownership(and permissions).
  1452. It will have no effect on ephemeral volume types such as: secret, configmaps
  1453. and emptydir.
  1454. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  1455. Note that this field cannot be set when spec.os.name is windows.
  1456. type: string
  1457. runAsGroup:
  1458. description: |-
  1459. The GID to run the entrypoint of the container process.
  1460. Uses runtime default if unset.
  1461. May also be set in SecurityContext. If set in both SecurityContext and
  1462. PodSecurityContext, the value specified in SecurityContext takes precedence
  1463. for that container.
  1464. Note that this field cannot be set when spec.os.name is windows.
  1465. format: int64
  1466. type: integer
  1467. runAsNonRoot:
  1468. description: |-
  1469. Indicates that the container must run as a non-root user.
  1470. If true, the Kubelet will validate the image at runtime to ensure that it
  1471. does not run as UID 0 (root) and fail to start the container if it does.
  1472. If unset or false, no such validation will be performed.
  1473. May also be set in SecurityContext. If set in both SecurityContext and
  1474. PodSecurityContext, the value specified in SecurityContext takes precedence.
  1475. type: boolean
  1476. runAsUser:
  1477. description: |-
  1478. The UID to run the entrypoint of the container process.
  1479. Defaults to user specified in image metadata if unspecified.
  1480. May also be set in SecurityContext. If set in both SecurityContext and
  1481. PodSecurityContext, the value specified in SecurityContext takes precedence
  1482. for that container.
  1483. Note that this field cannot be set when spec.os.name is windows.
  1484. format: int64
  1485. type: integer
  1486. seLinuxChangePolicy:
  1487. description: |-
  1488. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  1489. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  1490. Valid values are "MountOption" and "Recursive".
  1491. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  1492. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  1493. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  1494. This requires all Pods that share the same volume to use the same SELinux label.
  1495. It is not possible to share the same volume among privileged and unprivileged Pods.
  1496. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  1497. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  1498. CSIDriver instance. Other volumes are always re-labelled recursively.
  1499. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  1500. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  1501. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  1502. and "Recursive" for all other volumes.
  1503. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  1504. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  1505. Note that this field cannot be set when spec.os.name is windows.
  1506. type: string
  1507. seLinuxOptions:
  1508. description: |-
  1509. The SELinux context to be applied to all containers.
  1510. If unspecified, the container runtime will allocate a random SELinux context for each
  1511. container. May also be set in SecurityContext. If set in
  1512. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  1513. takes precedence for that container.
  1514. Note that this field cannot be set when spec.os.name is windows.
  1515. properties:
  1516. level:
  1517. description: Level is SELinux level label that
  1518. applies to the container.
  1519. type: string
  1520. role:
  1521. description: Role is a SELinux role label that
  1522. applies to the container.
  1523. type: string
  1524. type:
  1525. description: Type is a SELinux type label that
  1526. applies to the container.
  1527. type: string
  1528. user:
  1529. description: User is a SELinux user label that
  1530. applies to the container.
  1531. type: string
  1532. type: object
  1533. seccompProfile:
  1534. description: |-
  1535. The seccomp options to use by the containers in this pod.
  1536. Note that this field cannot be set when spec.os.name is windows.
  1537. properties:
  1538. localhostProfile:
  1539. description: |-
  1540. localhostProfile indicates a profile defined in a file on the node should be used.
  1541. The profile must be preconfigured on the node to work.
  1542. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  1543. Must be set if type is "Localhost". Must NOT be set for any other type.
  1544. type: string
  1545. type:
  1546. description: |-
  1547. type indicates which kind of seccomp profile will be applied.
  1548. Valid options are:
  1549. Localhost - a profile defined in a file on the node should be used.
  1550. RuntimeDefault - the container runtime default profile should be used.
  1551. Unconfined - no profile should be applied.
  1552. type: string
  1553. required:
  1554. - type
  1555. type: object
  1556. supplementalGroups:
  1557. description: |-
  1558. A list of groups applied to the first process run in each container, in
  1559. addition to the container's primary GID and fsGroup (if specified). If
  1560. the SupplementalGroupsPolicy feature is enabled, the
  1561. supplementalGroupsPolicy field determines whether these are in addition
  1562. to or instead of any group memberships defined in the container image.
  1563. If unspecified, no additional groups are added, though group memberships
  1564. defined in the container image may still be used, depending on the
  1565. supplementalGroupsPolicy field.
  1566. Note that this field cannot be set when spec.os.name is windows.
  1567. items:
  1568. format: int64
  1569. type: integer
  1570. type: array
  1571. x-kubernetes-list-type: atomic
  1572. supplementalGroupsPolicy:
  1573. description: |-
  1574. Defines how supplemental groups of the first container processes are calculated.
  1575. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  1576. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  1577. and the container runtime must implement support for this feature.
  1578. Note that this field cannot be set when spec.os.name is windows.
  1579. type: string
  1580. sysctls:
  1581. description: |-
  1582. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  1583. sysctls (by the container runtime) might fail to launch.
  1584. Note that this field cannot be set when spec.os.name is windows.
  1585. items:
  1586. description: Sysctl defines a kernel parameter to
  1587. be set
  1588. properties:
  1589. name:
  1590. description: Name of a property to set
  1591. type: string
  1592. value:
  1593. description: Value of a property to set
  1594. type: string
  1595. required:
  1596. - name
  1597. - value
  1598. type: object
  1599. type: array
  1600. x-kubernetes-list-type: atomic
  1601. windowsOptions:
  1602. description: |-
  1603. The Windows specific settings applied to all containers.
  1604. If unspecified, the options within a container's SecurityContext will be used.
  1605. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  1606. Note that this field cannot be set when spec.os.name is linux.
  1607. properties:
  1608. gmsaCredentialSpec:
  1609. description: |-
  1610. GMSACredentialSpec is where the GMSA admission webhook
  1611. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  1612. GMSA credential spec named by the GMSACredentialSpecName field.
  1613. type: string
  1614. gmsaCredentialSpecName:
  1615. description: GMSACredentialSpecName is the name
  1616. of the GMSA credential spec to use.
  1617. type: string
  1618. hostProcess:
  1619. description: |-
  1620. HostProcess determines if a container should be run as a 'Host Process' container.
  1621. All of a Pod's containers must have the same effective HostProcess value
  1622. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  1623. In addition, if HostProcess is true then HostNetwork must also be set to true.
  1624. type: boolean
  1625. runAsUserName:
  1626. description: |-
  1627. The UserName in Windows to run the entrypoint of the container process.
  1628. Defaults to the user specified in image metadata if unspecified.
  1629. May also be set in PodSecurityContext. If set in both SecurityContext and
  1630. PodSecurityContext, the value specified in SecurityContext takes precedence.
  1631. type: string
  1632. type: object
  1633. type: object
  1634. tolerations:
  1635. description: tolerations allow pods to be scheduled onto
  1636. nodes with matching taints.
  1637. items:
  1638. description: |-
  1639. The pod this Toleration is attached to tolerates any taint that matches
  1640. the triple <key,value,effect> using the matching operator <operator>.
  1641. properties:
  1642. effect:
  1643. description: |-
  1644. Effect indicates the taint effect to match. Empty means match all taint effects.
  1645. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  1646. type: string
  1647. key:
  1648. description: |-
  1649. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  1650. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  1651. type: string
  1652. operator:
  1653. description: |-
  1654. Operator represents a key's relationship to the value.
  1655. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
  1656. Exists is equivalent to wildcard for value, so that a pod can
  1657. tolerate all taints of a particular category.
  1658. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
  1659. type: string
  1660. tolerationSeconds:
  1661. description: |-
  1662. TolerationSeconds represents the period of time the toleration (which must be
  1663. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  1664. it is not set, which means tolerate the taint forever (do not evict). Zero and
  1665. negative values will be treated as 0 (evict immediately) by the system.
  1666. format: int64
  1667. type: integer
  1668. value:
  1669. description: |-
  1670. Value is the taint value the toleration matches to.
  1671. If the operator is Exists, the value should be empty, otherwise just a regular string.
  1672. type: string
  1673. type: object
  1674. type: array
  1675. topologySpreadConstraints:
  1676. description: |-
  1677. topologySpreadConstraints controls how pods are spread across failure
  1678. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  1679. items:
  1680. description: TopologySpreadConstraint specifies how
  1681. to spread matching pods among the given topology.
  1682. properties:
  1683. labelSelector:
  1684. description: |-
  1685. LabelSelector is used to find matching pods.
  1686. Pods that match this label selector are counted to determine the number of pods
  1687. in their corresponding topology domain.
  1688. properties:
  1689. matchExpressions:
  1690. description: matchExpressions is a list of label
  1691. selector requirements. The requirements are
  1692. ANDed.
  1693. items:
  1694. description: |-
  1695. A label selector requirement is a selector that contains values, a key, and an operator that
  1696. relates the key and values.
  1697. properties:
  1698. key:
  1699. description: key is the label key that
  1700. the selector applies to.
  1701. type: string
  1702. operator:
  1703. description: |-
  1704. operator represents a key's relationship to a set of values.
  1705. Valid operators are In, NotIn, Exists and DoesNotExist.
  1706. type: string
  1707. values:
  1708. description: |-
  1709. values is an array of string values. If the operator is In or NotIn,
  1710. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1711. the values array must be empty. This array is replaced during a strategic
  1712. merge patch.
  1713. items:
  1714. type: string
  1715. type: array
  1716. x-kubernetes-list-type: atomic
  1717. required:
  1718. - key
  1719. - operator
  1720. type: object
  1721. type: array
  1722. x-kubernetes-list-type: atomic
  1723. matchLabels:
  1724. additionalProperties:
  1725. type: string
  1726. description: |-
  1727. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1728. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1729. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1730. type: object
  1731. type: object
  1732. x-kubernetes-map-type: atomic
  1733. matchLabelKeys:
  1734. description: |-
  1735. MatchLabelKeys is a set of pod label keys to select the pods over which
  1736. spreading will be calculated. The keys are used to lookup values from the
  1737. incoming pod labels, those key-value labels are ANDed with labelSelector
  1738. to select the group of existing pods over which spreading will be calculated
  1739. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  1740. MatchLabelKeys cannot be set when LabelSelector isn't set.
  1741. Keys that don't exist in the incoming pod labels will
  1742. be ignored. A null or empty list means only match against labelSelector.
  1743. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  1744. items:
  1745. type: string
  1746. type: array
  1747. x-kubernetes-list-type: atomic
  1748. maxSkew:
  1749. description: |-
  1750. MaxSkew describes the degree to which pods may be unevenly distributed.
  1751. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  1752. between the number of matching pods in the target topology and the global minimum.
  1753. The global minimum is the minimum number of matching pods in an eligible domain
  1754. or zero if the number of eligible domains is less than MinDomains.
  1755. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  1756. labelSelector spread as 2/2/1:
  1757. In this case, the global minimum is 1.
  1758. | zone1 | zone2 | zone3 |
  1759. | P P | P P | P |
  1760. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  1761. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  1762. violate MaxSkew(1).
  1763. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  1764. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  1765. to topologies that satisfy it.
  1766. It's a required field. Default value is 1 and 0 is not allowed.
  1767. format: int32
  1768. type: integer
  1769. minDomains:
  1770. description: |-
  1771. MinDomains indicates a minimum number of eligible domains.
  1772. When the number of eligible domains with matching topology keys is less than minDomains,
  1773. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  1774. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  1775. this value has no effect on scheduling.
  1776. As a result, when the number of eligible domains is less than minDomains,
  1777. scheduler won't schedule more than maxSkew Pods to those domains.
  1778. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  1779. Valid values are integers greater than 0.
  1780. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  1781. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  1782. labelSelector spread as 2/2/2:
  1783. | zone1 | zone2 | zone3 |
  1784. | P P | P P | P P |
  1785. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  1786. In this situation, new pod with the same labelSelector cannot be scheduled,
  1787. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  1788. it will violate MaxSkew.
  1789. format: int32
  1790. type: integer
  1791. nodeAffinityPolicy:
  1792. description: |-
  1793. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  1794. when calculating pod topology spread skew. Options are:
  1795. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  1796. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  1797. If this value is nil, the behavior is equivalent to the Honor policy.
  1798. type: string
  1799. nodeTaintsPolicy:
  1800. description: |-
  1801. NodeTaintsPolicy indicates how we will treat node taints when calculating
  1802. pod topology spread skew. Options are:
  1803. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  1804. has a toleration, are included.
  1805. - Ignore: node taints are ignored. All nodes are included.
  1806. If this value is nil, the behavior is equivalent to the Ignore policy.
  1807. type: string
  1808. topologyKey:
  1809. description: |-
  1810. TopologyKey is the key of node labels. Nodes that have a label with this key
  1811. and identical values are considered to be in the same topology.
  1812. We consider each <key, value> as a "bucket", and try to put balanced number
  1813. of pods into each bucket.
  1814. We define a domain as a particular instance of a topology.
  1815. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  1816. nodeAffinityPolicy and nodeTaintsPolicy.
  1817. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  1818. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  1819. It's a required field.
  1820. type: string
  1821. whenUnsatisfiable:
  1822. description: |-
  1823. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  1824. the spread constraint.
  1825. - DoNotSchedule (default) tells the scheduler not to schedule it.
  1826. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  1827. but giving higher precedence to topologies that would help reduce the
  1828. skew.
  1829. A constraint is considered "Unsatisfiable" for an incoming pod
  1830. if and only if every possible node assignment for that pod would violate
  1831. "MaxSkew" on some topology.
  1832. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  1833. labelSelector spread as 3/1/1:
  1834. | zone1 | zone2 | zone3 |
  1835. | P P P | P | P |
  1836. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  1837. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  1838. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  1839. won't make it *more* imbalanced.
  1840. It's a required field.
  1841. type: string
  1842. required:
  1843. - maxSkew
  1844. - topologyKey
  1845. - whenUnsatisfiable
  1846. type: object
  1847. type: array
  1848. volumes:
  1849. description: volumes defines additional pod volumes available
  1850. to the runtime container.
  1851. items:
  1852. description: Volume represents a named volume in a pod
  1853. that may be accessed by any container in the pod.
  1854. properties:
  1855. awsElasticBlockStore:
  1856. description: |-
  1857. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  1858. kubelet's host machine and then exposed to the pod.
  1859. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  1860. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  1861. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1862. properties:
  1863. fsType:
  1864. description: |-
  1865. fsType is the filesystem type of the volume that you want to mount.
  1866. Tip: Ensure that the filesystem type is supported by the host operating system.
  1867. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  1868. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1869. type: string
  1870. partition:
  1871. description: |-
  1872. partition is the partition in the volume that you want to mount.
  1873. If omitted, the default is to mount by volume name.
  1874. Examples: For volume /dev/sda1, you specify the partition as "1".
  1875. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  1876. format: int32
  1877. type: integer
  1878. readOnly:
  1879. description: |-
  1880. readOnly value true will force the readOnly setting in VolumeMounts.
  1881. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1882. type: boolean
  1883. volumeID:
  1884. description: |-
  1885. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  1886. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  1887. type: string
  1888. required:
  1889. - volumeID
  1890. type: object
  1891. azureDisk:
  1892. description: |-
  1893. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  1894. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  1895. are redirected to the disk.csi.azure.com CSI driver.
  1896. properties:
  1897. cachingMode:
  1898. description: 'cachingMode is the Host Caching
  1899. mode: None, Read Only, Read Write.'
  1900. type: string
  1901. diskName:
  1902. description: diskName is the Name of the data
  1903. disk in the blob storage
  1904. type: string
  1905. diskURI:
  1906. description: diskURI is the URI of data disk
  1907. in the blob storage
  1908. type: string
  1909. fsType:
  1910. default: ext4
  1911. description: |-
  1912. fsType is Filesystem type to mount.
  1913. Must be a filesystem type supported by the host operating system.
  1914. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  1915. type: string
  1916. kind:
  1917. description: 'kind expected values are Shared:
  1918. multiple blob disks per storage account Dedicated:
  1919. single blob disk per storage account Managed:
  1920. azure managed data disk (only in managed availability
  1921. set). defaults to shared'
  1922. type: string
  1923. readOnly:
  1924. default: false
  1925. description: |-
  1926. readOnly Defaults to false (read/write). ReadOnly here will force
  1927. the ReadOnly setting in VolumeMounts.
  1928. type: boolean
  1929. required:
  1930. - diskName
  1931. - diskURI
  1932. type: object
  1933. azureFile:
  1934. description: |-
  1935. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  1936. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  1937. are redirected to the file.csi.azure.com CSI driver.
  1938. properties:
  1939. readOnly:
  1940. description: |-
  1941. readOnly defaults to false (read/write). ReadOnly here will force
  1942. the ReadOnly setting in VolumeMounts.
  1943. type: boolean
  1944. secretName:
  1945. description: secretName is the name of secret
  1946. that contains Azure Storage Account Name and
  1947. Key
  1948. type: string
  1949. shareName:
  1950. description: shareName is the azure share Name
  1951. type: string
  1952. required:
  1953. - secretName
  1954. - shareName
  1955. type: object
  1956. cephfs:
  1957. description: |-
  1958. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  1959. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  1960. properties:
  1961. monitors:
  1962. description: |-
  1963. monitors is Required: Monitors is a collection of Ceph monitors
  1964. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1965. items:
  1966. type: string
  1967. type: array
  1968. x-kubernetes-list-type: atomic
  1969. path:
  1970. description: 'path is Optional: Used as the
  1971. mounted root, rather than the full Ceph tree,
  1972. default is /'
  1973. type: string
  1974. readOnly:
  1975. description: |-
  1976. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  1977. the ReadOnly setting in VolumeMounts.
  1978. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1979. type: boolean
  1980. secretFile:
  1981. description: |-
  1982. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  1983. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1984. type: string
  1985. secretRef:
  1986. description: |-
  1987. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  1988. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  1989. properties:
  1990. name:
  1991. default: ""
  1992. description: |-
  1993. Name of the referent.
  1994. This field is effectively required, but due to backwards compatibility is
  1995. allowed to be empty. Instances of this type with an empty value here are
  1996. almost certainly wrong.
  1997. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1998. type: string
  1999. type: object
  2000. x-kubernetes-map-type: atomic
  2001. user:
  2002. description: |-
  2003. user is optional: User is the rados user name, default is admin
  2004. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  2005. type: string
  2006. required:
  2007. - monitors
  2008. type: object
  2009. cinder:
  2010. description: |-
  2011. cinder represents a cinder volume attached and mounted on kubelets host machine.
  2012. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  2013. are redirected to the cinder.csi.openstack.org CSI driver.
  2014. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  2015. properties:
  2016. fsType:
  2017. description: |-
  2018. fsType is the filesystem type to mount.
  2019. Must be a filesystem type supported by the host operating system.
  2020. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2021. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  2022. type: string
  2023. readOnly:
  2024. description: |-
  2025. readOnly defaults to false (read/write). ReadOnly here will force
  2026. the ReadOnly setting in VolumeMounts.
  2027. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  2028. type: boolean
  2029. secretRef:
  2030. description: |-
  2031. secretRef is optional: points to a secret object containing parameters used to connect
  2032. to OpenStack.
  2033. properties:
  2034. name:
  2035. default: ""
  2036. description: |-
  2037. Name of the referent.
  2038. This field is effectively required, but due to backwards compatibility is
  2039. allowed to be empty. Instances of this type with an empty value here are
  2040. almost certainly wrong.
  2041. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2042. type: string
  2043. type: object
  2044. x-kubernetes-map-type: atomic
  2045. volumeID:
  2046. description: |-
  2047. volumeID used to identify the volume in cinder.
  2048. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  2049. type: string
  2050. required:
  2051. - volumeID
  2052. type: object
  2053. configMap:
  2054. description: configMap represents a configMap that
  2055. should populate this volume
  2056. properties:
  2057. defaultMode:
  2058. description: |-
  2059. defaultMode is optional: mode bits used to set permissions on created files by default.
  2060. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2061. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2062. Defaults to 0644.
  2063. Directories within the path are not affected by this setting.
  2064. This might be in conflict with other options that affect the file
  2065. mode, like fsGroup, and the result can be other mode bits set.
  2066. format: int32
  2067. type: integer
  2068. items:
  2069. description: |-
  2070. items if unspecified, each key-value pair in the Data field of the referenced
  2071. ConfigMap will be projected into the volume as a file whose name is the
  2072. key and content is the value. If specified, the listed keys will be
  2073. projected into the specified paths, and unlisted keys will not be
  2074. present. If a key is specified which is not present in the ConfigMap,
  2075. the volume setup will error unless it is marked optional. Paths must be
  2076. relative and may not contain the '..' path or start with '..'.
  2077. items:
  2078. description: Maps a string key to a path within
  2079. a volume.
  2080. properties:
  2081. key:
  2082. description: key is the key to project.
  2083. type: string
  2084. mode:
  2085. description: |-
  2086. mode is Optional: mode bits used to set permissions on this file.
  2087. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2088. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2089. If not specified, the volume defaultMode will be used.
  2090. This might be in conflict with other options that affect the file
  2091. mode, like fsGroup, and the result can be other mode bits set.
  2092. format: int32
  2093. type: integer
  2094. path:
  2095. description: |-
  2096. path is the relative path of the file to map the key to.
  2097. May not be an absolute path.
  2098. May not contain the path element '..'.
  2099. May not start with the string '..'.
  2100. type: string
  2101. required:
  2102. - key
  2103. - path
  2104. type: object
  2105. type: array
  2106. x-kubernetes-list-type: atomic
  2107. name:
  2108. default: ""
  2109. description: |-
  2110. Name of the referent.
  2111. This field is effectively required, but due to backwards compatibility is
  2112. allowed to be empty. Instances of this type with an empty value here are
  2113. almost certainly wrong.
  2114. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2115. type: string
  2116. optional:
  2117. description: optional specify whether the ConfigMap
  2118. or its keys must be defined
  2119. type: boolean
  2120. type: object
  2121. x-kubernetes-map-type: atomic
  2122. csi:
  2123. description: csi (Container Storage Interface) represents
  2124. ephemeral storage that is handled by certain external
  2125. CSI drivers.
  2126. properties:
  2127. driver:
  2128. description: |-
  2129. driver is the name of the CSI driver that handles this volume.
  2130. Consult with your admin for the correct name as registered in the cluster.
  2131. type: string
  2132. fsType:
  2133. description: |-
  2134. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  2135. If not provided, the empty value is passed to the associated CSI driver
  2136. which will determine the default filesystem to apply.
  2137. type: string
  2138. nodePublishSecretRef:
  2139. description: |-
  2140. nodePublishSecretRef is a reference to the secret object containing
  2141. sensitive information to pass to the CSI driver to complete the CSI
  2142. NodePublishVolume and NodeUnpublishVolume calls.
  2143. This field is optional, and may be empty if no secret is required. If the
  2144. secret object contains more than one secret, all secret references are passed.
  2145. properties:
  2146. name:
  2147. default: ""
  2148. description: |-
  2149. Name of the referent.
  2150. This field is effectively required, but due to backwards compatibility is
  2151. allowed to be empty. Instances of this type with an empty value here are
  2152. almost certainly wrong.
  2153. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2154. type: string
  2155. type: object
  2156. x-kubernetes-map-type: atomic
  2157. readOnly:
  2158. description: |-
  2159. readOnly specifies a read-only configuration for the volume.
  2160. Defaults to false (read/write).
  2161. type: boolean
  2162. volumeAttributes:
  2163. additionalProperties:
  2164. type: string
  2165. description: |-
  2166. volumeAttributes stores driver-specific properties that are passed to the CSI
  2167. driver. Consult your driver's documentation for supported values.
  2168. type: object
  2169. required:
  2170. - driver
  2171. type: object
  2172. downwardAPI:
  2173. description: downwardAPI represents downward API
  2174. about the pod that should populate this volume
  2175. properties:
  2176. defaultMode:
  2177. description: |-
  2178. Optional: mode bits to use on created files by default. Must be a
  2179. Optional: mode bits used to set permissions on created files by default.
  2180. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2181. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2182. Defaults to 0644.
  2183. Directories within the path are not affected by this setting.
  2184. This might be in conflict with other options that affect the file
  2185. mode, like fsGroup, and the result can be other mode bits set.
  2186. format: int32
  2187. type: integer
  2188. items:
  2189. description: Items is a list of downward API
  2190. volume file
  2191. items:
  2192. description: DownwardAPIVolumeFile represents
  2193. information to create the file containing
  2194. the pod field
  2195. properties:
  2196. fieldRef:
  2197. description: 'Required: Selects a field
  2198. of the pod: only annotations, labels,
  2199. name, namespace and uid are supported.'
  2200. properties:
  2201. apiVersion:
  2202. description: Version of the schema
  2203. the FieldPath is written in terms
  2204. of, defaults to "v1".
  2205. type: string
  2206. fieldPath:
  2207. description: Path of the field to
  2208. select in the specified API version.
  2209. type: string
  2210. required:
  2211. - fieldPath
  2212. type: object
  2213. x-kubernetes-map-type: atomic
  2214. mode:
  2215. description: |-
  2216. Optional: mode bits used to set permissions on this file, must be an octal value
  2217. between 0000 and 0777 or a decimal value between 0 and 511.
  2218. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2219. If not specified, the volume defaultMode will be used.
  2220. This might be in conflict with other options that affect the file
  2221. mode, like fsGroup, and the result can be other mode bits set.
  2222. format: int32
  2223. type: integer
  2224. path:
  2225. description: 'Required: Path is the relative
  2226. path name of the file to be created.
  2227. Must not be absolute or contain the
  2228. ''..'' path. Must be utf-8 encoded.
  2229. The first item of the relative path
  2230. must not start with ''..'''
  2231. type: string
  2232. resourceFieldRef:
  2233. description: |-
  2234. Selects a resource of the container: only resources limits and requests
  2235. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  2236. properties:
  2237. containerName:
  2238. description: 'Container name: required
  2239. for volumes, optional for env vars'
  2240. type: string
  2241. divisor:
  2242. anyOf:
  2243. - type: integer
  2244. - type: string
  2245. description: Specifies the output
  2246. format of the exposed resources,
  2247. defaults to "1"
  2248. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2249. x-kubernetes-int-or-string: true
  2250. resource:
  2251. description: 'Required: resource to
  2252. select'
  2253. type: string
  2254. required:
  2255. - resource
  2256. type: object
  2257. x-kubernetes-map-type: atomic
  2258. required:
  2259. - path
  2260. type: object
  2261. type: array
  2262. x-kubernetes-list-type: atomic
  2263. type: object
  2264. emptyDir:
  2265. description: |-
  2266. emptyDir represents a temporary directory that shares a pod's lifetime.
  2267. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2268. properties:
  2269. medium:
  2270. description: |-
  2271. medium represents what type of storage medium should back this directory.
  2272. The default is "" which means to use the node's default medium.
  2273. Must be an empty string (default) or Memory.
  2274. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2275. type: string
  2276. sizeLimit:
  2277. anyOf:
  2278. - type: integer
  2279. - type: string
  2280. description: |-
  2281. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  2282. The size limit is also applicable for memory medium.
  2283. The maximum usage on memory medium EmptyDir would be the minimum value between
  2284. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  2285. The default is nil which means that the limit is undefined.
  2286. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  2287. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2288. x-kubernetes-int-or-string: true
  2289. type: object
  2290. ephemeral:
  2291. description: |-
  2292. ephemeral represents a volume that is handled by a cluster storage driver.
  2293. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  2294. and deleted when the pod is removed.
  2295. Use this if:
  2296. a) the volume is only needed while the pod runs,
  2297. b) features of normal volumes like restoring from snapshot or capacity
  2298. tracking are needed,
  2299. c) the storage driver is specified through a storage class, and
  2300. d) the storage driver supports dynamic volume provisioning through
  2301. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  2302. information on the connection between this volume type
  2303. and PersistentVolumeClaim).
  2304. Use PersistentVolumeClaim or one of the vendor-specific
  2305. APIs for volumes that persist for longer than the lifecycle
  2306. of an individual pod.
  2307. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  2308. be used that way - see the documentation of the driver for
  2309. more information.
  2310. A pod can use both types of ephemeral volumes and
  2311. persistent volumes at the same time.
  2312. properties:
  2313. volumeClaimTemplate:
  2314. description: |-
  2315. Will be used to create a stand-alone PVC to provision the volume.
  2316. The pod in which this EphemeralVolumeSource is embedded will be the
  2317. owner of the PVC, i.e. the PVC will be deleted together with the
  2318. pod. The name of the PVC will be `<pod name>-<volume name>` where
  2319. `<volume name>` is the name from the `PodSpec.Volumes` array
  2320. entry. Pod validation will reject the pod if the concatenated name
  2321. is not valid for a PVC (for example, too long).
  2322. An existing PVC with that name that is not owned by the pod
  2323. will *not* be used for the pod to avoid using an unrelated
  2324. volume by mistake. Starting the pod is then blocked until
  2325. the unrelated PVC is removed. If such a pre-created PVC is
  2326. meant to be used by the pod, the PVC has to updated with an
  2327. owner reference to the pod once the pod exists. Normally
  2328. this should not be necessary, but it may be useful when
  2329. manually reconstructing a broken cluster.
  2330. This field is read-only and no changes will be made by Kubernetes
  2331. to the PVC after it has been created.
  2332. Required, must not be nil.
  2333. properties:
  2334. metadata:
  2335. description: |-
  2336. May contain labels and annotations that will be copied into the PVC
  2337. when creating it. No other fields are allowed and will be rejected during
  2338. validation.
  2339. type: object
  2340. spec:
  2341. description: |-
  2342. The specification for the PersistentVolumeClaim. The entire content is
  2343. copied unchanged into the PVC that gets created from this
  2344. template. The same fields as in a PersistentVolumeClaim
  2345. are also valid here.
  2346. properties:
  2347. accessModes:
  2348. description: |-
  2349. accessModes contains the desired access modes the volume should have.
  2350. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2351. items:
  2352. type: string
  2353. type: array
  2354. x-kubernetes-list-type: atomic
  2355. dataSource:
  2356. description: |-
  2357. dataSource field can be used to specify either:
  2358. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2359. * An existing PVC (PersistentVolumeClaim)
  2360. If the provisioner or an external controller can support the specified data source,
  2361. it will create a new volume based on the contents of the specified data source.
  2362. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2363. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2364. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2365. properties:
  2366. apiGroup:
  2367. description: |-
  2368. APIGroup is the group for the resource being referenced.
  2369. If APIGroup is not specified, the specified Kind must be in the core API group.
  2370. For any other third-party types, APIGroup is required.
  2371. type: string
  2372. kind:
  2373. description: Kind is the type of
  2374. resource being referenced
  2375. type: string
  2376. name:
  2377. description: Name is the name of
  2378. resource being referenced
  2379. type: string
  2380. required:
  2381. - kind
  2382. - name
  2383. type: object
  2384. x-kubernetes-map-type: atomic
  2385. dataSourceRef:
  2386. description: |-
  2387. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2388. volume is desired. This may be any object from a non-empty API group (non
  2389. core object) or a PersistentVolumeClaim object.
  2390. When this field is specified, volume binding will only succeed if the type of
  2391. the specified object matches some installed volume populator or dynamic
  2392. provisioner.
  2393. This field will replace the functionality of the dataSource field and as such
  2394. if both fields are non-empty, they must have the same value. For backwards
  2395. compatibility, when namespace isn't specified in dataSourceRef,
  2396. both fields (dataSource and dataSourceRef) will be set to the same
  2397. value automatically if one of them is empty and the other is non-empty.
  2398. When namespace is specified in dataSourceRef,
  2399. dataSource isn't set to the same value and must be empty.
  2400. There are three important differences between dataSource and dataSourceRef:
  2401. * While dataSource only allows two specific types of objects, dataSourceRef
  2402. allows any non-core object, as well as PersistentVolumeClaim objects.
  2403. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2404. preserves all values, and generates an error if a disallowed value is
  2405. specified.
  2406. * While dataSource only allows local objects, dataSourceRef allows objects
  2407. in any namespaces.
  2408. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2409. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2410. properties:
  2411. apiGroup:
  2412. description: |-
  2413. APIGroup is the group for the resource being referenced.
  2414. If APIGroup is not specified, the specified Kind must be in the core API group.
  2415. For any other third-party types, APIGroup is required.
  2416. type: string
  2417. kind:
  2418. description: Kind is the type of
  2419. resource being referenced
  2420. type: string
  2421. name:
  2422. description: Name is the name of
  2423. resource being referenced
  2424. type: string
  2425. namespace:
  2426. description: |-
  2427. Namespace is the namespace of resource being referenced
  2428. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  2429. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2430. type: string
  2431. required:
  2432. - kind
  2433. - name
  2434. type: object
  2435. resources:
  2436. description: |-
  2437. resources represents the minimum resources the volume should have.
  2438. Users are allowed to specify resource requirements
  2439. that are lower than previous value but must still be higher than capacity recorded in the
  2440. status field of the claim.
  2441. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  2442. properties:
  2443. limits:
  2444. additionalProperties:
  2445. anyOf:
  2446. - type: integer
  2447. - type: string
  2448. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2449. x-kubernetes-int-or-string: true
  2450. description: |-
  2451. Limits describes the maximum amount of compute resources allowed.
  2452. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2453. type: object
  2454. requests:
  2455. additionalProperties:
  2456. anyOf:
  2457. - type: integer
  2458. - type: string
  2459. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2460. x-kubernetes-int-or-string: true
  2461. description: |-
  2462. Requests describes the minimum amount of compute resources required.
  2463. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  2464. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  2465. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2466. type: object
  2467. type: object
  2468. selector:
  2469. description: selector is a label query
  2470. over volumes to consider for binding.
  2471. properties:
  2472. matchExpressions:
  2473. description: matchExpressions is
  2474. a list of label selector requirements.
  2475. The requirements are ANDed.
  2476. items:
  2477. description: |-
  2478. A label selector requirement is a selector that contains values, a key, and an operator that
  2479. relates the key and values.
  2480. properties:
  2481. key:
  2482. description: key is the label
  2483. key that the selector applies
  2484. to.
  2485. type: string
  2486. operator:
  2487. description: |-
  2488. operator represents a key's relationship to a set of values.
  2489. Valid operators are In, NotIn, Exists and DoesNotExist.
  2490. type: string
  2491. values:
  2492. description: |-
  2493. values is an array of string values. If the operator is In or NotIn,
  2494. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2495. the values array must be empty. This array is replaced during a strategic
  2496. merge patch.
  2497. items:
  2498. type: string
  2499. type: array
  2500. x-kubernetes-list-type: atomic
  2501. required:
  2502. - key
  2503. - operator
  2504. type: object
  2505. type: array
  2506. x-kubernetes-list-type: atomic
  2507. matchLabels:
  2508. additionalProperties:
  2509. type: string
  2510. description: |-
  2511. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2512. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2513. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2514. type: object
  2515. type: object
  2516. x-kubernetes-map-type: atomic
  2517. storageClassName:
  2518. description: |-
  2519. storageClassName is the name of the StorageClass required by the claim.
  2520. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  2521. type: string
  2522. volumeAttributesClassName:
  2523. description: |-
  2524. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  2525. If specified, the CSI driver will create or update the volume with the attributes defined
  2526. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  2527. it can be changed after the claim is created. An empty string or nil value indicates that no
  2528. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  2529. this field can be reset to its previous value (including nil) to cancel the modification.
  2530. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  2531. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  2532. exists.
  2533. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  2534. type: string
  2535. volumeMode:
  2536. description: |-
  2537. volumeMode defines what type of volume is required by the claim.
  2538. Value of Filesystem is implied when not included in claim spec.
  2539. type: string
  2540. volumeName:
  2541. description: volumeName is the binding
  2542. reference to the PersistentVolume
  2543. backing this claim.
  2544. type: string
  2545. type: object
  2546. required:
  2547. - spec
  2548. type: object
  2549. type: object
  2550. fc:
  2551. description: fc represents a Fibre Channel resource
  2552. that is attached to a kubelet's host machine and
  2553. then exposed to the pod.
  2554. properties:
  2555. fsType:
  2556. description: |-
  2557. fsType is the filesystem type to mount.
  2558. Must be a filesystem type supported by the host operating system.
  2559. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2560. type: string
  2561. lun:
  2562. description: 'lun is Optional: FC target lun
  2563. number'
  2564. format: int32
  2565. type: integer
  2566. readOnly:
  2567. description: |-
  2568. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  2569. the ReadOnly setting in VolumeMounts.
  2570. type: boolean
  2571. targetWWNs:
  2572. description: 'targetWWNs is Optional: FC target
  2573. worldwide names (WWNs)'
  2574. items:
  2575. type: string
  2576. type: array
  2577. x-kubernetes-list-type: atomic
  2578. wwids:
  2579. description: |-
  2580. wwids Optional: FC volume world wide identifiers (wwids)
  2581. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  2582. items:
  2583. type: string
  2584. type: array
  2585. x-kubernetes-list-type: atomic
  2586. type: object
  2587. flexVolume:
  2588. description: |-
  2589. flexVolume represents a generic volume resource that is
  2590. provisioned/attached using an exec based plugin.
  2591. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  2592. properties:
  2593. driver:
  2594. description: driver is the name of the driver
  2595. to use for this volume.
  2596. type: string
  2597. fsType:
  2598. description: |-
  2599. fsType is the filesystem type to mount.
  2600. Must be a filesystem type supported by the host operating system.
  2601. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  2602. type: string
  2603. options:
  2604. additionalProperties:
  2605. type: string
  2606. description: 'options is Optional: this field
  2607. holds extra command options if any.'
  2608. type: object
  2609. readOnly:
  2610. description: |-
  2611. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  2612. the ReadOnly setting in VolumeMounts.
  2613. type: boolean
  2614. secretRef:
  2615. description: |-
  2616. secretRef is Optional: secretRef is reference to the secret object containing
  2617. sensitive information to pass to the plugin scripts. This may be
  2618. empty if no secret object is specified. If the secret object
  2619. contains more than one secret, all secrets are passed to the plugin
  2620. scripts.
  2621. properties:
  2622. name:
  2623. default: ""
  2624. description: |-
  2625. Name of the referent.
  2626. This field is effectively required, but due to backwards compatibility is
  2627. allowed to be empty. Instances of this type with an empty value here are
  2628. almost certainly wrong.
  2629. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2630. type: string
  2631. type: object
  2632. x-kubernetes-map-type: atomic
  2633. required:
  2634. - driver
  2635. type: object
  2636. flocker:
  2637. description: |-
  2638. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  2639. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  2640. properties:
  2641. datasetName:
  2642. description: |-
  2643. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  2644. should be considered as deprecated
  2645. type: string
  2646. datasetUUID:
  2647. description: datasetUUID is the UUID of the
  2648. dataset. This is unique identifier of a Flocker
  2649. dataset
  2650. type: string
  2651. type: object
  2652. gcePersistentDisk:
  2653. description: |-
  2654. gcePersistentDisk represents a GCE Disk resource that is attached to a
  2655. kubelet's host machine and then exposed to the pod.
  2656. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  2657. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  2658. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2659. properties:
  2660. fsType:
  2661. description: |-
  2662. fsType is filesystem type of the volume that you want to mount.
  2663. Tip: Ensure that the filesystem type is supported by the host operating system.
  2664. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2665. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2666. type: string
  2667. partition:
  2668. description: |-
  2669. partition is the partition in the volume that you want to mount.
  2670. If omitted, the default is to mount by volume name.
  2671. Examples: For volume /dev/sda1, you specify the partition as "1".
  2672. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  2673. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2674. format: int32
  2675. type: integer
  2676. pdName:
  2677. description: |-
  2678. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  2679. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2680. type: string
  2681. readOnly:
  2682. description: |-
  2683. readOnly here will force the ReadOnly setting in VolumeMounts.
  2684. Defaults to false.
  2685. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  2686. type: boolean
  2687. required:
  2688. - pdName
  2689. type: object
  2690. gitRepo:
  2691. description: |-
  2692. gitRepo represents a git repository at a particular revision.
  2693. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  2694. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  2695. into the Pod's container.
  2696. properties:
  2697. directory:
  2698. description: |-
  2699. directory is the target directory name.
  2700. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  2701. git repository. Otherwise, if specified, the volume will contain the git repository in
  2702. the subdirectory with the given name.
  2703. type: string
  2704. repository:
  2705. description: repository is the URL
  2706. type: string
  2707. revision:
  2708. description: revision is the commit hash for
  2709. the specified revision.
  2710. type: string
  2711. required:
  2712. - repository
  2713. type: object
  2714. glusterfs:
  2715. description: |-
  2716. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  2717. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  2718. properties:
  2719. endpoints:
  2720. description: endpoints is the endpoint name
  2721. that details Glusterfs topology.
  2722. type: string
  2723. path:
  2724. description: |-
  2725. path is the Glusterfs volume path.
  2726. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  2727. type: string
  2728. readOnly:
  2729. description: |-
  2730. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  2731. Defaults to false.
  2732. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  2733. type: boolean
  2734. required:
  2735. - endpoints
  2736. - path
  2737. type: object
  2738. hostPath:
  2739. description: |-
  2740. hostPath represents a pre-existing file or directory on the host
  2741. machine that is directly exposed to the container. This is generally
  2742. used for system agents or other privileged things that are allowed
  2743. to see the host machine. Most containers will NOT need this.
  2744. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2745. properties:
  2746. path:
  2747. description: |-
  2748. path of the directory on the host.
  2749. If the path is a symlink, it will follow the link to the real path.
  2750. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2751. type: string
  2752. type:
  2753. description: |-
  2754. type for HostPath Volume
  2755. Defaults to ""
  2756. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  2757. type: string
  2758. required:
  2759. - path
  2760. type: object
  2761. image:
  2762. description: |-
  2763. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  2764. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  2765. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  2766. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  2767. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  2768. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  2769. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  2770. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  2771. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  2772. The volume will be mounted read-only (ro) and non-executable files (noexec).
  2773. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  2774. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  2775. properties:
  2776. pullPolicy:
  2777. description: |-
  2778. Policy for pulling OCI objects. Possible values are:
  2779. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  2780. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  2781. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  2782. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  2783. type: string
  2784. reference:
  2785. description: |-
  2786. Required: Image or artifact reference to be used.
  2787. Behaves in the same way as pod.spec.containers[*].image.
  2788. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  2789. More info: https://kubernetes.io/docs/concepts/containers/images
  2790. This field is optional to allow higher level config management to default or override
  2791. container images in workload controllers like Deployments and StatefulSets.
  2792. type: string
  2793. type: object
  2794. iscsi:
  2795. description: |-
  2796. iscsi represents an ISCSI Disk resource that is attached to a
  2797. kubelet's host machine and then exposed to the pod.
  2798. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  2799. properties:
  2800. chapAuthDiscovery:
  2801. description: chapAuthDiscovery defines whether
  2802. support iSCSI Discovery CHAP authentication
  2803. type: boolean
  2804. chapAuthSession:
  2805. description: chapAuthSession defines whether
  2806. support iSCSI Session CHAP authentication
  2807. type: boolean
  2808. fsType:
  2809. description: |-
  2810. fsType is the filesystem type of the volume that you want to mount.
  2811. Tip: Ensure that the filesystem type is supported by the host operating system.
  2812. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2813. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  2814. type: string
  2815. initiatorName:
  2816. description: |-
  2817. initiatorName is the custom iSCSI Initiator Name.
  2818. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  2819. <target portal>:<volume name> will be created for the connection.
  2820. type: string
  2821. iqn:
  2822. description: iqn is the target iSCSI Qualified
  2823. Name.
  2824. type: string
  2825. iscsiInterface:
  2826. default: default
  2827. description: |-
  2828. iscsiInterface is the interface Name that uses an iSCSI transport.
  2829. Defaults to 'default' (tcp).
  2830. type: string
  2831. lun:
  2832. description: lun represents iSCSI Target Lun
  2833. number.
  2834. format: int32
  2835. type: integer
  2836. portals:
  2837. description: |-
  2838. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  2839. is other than default (typically TCP ports 860 and 3260).
  2840. items:
  2841. type: string
  2842. type: array
  2843. x-kubernetes-list-type: atomic
  2844. readOnly:
  2845. description: |-
  2846. readOnly here will force the ReadOnly setting in VolumeMounts.
  2847. Defaults to false.
  2848. type: boolean
  2849. secretRef:
  2850. description: secretRef is the CHAP Secret for
  2851. iSCSI target and initiator authentication
  2852. properties:
  2853. name:
  2854. default: ""
  2855. description: |-
  2856. Name of the referent.
  2857. This field is effectively required, but due to backwards compatibility is
  2858. allowed to be empty. Instances of this type with an empty value here are
  2859. almost certainly wrong.
  2860. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2861. type: string
  2862. type: object
  2863. x-kubernetes-map-type: atomic
  2864. targetPortal:
  2865. description: |-
  2866. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  2867. is other than default (typically TCP ports 860 and 3260).
  2868. type: string
  2869. required:
  2870. - iqn
  2871. - lun
  2872. - targetPortal
  2873. type: object
  2874. name:
  2875. description: |-
  2876. name of the volume.
  2877. Must be a DNS_LABEL and unique within the pod.
  2878. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2879. type: string
  2880. nfs:
  2881. description: |-
  2882. nfs represents an NFS mount on the host that shares a pod's lifetime
  2883. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2884. properties:
  2885. path:
  2886. description: |-
  2887. path that is exported by the NFS server.
  2888. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2889. type: string
  2890. readOnly:
  2891. description: |-
  2892. readOnly here will force the NFS export to be mounted with read-only permissions.
  2893. Defaults to false.
  2894. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2895. type: boolean
  2896. server:
  2897. description: |-
  2898. server is the hostname or IP address of the NFS server.
  2899. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  2900. type: string
  2901. required:
  2902. - path
  2903. - server
  2904. type: object
  2905. persistentVolumeClaim:
  2906. description: |-
  2907. persistentVolumeClaimVolumeSource represents a reference to a
  2908. PersistentVolumeClaim in the same namespace.
  2909. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2910. properties:
  2911. claimName:
  2912. description: |-
  2913. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  2914. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2915. type: string
  2916. readOnly:
  2917. description: |-
  2918. readOnly Will force the ReadOnly setting in VolumeMounts.
  2919. Default false.
  2920. type: boolean
  2921. required:
  2922. - claimName
  2923. type: object
  2924. photonPersistentDisk:
  2925. description: |-
  2926. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  2927. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  2928. properties:
  2929. fsType:
  2930. description: |-
  2931. fsType is the filesystem type to mount.
  2932. Must be a filesystem type supported by the host operating system.
  2933. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  2934. type: string
  2935. pdID:
  2936. description: pdID is the ID that identifies
  2937. Photon Controller persistent disk
  2938. type: string
  2939. required:
  2940. - pdID
  2941. type: object
  2942. portworxVolume:
  2943. description: |-
  2944. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  2945. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  2946. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  2947. is on.
  2948. properties:
  2949. fsType:
  2950. description: |-
  2951. fSType represents the filesystem type to mount
  2952. Must be a filesystem type supported by the host operating system.
  2953. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  2954. type: string
  2955. readOnly:
  2956. description: |-
  2957. readOnly defaults to false (read/write). ReadOnly here will force
  2958. the ReadOnly setting in VolumeMounts.
  2959. type: boolean
  2960. volumeID:
  2961. description: volumeID uniquely identifies a
  2962. Portworx volume
  2963. type: string
  2964. required:
  2965. - volumeID
  2966. type: object
  2967. projected:
  2968. description: projected items for all in one resources
  2969. secrets, configmaps, and downward API
  2970. properties:
  2971. defaultMode:
  2972. description: |-
  2973. defaultMode are the mode bits used to set permissions on created files by default.
  2974. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  2975. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  2976. Directories within the path are not affected by this setting.
  2977. This might be in conflict with other options that affect the file
  2978. mode, like fsGroup, and the result can be other mode bits set.
  2979. format: int32
  2980. type: integer
  2981. sources:
  2982. description: |-
  2983. sources is the list of volume projections. Each entry in this list
  2984. handles one source.
  2985. items:
  2986. description: |-
  2987. Projection that may be projected along with other supported volume types.
  2988. Exactly one of these fields must be set.
  2989. properties:
  2990. clusterTrustBundle:
  2991. description: |-
  2992. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  2993. of ClusterTrustBundle objects in an auto-updating file.
  2994. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  2995. ClusterTrustBundle objects can either be selected by name, or by the
  2996. combination of signer name and a label selector.
  2997. Kubelet performs aggressive normalization of the PEM contents written
  2998. into the pod filesystem. Esoteric PEM features such as inter-block
  2999. comments and block headers are stripped. Certificates are deduplicated.
  3000. The ordering of certificates within the file is arbitrary, and Kubelet
  3001. may change the order over time.
  3002. properties:
  3003. labelSelector:
  3004. description: |-
  3005. Select all ClusterTrustBundles that match this label selector. Only has
  3006. effect if signerName is set. Mutually-exclusive with name. If unset,
  3007. interpreted as "match nothing". If set but empty, interpreted as "match
  3008. everything".
  3009. properties:
  3010. matchExpressions:
  3011. description: matchExpressions
  3012. is a list of label selector
  3013. requirements. The requirements
  3014. are ANDed.
  3015. items:
  3016. description: |-
  3017. A label selector requirement is a selector that contains values, a key, and an operator that
  3018. relates the key and values.
  3019. properties:
  3020. key:
  3021. description: key is the
  3022. label key that the selector
  3023. applies to.
  3024. type: string
  3025. operator:
  3026. description: |-
  3027. operator represents a key's relationship to a set of values.
  3028. Valid operators are In, NotIn, Exists and DoesNotExist.
  3029. type: string
  3030. values:
  3031. description: |-
  3032. values is an array of string values. If the operator is In or NotIn,
  3033. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3034. the values array must be empty. This array is replaced during a strategic
  3035. merge patch.
  3036. items:
  3037. type: string
  3038. type: array
  3039. x-kubernetes-list-type: atomic
  3040. required:
  3041. - key
  3042. - operator
  3043. type: object
  3044. type: array
  3045. x-kubernetes-list-type: atomic
  3046. matchLabels:
  3047. additionalProperties:
  3048. type: string
  3049. description: |-
  3050. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  3051. map is equivalent to an element of matchExpressions, whose key field is "key", the
  3052. operator is "In", and the values array contains only "value". The requirements are ANDed.
  3053. type: object
  3054. type: object
  3055. x-kubernetes-map-type: atomic
  3056. name:
  3057. description: |-
  3058. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  3059. with signerName and labelSelector.
  3060. type: string
  3061. optional:
  3062. description: |-
  3063. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  3064. aren't available. If using name, then the named ClusterTrustBundle is
  3065. allowed not to exist. If using signerName, then the combination of
  3066. signerName and labelSelector is allowed to match zero
  3067. ClusterTrustBundles.
  3068. type: boolean
  3069. path:
  3070. description: Relative path from the
  3071. volume root to write the bundle.
  3072. type: string
  3073. signerName:
  3074. description: |-
  3075. Select all ClusterTrustBundles that match this signer name.
  3076. Mutually-exclusive with name. The contents of all selected
  3077. ClusterTrustBundles will be unified and deduplicated.
  3078. type: string
  3079. required:
  3080. - path
  3081. type: object
  3082. configMap:
  3083. description: configMap information about
  3084. the configMap data to project
  3085. properties:
  3086. items:
  3087. description: |-
  3088. items if unspecified, each key-value pair in the Data field of the referenced
  3089. ConfigMap will be projected into the volume as a file whose name is the
  3090. key and content is the value. If specified, the listed keys will be
  3091. projected into the specified paths, and unlisted keys will not be
  3092. present. If a key is specified which is not present in the ConfigMap,
  3093. the volume setup will error unless it is marked optional. Paths must be
  3094. relative and may not contain the '..' path or start with '..'.
  3095. items:
  3096. description: Maps a string key to
  3097. a path within a volume.
  3098. properties:
  3099. key:
  3100. description: key is the key
  3101. to project.
  3102. type: string
  3103. mode:
  3104. description: |-
  3105. mode is Optional: mode bits used to set permissions on this file.
  3106. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3107. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3108. If not specified, the volume defaultMode will be used.
  3109. This might be in conflict with other options that affect the file
  3110. mode, like fsGroup, and the result can be other mode bits set.
  3111. format: int32
  3112. type: integer
  3113. path:
  3114. description: |-
  3115. path is the relative path of the file to map the key to.
  3116. May not be an absolute path.
  3117. May not contain the path element '..'.
  3118. May not start with the string '..'.
  3119. type: string
  3120. required:
  3121. - key
  3122. - path
  3123. type: object
  3124. type: array
  3125. x-kubernetes-list-type: atomic
  3126. name:
  3127. default: ""
  3128. description: |-
  3129. Name of the referent.
  3130. This field is effectively required, but due to backwards compatibility is
  3131. allowed to be empty. Instances of this type with an empty value here are
  3132. almost certainly wrong.
  3133. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3134. type: string
  3135. optional:
  3136. description: optional specify whether
  3137. the ConfigMap or its keys must be
  3138. defined
  3139. type: boolean
  3140. type: object
  3141. x-kubernetes-map-type: atomic
  3142. downwardAPI:
  3143. description: downwardAPI information about
  3144. the downwardAPI data to project
  3145. properties:
  3146. items:
  3147. description: Items is a list of DownwardAPIVolume
  3148. file
  3149. items:
  3150. description: DownwardAPIVolumeFile
  3151. represents information to create
  3152. the file containing the pod field
  3153. properties:
  3154. fieldRef:
  3155. description: 'Required: Selects
  3156. a field of the pod: only annotations,
  3157. labels, name, namespace and
  3158. uid are supported.'
  3159. properties:
  3160. apiVersion:
  3161. description: Version of
  3162. the schema the FieldPath
  3163. is written in terms of,
  3164. defaults to "v1".
  3165. type: string
  3166. fieldPath:
  3167. description: Path of the
  3168. field to select in the
  3169. specified API version.
  3170. type: string
  3171. required:
  3172. - fieldPath
  3173. type: object
  3174. x-kubernetes-map-type: atomic
  3175. mode:
  3176. description: |-
  3177. Optional: mode bits used to set permissions on this file, must be an octal value
  3178. between 0000 and 0777 or a decimal value between 0 and 511.
  3179. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3180. If not specified, the volume defaultMode will be used.
  3181. This might be in conflict with other options that affect the file
  3182. mode, like fsGroup, and the result can be other mode bits set.
  3183. format: int32
  3184. type: integer
  3185. path:
  3186. description: 'Required: Path
  3187. is the relative path name
  3188. of the file to be created.
  3189. Must not be absolute or contain
  3190. the ''..'' path. Must be utf-8
  3191. encoded. The first item of
  3192. the relative path must not
  3193. start with ''..'''
  3194. type: string
  3195. resourceFieldRef:
  3196. description: |-
  3197. Selects a resource of the container: only resources limits and requests
  3198. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  3199. properties:
  3200. containerName:
  3201. description: 'Container
  3202. name: required for volumes,
  3203. optional for env vars'
  3204. type: string
  3205. divisor:
  3206. anyOf:
  3207. - type: integer
  3208. - type: string
  3209. description: Specifies the
  3210. output format of the exposed
  3211. resources, defaults to
  3212. "1"
  3213. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3214. x-kubernetes-int-or-string: true
  3215. resource:
  3216. description: 'Required:
  3217. resource to select'
  3218. type: string
  3219. required:
  3220. - resource
  3221. type: object
  3222. x-kubernetes-map-type: atomic
  3223. required:
  3224. - path
  3225. type: object
  3226. type: array
  3227. x-kubernetes-list-type: atomic
  3228. type: object
  3229. podCertificate:
  3230. description: |-
  3231. Projects an auto-rotating credential bundle (private key and certificate
  3232. chain) that the pod can use either as a TLS client or server.
  3233. Kubelet generates a private key and uses it to send a
  3234. PodCertificateRequest to the named signer. Once the signer approves the
  3235. request and issues a certificate chain, Kubelet writes the key and
  3236. certificate chain to the pod filesystem. The pod does not start until
  3237. certificates have been issued for each podCertificate projected volume
  3238. source in its spec.
  3239. Kubelet will begin trying to rotate the certificate at the time indicated
  3240. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  3241. timestamp.
  3242. Kubelet can write a single file, indicated by the credentialBundlePath
  3243. field, or separate files, indicated by the keyPath and
  3244. certificateChainPath fields.
  3245. The credential bundle is a single file in PEM format. The first PEM
  3246. entry is the private key (in PKCS#8 format), and the remaining PEM
  3247. entries are the certificate chain issued by the signer (typically,
  3248. signers will return their certificate chain in leaf-to-root order).
  3249. Prefer using the credential bundle format, since your application code
  3250. can read it atomically. If you use keyPath and certificateChainPath,
  3251. your application must make two separate file reads. If these coincide
  3252. with a certificate rotation, it is possible that the private key and leaf
  3253. certificate you read may not correspond to each other. Your application
  3254. will need to check for this condition, and re-read until they are
  3255. consistent.
  3256. The named signer controls chooses the format of the certificate it
  3257. issues; consult the signer implementation's documentation to learn how to
  3258. use the certificates it issues.
  3259. properties:
  3260. certificateChainPath:
  3261. description: |-
  3262. Write the certificate chain at this path in the projected volume.
  3263. Most applications should use credentialBundlePath. When using keyPath
  3264. and certificateChainPath, your application needs to check that the key
  3265. and leaf certificate are consistent, because it is possible to read the
  3266. files mid-rotation.
  3267. type: string
  3268. credentialBundlePath:
  3269. description: |-
  3270. Write the credential bundle at this path in the projected volume.
  3271. The credential bundle is a single file that contains multiple PEM blocks.
  3272. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  3273. key.
  3274. The remaining blocks are CERTIFICATE blocks, containing the issued
  3275. certificate chain from the signer (leaf and any intermediates).
  3276. Using credentialBundlePath lets your Pod's application code make a single
  3277. atomic read that retrieves a consistent key and certificate chain. If you
  3278. project them to separate files, your application code will need to
  3279. additionally check that the leaf certificate was issued to the key.
  3280. type: string
  3281. keyPath:
  3282. description: |-
  3283. Write the key at this path in the projected volume.
  3284. Most applications should use credentialBundlePath. When using keyPath
  3285. and certificateChainPath, your application needs to check that the key
  3286. and leaf certificate are consistent, because it is possible to read the
  3287. files mid-rotation.
  3288. type: string
  3289. keyType:
  3290. description: |-
  3291. The type of keypair Kubelet will generate for the pod.
  3292. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  3293. "ECDSAP521", and "ED25519".
  3294. type: string
  3295. maxExpirationSeconds:
  3296. description: |-
  3297. maxExpirationSeconds is the maximum lifetime permitted for the
  3298. certificate.
  3299. Kubelet copies this value verbatim into the PodCertificateRequests it
  3300. generates for this projection.
  3301. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  3302. will reject values shorter than 3600 (1 hour). The maximum allowable
  3303. value is 7862400 (91 days).
  3304. The signer implementation is then free to issue a certificate with any
  3305. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  3306. seconds (1 hour). This constraint is enforced by kube-apiserver.
  3307. `kubernetes.io` signers will never issue certificates with a lifetime
  3308. longer than 24 hours.
  3309. format: int32
  3310. type: integer
  3311. signerName:
  3312. description: Kubelet's generated CSRs
  3313. will be addressed to this signer.
  3314. type: string
  3315. userAnnotations:
  3316. additionalProperties:
  3317. type: string
  3318. description: |-
  3319. userAnnotations allow pod authors to pass additional information to
  3320. the signer implementation. Kubernetes does not restrict or validate this
  3321. metadata in any way.
  3322. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
  3323. the PodCertificateRequest objects that Kubelet creates.
  3324. Entries are subject to the same validation as object metadata annotations,
  3325. with the addition that all keys must be domain-prefixed. No restrictions
  3326. are placed on values, except an overall size limitation on the entire field.
  3327. Signers should document the keys and values they support. Signers should
  3328. deny requests that contain keys they do not recognize.
  3329. type: object
  3330. required:
  3331. - keyType
  3332. - signerName
  3333. type: object
  3334. secret:
  3335. description: secret information about
  3336. the secret data to project
  3337. properties:
  3338. items:
  3339. description: |-
  3340. items if unspecified, each key-value pair in the Data field of the referenced
  3341. Secret will be projected into the volume as a file whose name is the
  3342. key and content is the value. If specified, the listed keys will be
  3343. projected into the specified paths, and unlisted keys will not be
  3344. present. If a key is specified which is not present in the Secret,
  3345. the volume setup will error unless it is marked optional. Paths must be
  3346. relative and may not contain the '..' path or start with '..'.
  3347. items:
  3348. description: Maps a string key to
  3349. a path within a volume.
  3350. properties:
  3351. key:
  3352. description: key is the key
  3353. to project.
  3354. type: string
  3355. mode:
  3356. description: |-
  3357. mode is Optional: mode bits used to set permissions on this file.
  3358. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3359. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3360. If not specified, the volume defaultMode will be used.
  3361. This might be in conflict with other options that affect the file
  3362. mode, like fsGroup, and the result can be other mode bits set.
  3363. format: int32
  3364. type: integer
  3365. path:
  3366. description: |-
  3367. path is the relative path of the file to map the key to.
  3368. May not be an absolute path.
  3369. May not contain the path element '..'.
  3370. May not start with the string '..'.
  3371. type: string
  3372. required:
  3373. - key
  3374. - path
  3375. type: object
  3376. type: array
  3377. x-kubernetes-list-type: atomic
  3378. name:
  3379. default: ""
  3380. description: |-
  3381. Name of the referent.
  3382. This field is effectively required, but due to backwards compatibility is
  3383. allowed to be empty. Instances of this type with an empty value here are
  3384. almost certainly wrong.
  3385. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3386. type: string
  3387. optional:
  3388. description: optional field specify
  3389. whether the Secret or its key must
  3390. be defined
  3391. type: boolean
  3392. type: object
  3393. x-kubernetes-map-type: atomic
  3394. serviceAccountToken:
  3395. description: serviceAccountToken is information
  3396. about the serviceAccountToken data to
  3397. project
  3398. properties:
  3399. audience:
  3400. description: |-
  3401. audience is the intended audience of the token. A recipient of a token
  3402. must identify itself with an identifier specified in the audience of the
  3403. token, and otherwise should reject the token. The audience defaults to the
  3404. identifier of the apiserver.
  3405. type: string
  3406. expirationSeconds:
  3407. description: |-
  3408. expirationSeconds is the requested duration of validity of the service
  3409. account token. As the token approaches expiration, the kubelet volume
  3410. plugin will proactively rotate the service account token. The kubelet will
  3411. start trying to rotate the token if the token is older than 80 percent of
  3412. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  3413. and must be at least 10 minutes.
  3414. format: int64
  3415. type: integer
  3416. path:
  3417. description: |-
  3418. path is the path relative to the mount point of the file to project the
  3419. token into.
  3420. type: string
  3421. required:
  3422. - path
  3423. type: object
  3424. type: object
  3425. type: array
  3426. x-kubernetes-list-type: atomic
  3427. type: object
  3428. quobyte:
  3429. description: |-
  3430. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  3431. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  3432. properties:
  3433. group:
  3434. description: |-
  3435. group to map volume access to
  3436. Default is no group
  3437. type: string
  3438. readOnly:
  3439. description: |-
  3440. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  3441. Defaults to false.
  3442. type: boolean
  3443. registry:
  3444. description: |-
  3445. registry represents a single or multiple Quobyte Registry services
  3446. specified as a string as host:port pair (multiple entries are separated with commas)
  3447. which acts as the central registry for volumes
  3448. type: string
  3449. tenant:
  3450. description: |-
  3451. tenant owning the given Quobyte volume in the Backend
  3452. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  3453. type: string
  3454. user:
  3455. description: |-
  3456. user to map volume access to
  3457. Defaults to serivceaccount user
  3458. type: string
  3459. volume:
  3460. description: volume is a string that references
  3461. an already created Quobyte volume by name.
  3462. type: string
  3463. required:
  3464. - registry
  3465. - volume
  3466. type: object
  3467. rbd:
  3468. description: |-
  3469. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  3470. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  3471. properties:
  3472. fsType:
  3473. description: |-
  3474. fsType is the filesystem type of the volume that you want to mount.
  3475. Tip: Ensure that the filesystem type is supported by the host operating system.
  3476. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3477. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  3478. type: string
  3479. image:
  3480. description: |-
  3481. image is the rados image name.
  3482. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3483. type: string
  3484. keyring:
  3485. default: /etc/ceph/keyring
  3486. description: |-
  3487. keyring is the path to key ring for RBDUser.
  3488. Default is /etc/ceph/keyring.
  3489. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3490. type: string
  3491. monitors:
  3492. description: |-
  3493. monitors is a collection of Ceph monitors.
  3494. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3495. items:
  3496. type: string
  3497. type: array
  3498. x-kubernetes-list-type: atomic
  3499. pool:
  3500. default: rbd
  3501. description: |-
  3502. pool is the rados pool name.
  3503. Default is rbd.
  3504. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3505. type: string
  3506. readOnly:
  3507. description: |-
  3508. readOnly here will force the ReadOnly setting in VolumeMounts.
  3509. Defaults to false.
  3510. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3511. type: boolean
  3512. secretRef:
  3513. description: |-
  3514. secretRef is name of the authentication secret for RBDUser. If provided
  3515. overrides keyring.
  3516. Default is nil.
  3517. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3518. properties:
  3519. name:
  3520. default: ""
  3521. description: |-
  3522. Name of the referent.
  3523. This field is effectively required, but due to backwards compatibility is
  3524. allowed to be empty. Instances of this type with an empty value here are
  3525. almost certainly wrong.
  3526. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3527. type: string
  3528. type: object
  3529. x-kubernetes-map-type: atomic
  3530. user:
  3531. default: admin
  3532. description: |-
  3533. user is the rados user name.
  3534. Default is admin.
  3535. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  3536. type: string
  3537. required:
  3538. - image
  3539. - monitors
  3540. type: object
  3541. scaleIO:
  3542. description: |-
  3543. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  3544. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  3545. properties:
  3546. fsType:
  3547. default: xfs
  3548. description: |-
  3549. fsType is the filesystem type to mount.
  3550. Must be a filesystem type supported by the host operating system.
  3551. Ex. "ext4", "xfs", "ntfs".
  3552. Default is "xfs".
  3553. type: string
  3554. gateway:
  3555. description: gateway is the host address of
  3556. the ScaleIO API Gateway.
  3557. type: string
  3558. protectionDomain:
  3559. description: protectionDomain is the name of
  3560. the ScaleIO Protection Domain for the configured
  3561. storage.
  3562. type: string
  3563. readOnly:
  3564. description: |-
  3565. readOnly Defaults to false (read/write). ReadOnly here will force
  3566. the ReadOnly setting in VolumeMounts.
  3567. type: boolean
  3568. secretRef:
  3569. description: |-
  3570. secretRef references to the secret for ScaleIO user and other
  3571. sensitive information. If this is not provided, Login operation will fail.
  3572. properties:
  3573. name:
  3574. default: ""
  3575. description: |-
  3576. Name of the referent.
  3577. This field is effectively required, but due to backwards compatibility is
  3578. allowed to be empty. Instances of this type with an empty value here are
  3579. almost certainly wrong.
  3580. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3581. type: string
  3582. type: object
  3583. x-kubernetes-map-type: atomic
  3584. sslEnabled:
  3585. description: sslEnabled Flag enable/disable
  3586. SSL communication with Gateway, default false
  3587. type: boolean
  3588. storageMode:
  3589. default: ThinProvisioned
  3590. description: |-
  3591. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  3592. Default is ThinProvisioned.
  3593. type: string
  3594. storagePool:
  3595. description: storagePool is the ScaleIO Storage
  3596. Pool associated with the protection domain.
  3597. type: string
  3598. system:
  3599. description: system is the name of the storage
  3600. system as configured in ScaleIO.
  3601. type: string
  3602. volumeName:
  3603. description: |-
  3604. volumeName is the name of a volume already created in the ScaleIO system
  3605. that is associated with this volume source.
  3606. type: string
  3607. required:
  3608. - gateway
  3609. - secretRef
  3610. - system
  3611. type: object
  3612. secret:
  3613. description: |-
  3614. secret represents a secret that should populate this volume.
  3615. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  3616. properties:
  3617. defaultMode:
  3618. description: |-
  3619. defaultMode is Optional: mode bits used to set permissions on created files by default.
  3620. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3621. YAML accepts both octal and decimal values, JSON requires decimal values
  3622. for mode bits. Defaults to 0644.
  3623. Directories within the path are not affected by this setting.
  3624. This might be in conflict with other options that affect the file
  3625. mode, like fsGroup, and the result can be other mode bits set.
  3626. format: int32
  3627. type: integer
  3628. items:
  3629. description: |-
  3630. items If unspecified, each key-value pair in the Data field of the referenced
  3631. Secret will be projected into the volume as a file whose name is the
  3632. key and content is the value. If specified, the listed keys will be
  3633. projected into the specified paths, and unlisted keys will not be
  3634. present. If a key is specified which is not present in the Secret,
  3635. the volume setup will error unless it is marked optional. Paths must be
  3636. relative and may not contain the '..' path or start with '..'.
  3637. items:
  3638. description: Maps a string key to a path within
  3639. a volume.
  3640. properties:
  3641. key:
  3642. description: key is the key to project.
  3643. type: string
  3644. mode:
  3645. description: |-
  3646. mode is Optional: mode bits used to set permissions on this file.
  3647. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  3648. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  3649. If not specified, the volume defaultMode will be used.
  3650. This might be in conflict with other options that affect the file
  3651. mode, like fsGroup, and the result can be other mode bits set.
  3652. format: int32
  3653. type: integer
  3654. path:
  3655. description: |-
  3656. path is the relative path of the file to map the key to.
  3657. May not be an absolute path.
  3658. May not contain the path element '..'.
  3659. May not start with the string '..'.
  3660. type: string
  3661. required:
  3662. - key
  3663. - path
  3664. type: object
  3665. type: array
  3666. x-kubernetes-list-type: atomic
  3667. optional:
  3668. description: optional field specify whether
  3669. the Secret or its keys must be defined
  3670. type: boolean
  3671. secretName:
  3672. description: |-
  3673. secretName is the name of the secret in the pod's namespace to use.
  3674. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  3675. type: string
  3676. type: object
  3677. storageos:
  3678. description: |-
  3679. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  3680. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  3681. properties:
  3682. fsType:
  3683. description: |-
  3684. fsType is the filesystem type to mount.
  3685. Must be a filesystem type supported by the host operating system.
  3686. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3687. type: string
  3688. readOnly:
  3689. description: |-
  3690. readOnly defaults to false (read/write). ReadOnly here will force
  3691. the ReadOnly setting in VolumeMounts.
  3692. type: boolean
  3693. secretRef:
  3694. description: |-
  3695. secretRef specifies the secret to use for obtaining the StorageOS API
  3696. credentials. If not specified, default values will be attempted.
  3697. properties:
  3698. name:
  3699. default: ""
  3700. description: |-
  3701. Name of the referent.
  3702. This field is effectively required, but due to backwards compatibility is
  3703. allowed to be empty. Instances of this type with an empty value here are
  3704. almost certainly wrong.
  3705. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3706. type: string
  3707. type: object
  3708. x-kubernetes-map-type: atomic
  3709. volumeName:
  3710. description: |-
  3711. volumeName is the human-readable name of the StorageOS volume. Volume
  3712. names are only unique within a namespace.
  3713. type: string
  3714. volumeNamespace:
  3715. description: |-
  3716. volumeNamespace specifies the scope of the volume within StorageOS. If no
  3717. namespace is specified then the Pod's namespace will be used. This allows the
  3718. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  3719. Set VolumeName to any name to override the default behaviour.
  3720. Set to "default" if you are not using namespaces within StorageOS.
  3721. Namespaces that do not pre-exist within StorageOS will be created.
  3722. type: string
  3723. type: object
  3724. vsphereVolume:
  3725. description: |-
  3726. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  3727. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  3728. are redirected to the csi.vsphere.vmware.com CSI driver.
  3729. properties:
  3730. fsType:
  3731. description: |-
  3732. fsType is filesystem type to mount.
  3733. Must be a filesystem type supported by the host operating system.
  3734. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  3735. type: string
  3736. storagePolicyID:
  3737. description: storagePolicyID is the storage
  3738. Policy Based Management (SPBM) profile ID
  3739. associated with the StoragePolicyName.
  3740. type: string
  3741. storagePolicyName:
  3742. description: storagePolicyName is the storage
  3743. Policy Based Management (SPBM) profile name.
  3744. type: string
  3745. volumePath:
  3746. description: volumePath is the path that identifies
  3747. vSphere volume vmdk
  3748. type: string
  3749. required:
  3750. - volumePath
  3751. type: object
  3752. required:
  3753. - name
  3754. type: object
  3755. type: array
  3756. type: object
  3757. required:
  3758. - name
  3759. type: object
  3760. type: object
  3761. gateway:
  3762. description: gateway defines the configuration overrides for the stack's
  3763. gateway component.
  3764. properties:
  3765. enabled:
  3766. description: enabled indicates whether the component should be
  3767. deployed for the stack.
  3768. type: boolean
  3769. template:
  3770. description: template holds the configuration overrides for the
  3771. component.
  3772. properties:
  3773. metadata:
  3774. description: metadata is a standard object metadata.
  3775. type: object
  3776. name:
  3777. description: name selects a built-in preset.
  3778. type: string
  3779. spec:
  3780. description: spec holds the pod-level configuration for the
  3781. workload.
  3782. properties:
  3783. affinity:
  3784. description: affinity provides fine-grained node and pod
  3785. (anti-)affinity rules.
  3786. properties:
  3787. nodeAffinity:
  3788. description: Describes node affinity scheduling rules
  3789. for the pod.
  3790. properties:
  3791. preferredDuringSchedulingIgnoredDuringExecution:
  3792. description: |-
  3793. The scheduler will prefer to schedule pods to nodes that satisfy
  3794. the affinity expressions specified by this field, but it may choose
  3795. a node that violates one or more of the expressions. The node that is
  3796. most preferred is the one with the greatest sum of weights, i.e.
  3797. for each node that meets all of the scheduling requirements (resource
  3798. request, requiredDuringScheduling affinity expressions, etc.),
  3799. compute a sum by iterating through the elements of this field and adding
  3800. "weight" to the sum if the node matches the corresponding matchExpressions; the
  3801. node(s) with the highest sum are the most preferred.
  3802. items:
  3803. description: |-
  3804. An empty preferred scheduling term matches all objects with implicit weight 0
  3805. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3806. properties:
  3807. preference:
  3808. description: A node selector term, associated
  3809. with the corresponding weight.
  3810. properties:
  3811. matchExpressions:
  3812. description: A list of node selector
  3813. requirements by node's labels.
  3814. items:
  3815. description: |-
  3816. A node selector requirement is a selector that contains values, a key, and an operator
  3817. that relates the key and values.
  3818. properties:
  3819. key:
  3820. description: The label key that
  3821. the selector applies to.
  3822. type: string
  3823. operator:
  3824. description: |-
  3825. Represents a key's relationship to a set of values.
  3826. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3827. type: string
  3828. values:
  3829. description: |-
  3830. An array of string values. If the operator is In or NotIn,
  3831. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3832. the values array must be empty. If the operator is Gt or Lt, the values
  3833. array must have a single element, which will be interpreted as an integer.
  3834. This array is replaced during a strategic merge patch.
  3835. items:
  3836. type: string
  3837. type: array
  3838. x-kubernetes-list-type: atomic
  3839. required:
  3840. - key
  3841. - operator
  3842. type: object
  3843. type: array
  3844. x-kubernetes-list-type: atomic
  3845. matchFields:
  3846. description: A list of node selector
  3847. requirements by node's fields.
  3848. items:
  3849. description: |-
  3850. A node selector requirement is a selector that contains values, a key, and an operator
  3851. that relates the key and values.
  3852. properties:
  3853. key:
  3854. description: The label key that
  3855. the selector applies to.
  3856. type: string
  3857. operator:
  3858. description: |-
  3859. Represents a key's relationship to a set of values.
  3860. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3861. type: string
  3862. values:
  3863. description: |-
  3864. An array of string values. If the operator is In or NotIn,
  3865. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3866. the values array must be empty. If the operator is Gt or Lt, the values
  3867. array must have a single element, which will be interpreted as an integer.
  3868. This array is replaced during a strategic merge patch.
  3869. items:
  3870. type: string
  3871. type: array
  3872. x-kubernetes-list-type: atomic
  3873. required:
  3874. - key
  3875. - operator
  3876. type: object
  3877. type: array
  3878. x-kubernetes-list-type: atomic
  3879. type: object
  3880. x-kubernetes-map-type: atomic
  3881. weight:
  3882. description: Weight associated with matching
  3883. the corresponding nodeSelectorTerm, in
  3884. the range 1-100.
  3885. format: int32
  3886. type: integer
  3887. required:
  3888. - preference
  3889. - weight
  3890. type: object
  3891. type: array
  3892. x-kubernetes-list-type: atomic
  3893. requiredDuringSchedulingIgnoredDuringExecution:
  3894. description: |-
  3895. If the affinity requirements specified by this field are not met at
  3896. scheduling time, the pod will not be scheduled onto the node.
  3897. If the affinity requirements specified by this field cease to be met
  3898. at some point during pod execution (e.g. due to an update), the system
  3899. may or may not try to eventually evict the pod from its node.
  3900. properties:
  3901. nodeSelectorTerms:
  3902. description: Required. A list of node selector
  3903. terms. The terms are ORed.
  3904. items:
  3905. description: |-
  3906. A null or empty node selector term matches no objects. The requirements of
  3907. them are ANDed.
  3908. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  3909. properties:
  3910. matchExpressions:
  3911. description: A list of node selector
  3912. requirements by node's labels.
  3913. items:
  3914. description: |-
  3915. A node selector requirement is a selector that contains values, a key, and an operator
  3916. that relates the key and values.
  3917. properties:
  3918. key:
  3919. description: The label key that
  3920. the selector applies to.
  3921. type: string
  3922. operator:
  3923. description: |-
  3924. Represents a key's relationship to a set of values.
  3925. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3926. type: string
  3927. values:
  3928. description: |-
  3929. An array of string values. If the operator is In or NotIn,
  3930. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3931. the values array must be empty. If the operator is Gt or Lt, the values
  3932. array must have a single element, which will be interpreted as an integer.
  3933. This array is replaced during a strategic merge patch.
  3934. items:
  3935. type: string
  3936. type: array
  3937. x-kubernetes-list-type: atomic
  3938. required:
  3939. - key
  3940. - operator
  3941. type: object
  3942. type: array
  3943. x-kubernetes-list-type: atomic
  3944. matchFields:
  3945. description: A list of node selector
  3946. requirements by node's fields.
  3947. items:
  3948. description: |-
  3949. A node selector requirement is a selector that contains values, a key, and an operator
  3950. that relates the key and values.
  3951. properties:
  3952. key:
  3953. description: The label key that
  3954. the selector applies to.
  3955. type: string
  3956. operator:
  3957. description: |-
  3958. Represents a key's relationship to a set of values.
  3959. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3960. type: string
  3961. values:
  3962. description: |-
  3963. An array of string values. If the operator is In or NotIn,
  3964. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3965. the values array must be empty. If the operator is Gt or Lt, the values
  3966. array must have a single element, which will be interpreted as an integer.
  3967. This array is replaced during a strategic merge patch.
  3968. items:
  3969. type: string
  3970. type: array
  3971. x-kubernetes-list-type: atomic
  3972. required:
  3973. - key
  3974. - operator
  3975. type: object
  3976. type: array
  3977. x-kubernetes-list-type: atomic
  3978. type: object
  3979. x-kubernetes-map-type: atomic
  3980. type: array
  3981. x-kubernetes-list-type: atomic
  3982. required:
  3983. - nodeSelectorTerms
  3984. type: object
  3985. x-kubernetes-map-type: atomic
  3986. type: object
  3987. podAffinity:
  3988. description: Describes pod affinity scheduling rules
  3989. (e.g. co-locate this pod in the same node, zone,
  3990. etc. as some other pod(s)).
  3991. properties:
  3992. preferredDuringSchedulingIgnoredDuringExecution:
  3993. description: |-
  3994. The scheduler will prefer to schedule pods to nodes that satisfy
  3995. the affinity expressions specified by this field, but it may choose
  3996. a node that violates one or more of the expressions. The node that is
  3997. most preferred is the one with the greatest sum of weights, i.e.
  3998. for each node that meets all of the scheduling requirements (resource
  3999. request, requiredDuringScheduling affinity expressions, etc.),
  4000. compute a sum by iterating through the elements of this field and adding
  4001. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  4002. node(s) with the highest sum are the most preferred.
  4003. items:
  4004. description: The weights of all of the matched
  4005. WeightedPodAffinityTerm fields are added per-node
  4006. to find the most preferred node(s)
  4007. properties:
  4008. podAffinityTerm:
  4009. description: Required. A pod affinity term,
  4010. associated with the corresponding weight.
  4011. properties:
  4012. labelSelector:
  4013. description: |-
  4014. A label query over a set of resources, in this case pods.
  4015. If it's null, this PodAffinityTerm matches with no Pods.
  4016. properties:
  4017. matchExpressions:
  4018. description: matchExpressions is
  4019. a list of label selector requirements.
  4020. The requirements are ANDed.
  4021. items:
  4022. description: |-
  4023. A label selector requirement is a selector that contains values, a key, and an operator that
  4024. relates the key and values.
  4025. properties:
  4026. key:
  4027. description: key is the label
  4028. key that the selector applies
  4029. to.
  4030. type: string
  4031. operator:
  4032. description: |-
  4033. operator represents a key's relationship to a set of values.
  4034. Valid operators are In, NotIn, Exists and DoesNotExist.
  4035. type: string
  4036. values:
  4037. description: |-
  4038. values is an array of string values. If the operator is In or NotIn,
  4039. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4040. the values array must be empty. This array is replaced during a strategic
  4041. merge patch.
  4042. items:
  4043. type: string
  4044. type: array
  4045. x-kubernetes-list-type: atomic
  4046. required:
  4047. - key
  4048. - operator
  4049. type: object
  4050. type: array
  4051. x-kubernetes-list-type: atomic
  4052. matchLabels:
  4053. additionalProperties:
  4054. type: string
  4055. description: |-
  4056. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4057. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4058. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4059. type: object
  4060. type: object
  4061. x-kubernetes-map-type: atomic
  4062. matchLabelKeys:
  4063. description: |-
  4064. MatchLabelKeys is a set of pod label keys to select which pods will
  4065. be taken into consideration. The keys are used to lookup values from the
  4066. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  4067. to select the group of existing pods which pods will be taken into consideration
  4068. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4069. pod labels will be ignored. The default value is empty.
  4070. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  4071. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  4072. items:
  4073. type: string
  4074. type: array
  4075. x-kubernetes-list-type: atomic
  4076. mismatchLabelKeys:
  4077. description: |-
  4078. MismatchLabelKeys is a set of pod label keys to select which pods will
  4079. be taken into consideration. The keys are used to lookup values from the
  4080. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  4081. to select the group of existing pods which pods will be taken into consideration
  4082. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4083. pod labels will be ignored. The default value is empty.
  4084. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  4085. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  4086. items:
  4087. type: string
  4088. type: array
  4089. x-kubernetes-list-type: atomic
  4090. namespaceSelector:
  4091. description: |-
  4092. A label query over the set of namespaces that the term applies to.
  4093. The term is applied to the union of the namespaces selected by this field
  4094. and the ones listed in the namespaces field.
  4095. null selector and null or empty namespaces list means "this pod's namespace".
  4096. An empty selector ({}) matches all namespaces.
  4097. properties:
  4098. matchExpressions:
  4099. description: matchExpressions is
  4100. a list of label selector requirements.
  4101. The requirements are ANDed.
  4102. items:
  4103. description: |-
  4104. A label selector requirement is a selector that contains values, a key, and an operator that
  4105. relates the key and values.
  4106. properties:
  4107. key:
  4108. description: key is the label
  4109. key that the selector applies
  4110. to.
  4111. type: string
  4112. operator:
  4113. description: |-
  4114. operator represents a key's relationship to a set of values.
  4115. Valid operators are In, NotIn, Exists and DoesNotExist.
  4116. type: string
  4117. values:
  4118. description: |-
  4119. values is an array of string values. If the operator is In or NotIn,
  4120. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4121. the values array must be empty. This array is replaced during a strategic
  4122. merge patch.
  4123. items:
  4124. type: string
  4125. type: array
  4126. x-kubernetes-list-type: atomic
  4127. required:
  4128. - key
  4129. - operator
  4130. type: object
  4131. type: array
  4132. x-kubernetes-list-type: atomic
  4133. matchLabels:
  4134. additionalProperties:
  4135. type: string
  4136. description: |-
  4137. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4138. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4139. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4140. type: object
  4141. type: object
  4142. x-kubernetes-map-type: atomic
  4143. namespaces:
  4144. description: |-
  4145. namespaces specifies a static list of namespace names that the term applies to.
  4146. The term is applied to the union of the namespaces listed in this field
  4147. and the ones selected by namespaceSelector.
  4148. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4149. items:
  4150. type: string
  4151. type: array
  4152. x-kubernetes-list-type: atomic
  4153. topologyKey:
  4154. description: |-
  4155. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  4156. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  4157. whose value of the label with key topologyKey matches that of any node on which any of the
  4158. selected pods is running.
  4159. Empty topologyKey is not allowed.
  4160. type: string
  4161. required:
  4162. - topologyKey
  4163. type: object
  4164. weight:
  4165. description: |-
  4166. weight associated with matching the corresponding podAffinityTerm,
  4167. in the range 1-100.
  4168. format: int32
  4169. type: integer
  4170. required:
  4171. - podAffinityTerm
  4172. - weight
  4173. type: object
  4174. type: array
  4175. x-kubernetes-list-type: atomic
  4176. requiredDuringSchedulingIgnoredDuringExecution:
  4177. description: |-
  4178. If the affinity requirements specified by this field are not met at
  4179. scheduling time, the pod will not be scheduled onto the node.
  4180. If the affinity requirements specified by this field cease to be met
  4181. at some point during pod execution (e.g. due to a pod label update), the
  4182. system may or may not try to eventually evict the pod from its node.
  4183. When there are multiple elements, the lists of nodes corresponding to each
  4184. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4185. items:
  4186. description: |-
  4187. Defines a set of pods (namely those matching the labelSelector
  4188. relative to the given namespace(s)) that this pod should be
  4189. co-located (affinity) or not co-located (anti-affinity) with,
  4190. where co-located is defined as running on a node whose value of
  4191. the label with key <topologyKey> matches that of any node on which
  4192. a pod of the set of pods is running
  4193. properties:
  4194. labelSelector:
  4195. description: |-
  4196. A label query over a set of resources, in this case pods.
  4197. If it's null, this PodAffinityTerm matches with no Pods.
  4198. properties:
  4199. matchExpressions:
  4200. description: matchExpressions is a list
  4201. of label selector requirements. The
  4202. requirements are ANDed.
  4203. items:
  4204. description: |-
  4205. A label selector requirement is a selector that contains values, a key, and an operator that
  4206. relates the key and values.
  4207. properties:
  4208. key:
  4209. description: key is the label
  4210. key that the selector applies
  4211. to.
  4212. type: string
  4213. operator:
  4214. description: |-
  4215. operator represents a key's relationship to a set of values.
  4216. Valid operators are In, NotIn, Exists and DoesNotExist.
  4217. type: string
  4218. values:
  4219. description: |-
  4220. values is an array of string values. If the operator is In or NotIn,
  4221. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4222. the values array must be empty. This array is replaced during a strategic
  4223. merge patch.
  4224. items:
  4225. type: string
  4226. type: array
  4227. x-kubernetes-list-type: atomic
  4228. required:
  4229. - key
  4230. - operator
  4231. type: object
  4232. type: array
  4233. x-kubernetes-list-type: atomic
  4234. matchLabels:
  4235. additionalProperties:
  4236. type: string
  4237. description: |-
  4238. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4239. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4240. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4241. type: object
  4242. type: object
  4243. x-kubernetes-map-type: atomic
  4244. matchLabelKeys:
  4245. description: |-
  4246. MatchLabelKeys is a set of pod label keys to select which pods will
  4247. be taken into consideration. The keys are used to lookup values from the
  4248. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  4249. to select the group of existing pods which pods will be taken into consideration
  4250. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4251. pod labels will be ignored. The default value is empty.
  4252. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  4253. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  4254. items:
  4255. type: string
  4256. type: array
  4257. x-kubernetes-list-type: atomic
  4258. mismatchLabelKeys:
  4259. description: |-
  4260. MismatchLabelKeys is a set of pod label keys to select which pods will
  4261. be taken into consideration. The keys are used to lookup values from the
  4262. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  4263. to select the group of existing pods which pods will be taken into consideration
  4264. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4265. pod labels will be ignored. The default value is empty.
  4266. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  4267. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  4268. items:
  4269. type: string
  4270. type: array
  4271. x-kubernetes-list-type: atomic
  4272. namespaceSelector:
  4273. description: |-
  4274. A label query over the set of namespaces that the term applies to.
  4275. The term is applied to the union of the namespaces selected by this field
  4276. and the ones listed in the namespaces field.
  4277. null selector and null or empty namespaces list means "this pod's namespace".
  4278. An empty selector ({}) matches all namespaces.
  4279. properties:
  4280. matchExpressions:
  4281. description: matchExpressions is a list
  4282. of label selector requirements. The
  4283. requirements are ANDed.
  4284. items:
  4285. description: |-
  4286. A label selector requirement is a selector that contains values, a key, and an operator that
  4287. relates the key and values.
  4288. properties:
  4289. key:
  4290. description: key is the label
  4291. key that the selector applies
  4292. to.
  4293. type: string
  4294. operator:
  4295. description: |-
  4296. operator represents a key's relationship to a set of values.
  4297. Valid operators are In, NotIn, Exists and DoesNotExist.
  4298. type: string
  4299. values:
  4300. description: |-
  4301. values is an array of string values. If the operator is In or NotIn,
  4302. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4303. the values array must be empty. This array is replaced during a strategic
  4304. merge patch.
  4305. items:
  4306. type: string
  4307. type: array
  4308. x-kubernetes-list-type: atomic
  4309. required:
  4310. - key
  4311. - operator
  4312. type: object
  4313. type: array
  4314. x-kubernetes-list-type: atomic
  4315. matchLabels:
  4316. additionalProperties:
  4317. type: string
  4318. description: |-
  4319. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4320. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4321. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4322. type: object
  4323. type: object
  4324. x-kubernetes-map-type: atomic
  4325. namespaces:
  4326. description: |-
  4327. namespaces specifies a static list of namespace names that the term applies to.
  4328. The term is applied to the union of the namespaces listed in this field
  4329. and the ones selected by namespaceSelector.
  4330. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4331. items:
  4332. type: string
  4333. type: array
  4334. x-kubernetes-list-type: atomic
  4335. topologyKey:
  4336. description: |-
  4337. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  4338. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  4339. whose value of the label with key topologyKey matches that of any node on which any of the
  4340. selected pods is running.
  4341. Empty topologyKey is not allowed.
  4342. type: string
  4343. required:
  4344. - topologyKey
  4345. type: object
  4346. type: array
  4347. x-kubernetes-list-type: atomic
  4348. type: object
  4349. podAntiAffinity:
  4350. description: Describes pod anti-affinity scheduling
  4351. rules (e.g. avoid putting this pod in the same node,
  4352. zone, etc. as some other pod(s)).
  4353. properties:
  4354. preferredDuringSchedulingIgnoredDuringExecution:
  4355. description: |-
  4356. The scheduler will prefer to schedule pods to nodes that satisfy
  4357. the anti-affinity expressions specified by this field, but it may choose
  4358. a node that violates one or more of the expressions. The node that is
  4359. most preferred is the one with the greatest sum of weights, i.e.
  4360. for each node that meets all of the scheduling requirements (resource
  4361. request, requiredDuringScheduling anti-affinity expressions, etc.),
  4362. compute a sum by iterating through the elements of this field and subtracting
  4363. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  4364. node(s) with the highest sum are the most preferred.
  4365. items:
  4366. description: The weights of all of the matched
  4367. WeightedPodAffinityTerm fields are added per-node
  4368. to find the most preferred node(s)
  4369. properties:
  4370. podAffinityTerm:
  4371. description: Required. A pod affinity term,
  4372. associated with the corresponding weight.
  4373. properties:
  4374. labelSelector:
  4375. description: |-
  4376. A label query over a set of resources, in this case pods.
  4377. If it's null, this PodAffinityTerm matches with no Pods.
  4378. properties:
  4379. matchExpressions:
  4380. description: matchExpressions is
  4381. a list of label selector requirements.
  4382. The requirements are ANDed.
  4383. items:
  4384. description: |-
  4385. A label selector requirement is a selector that contains values, a key, and an operator that
  4386. relates the key and values.
  4387. properties:
  4388. key:
  4389. description: key is the label
  4390. key that the selector applies
  4391. to.
  4392. type: string
  4393. operator:
  4394. description: |-
  4395. operator represents a key's relationship to a set of values.
  4396. Valid operators are In, NotIn, Exists and DoesNotExist.
  4397. type: string
  4398. values:
  4399. description: |-
  4400. values is an array of string values. If the operator is In or NotIn,
  4401. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4402. the values array must be empty. This array is replaced during a strategic
  4403. merge patch.
  4404. items:
  4405. type: string
  4406. type: array
  4407. x-kubernetes-list-type: atomic
  4408. required:
  4409. - key
  4410. - operator
  4411. type: object
  4412. type: array
  4413. x-kubernetes-list-type: atomic
  4414. matchLabels:
  4415. additionalProperties:
  4416. type: string
  4417. description: |-
  4418. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4419. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4420. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4421. type: object
  4422. type: object
  4423. x-kubernetes-map-type: atomic
  4424. matchLabelKeys:
  4425. description: |-
  4426. MatchLabelKeys is a set of pod label keys to select which pods will
  4427. be taken into consideration. The keys are used to lookup values from the
  4428. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  4429. to select the group of existing pods which pods will be taken into consideration
  4430. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4431. pod labels will be ignored. The default value is empty.
  4432. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  4433. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  4434. items:
  4435. type: string
  4436. type: array
  4437. x-kubernetes-list-type: atomic
  4438. mismatchLabelKeys:
  4439. description: |-
  4440. MismatchLabelKeys is a set of pod label keys to select which pods will
  4441. be taken into consideration. The keys are used to lookup values from the
  4442. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  4443. to select the group of existing pods which pods will be taken into consideration
  4444. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4445. pod labels will be ignored. The default value is empty.
  4446. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  4447. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  4448. items:
  4449. type: string
  4450. type: array
  4451. x-kubernetes-list-type: atomic
  4452. namespaceSelector:
  4453. description: |-
  4454. A label query over the set of namespaces that the term applies to.
  4455. The term is applied to the union of the namespaces selected by this field
  4456. and the ones listed in the namespaces field.
  4457. null selector and null or empty namespaces list means "this pod's namespace".
  4458. An empty selector ({}) matches all namespaces.
  4459. properties:
  4460. matchExpressions:
  4461. description: matchExpressions is
  4462. a list of label selector requirements.
  4463. The requirements are ANDed.
  4464. items:
  4465. description: |-
  4466. A label selector requirement is a selector that contains values, a key, and an operator that
  4467. relates the key and values.
  4468. properties:
  4469. key:
  4470. description: key is the label
  4471. key that the selector applies
  4472. to.
  4473. type: string
  4474. operator:
  4475. description: |-
  4476. operator represents a key's relationship to a set of values.
  4477. Valid operators are In, NotIn, Exists and DoesNotExist.
  4478. type: string
  4479. values:
  4480. description: |-
  4481. values is an array of string values. If the operator is In or NotIn,
  4482. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4483. the values array must be empty. This array is replaced during a strategic
  4484. merge patch.
  4485. items:
  4486. type: string
  4487. type: array
  4488. x-kubernetes-list-type: atomic
  4489. required:
  4490. - key
  4491. - operator
  4492. type: object
  4493. type: array
  4494. x-kubernetes-list-type: atomic
  4495. matchLabels:
  4496. additionalProperties:
  4497. type: string
  4498. description: |-
  4499. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4500. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4501. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4502. type: object
  4503. type: object
  4504. x-kubernetes-map-type: atomic
  4505. namespaces:
  4506. description: |-
  4507. namespaces specifies a static list of namespace names that the term applies to.
  4508. The term is applied to the union of the namespaces listed in this field
  4509. and the ones selected by namespaceSelector.
  4510. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4511. items:
  4512. type: string
  4513. type: array
  4514. x-kubernetes-list-type: atomic
  4515. topologyKey:
  4516. description: |-
  4517. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  4518. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  4519. whose value of the label with key topologyKey matches that of any node on which any of the
  4520. selected pods is running.
  4521. Empty topologyKey is not allowed.
  4522. type: string
  4523. required:
  4524. - topologyKey
  4525. type: object
  4526. weight:
  4527. description: |-
  4528. weight associated with matching the corresponding podAffinityTerm,
  4529. in the range 1-100.
  4530. format: int32
  4531. type: integer
  4532. required:
  4533. - podAffinityTerm
  4534. - weight
  4535. type: object
  4536. type: array
  4537. x-kubernetes-list-type: atomic
  4538. requiredDuringSchedulingIgnoredDuringExecution:
  4539. description: |-
  4540. If the anti-affinity requirements specified by this field are not met at
  4541. scheduling time, the pod will not be scheduled onto the node.
  4542. If the anti-affinity requirements specified by this field cease to be met
  4543. at some point during pod execution (e.g. due to a pod label update), the
  4544. system may or may not try to eventually evict the pod from its node.
  4545. When there are multiple elements, the lists of nodes corresponding to each
  4546. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4547. items:
  4548. description: |-
  4549. Defines a set of pods (namely those matching the labelSelector
  4550. relative to the given namespace(s)) that this pod should be
  4551. co-located (affinity) or not co-located (anti-affinity) with,
  4552. where co-located is defined as running on a node whose value of
  4553. the label with key <topologyKey> matches that of any node on which
  4554. a pod of the set of pods is running
  4555. properties:
  4556. labelSelector:
  4557. description: |-
  4558. A label query over a set of resources, in this case pods.
  4559. If it's null, this PodAffinityTerm matches with no Pods.
  4560. properties:
  4561. matchExpressions:
  4562. description: matchExpressions is a list
  4563. of label selector requirements. The
  4564. requirements are ANDed.
  4565. items:
  4566. description: |-
  4567. A label selector requirement is a selector that contains values, a key, and an operator that
  4568. relates the key and values.
  4569. properties:
  4570. key:
  4571. description: key is the label
  4572. key that the selector applies
  4573. to.
  4574. type: string
  4575. operator:
  4576. description: |-
  4577. operator represents a key's relationship to a set of values.
  4578. Valid operators are In, NotIn, Exists and DoesNotExist.
  4579. type: string
  4580. values:
  4581. description: |-
  4582. values is an array of string values. If the operator is In or NotIn,
  4583. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4584. the values array must be empty. This array is replaced during a strategic
  4585. merge patch.
  4586. items:
  4587. type: string
  4588. type: array
  4589. x-kubernetes-list-type: atomic
  4590. required:
  4591. - key
  4592. - operator
  4593. type: object
  4594. type: array
  4595. x-kubernetes-list-type: atomic
  4596. matchLabels:
  4597. additionalProperties:
  4598. type: string
  4599. description: |-
  4600. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4601. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4602. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4603. type: object
  4604. type: object
  4605. x-kubernetes-map-type: atomic
  4606. matchLabelKeys:
  4607. description: |-
  4608. MatchLabelKeys is a set of pod label keys to select which pods will
  4609. be taken into consideration. The keys are used to lookup values from the
  4610. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  4611. to select the group of existing pods which pods will be taken into consideration
  4612. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4613. pod labels will be ignored. The default value is empty.
  4614. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  4615. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  4616. items:
  4617. type: string
  4618. type: array
  4619. x-kubernetes-list-type: atomic
  4620. mismatchLabelKeys:
  4621. description: |-
  4622. MismatchLabelKeys is a set of pod label keys to select which pods will
  4623. be taken into consideration. The keys are used to lookup values from the
  4624. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  4625. to select the group of existing pods which pods will be taken into consideration
  4626. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  4627. pod labels will be ignored. The default value is empty.
  4628. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  4629. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  4630. items:
  4631. type: string
  4632. type: array
  4633. x-kubernetes-list-type: atomic
  4634. namespaceSelector:
  4635. description: |-
  4636. A label query over the set of namespaces that the term applies to.
  4637. The term is applied to the union of the namespaces selected by this field
  4638. and the ones listed in the namespaces field.
  4639. null selector and null or empty namespaces list means "this pod's namespace".
  4640. An empty selector ({}) matches all namespaces.
  4641. properties:
  4642. matchExpressions:
  4643. description: matchExpressions is a list
  4644. of label selector requirements. The
  4645. requirements are ANDed.
  4646. items:
  4647. description: |-
  4648. A label selector requirement is a selector that contains values, a key, and an operator that
  4649. relates the key and values.
  4650. properties:
  4651. key:
  4652. description: key is the label
  4653. key that the selector applies
  4654. to.
  4655. type: string
  4656. operator:
  4657. description: |-
  4658. operator represents a key's relationship to a set of values.
  4659. Valid operators are In, NotIn, Exists and DoesNotExist.
  4660. type: string
  4661. values:
  4662. description: |-
  4663. values is an array of string values. If the operator is In or NotIn,
  4664. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4665. the values array must be empty. This array is replaced during a strategic
  4666. merge patch.
  4667. items:
  4668. type: string
  4669. type: array
  4670. x-kubernetes-list-type: atomic
  4671. required:
  4672. - key
  4673. - operator
  4674. type: object
  4675. type: array
  4676. x-kubernetes-list-type: atomic
  4677. matchLabels:
  4678. additionalProperties:
  4679. type: string
  4680. description: |-
  4681. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4682. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4683. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4684. type: object
  4685. type: object
  4686. x-kubernetes-map-type: atomic
  4687. namespaces:
  4688. description: |-
  4689. namespaces specifies a static list of namespace names that the term applies to.
  4690. The term is applied to the union of the namespaces listed in this field
  4691. and the ones selected by namespaceSelector.
  4692. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4693. items:
  4694. type: string
  4695. type: array
  4696. x-kubernetes-list-type: atomic
  4697. topologyKey:
  4698. description: |-
  4699. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  4700. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  4701. whose value of the label with key topologyKey matches that of any node on which any of the
  4702. selected pods is running.
  4703. Empty topologyKey is not allowed.
  4704. type: string
  4705. required:
  4706. - topologyKey
  4707. type: object
  4708. type: array
  4709. x-kubernetes-list-type: atomic
  4710. type: object
  4711. type: object
  4712. nodeSelector:
  4713. additionalProperties:
  4714. type: string
  4715. description: nodeSelector pins pods to nodes that match
  4716. all the specified labels.
  4717. type: object
  4718. resources:
  4719. description: resources sets per-container resource requests
  4720. and limits.
  4721. properties:
  4722. claims:
  4723. description: |-
  4724. Claims lists the names of resources, defined in spec.resourceClaims,
  4725. that are used by this container.
  4726. This field depends on the
  4727. DynamicResourceAllocation feature gate.
  4728. This field is immutable. It can only be set for containers.
  4729. items:
  4730. description: ResourceClaim references one entry
  4731. in PodSpec.ResourceClaims.
  4732. properties:
  4733. name:
  4734. description: |-
  4735. Name must match the name of one entry in pod.spec.resourceClaims of
  4736. the Pod where this field is used. It makes that resource available
  4737. inside a container.
  4738. type: string
  4739. request:
  4740. description: |-
  4741. Request is the name chosen for a request in the referenced claim.
  4742. If empty, everything from the claim is made available, otherwise
  4743. only the result of this request.
  4744. type: string
  4745. required:
  4746. - name
  4747. type: object
  4748. type: array
  4749. x-kubernetes-list-map-keys:
  4750. - name
  4751. x-kubernetes-list-type: map
  4752. limits:
  4753. additionalProperties:
  4754. anyOf:
  4755. - type: integer
  4756. - type: string
  4757. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4758. x-kubernetes-int-or-string: true
  4759. description: |-
  4760. Limits describes the maximum amount of compute resources allowed.
  4761. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  4762. type: object
  4763. requests:
  4764. additionalProperties:
  4765. anyOf:
  4766. - type: integer
  4767. - type: string
  4768. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4769. x-kubernetes-int-or-string: true
  4770. description: |-
  4771. Requests describes the minimum amount of compute resources required.
  4772. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  4773. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  4774. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  4775. type: object
  4776. type: object
  4777. runtime:
  4778. description: runtime describes the container runtime to
  4779. use for the workload.
  4780. properties:
  4781. args:
  4782. description: args specifies or overrides the preset's
  4783. container command.
  4784. items:
  4785. type: string
  4786. type: array
  4787. command:
  4788. description: command specifies or overrides the preset's
  4789. container entrypoint.
  4790. items:
  4791. type: string
  4792. type: array
  4793. conditionalArgs:
  4794. description: conditionalArgs are appended to the preset
  4795. command conditionally.
  4796. items:
  4797. properties:
  4798. args:
  4799. description: args are appended to the preset
  4800. args.
  4801. items:
  4802. type: string
  4803. type: array
  4804. when:
  4805. description: when the value is not empty after
  4806. variable substitution, the args are appended
  4807. to the preset args.
  4808. type: string
  4809. required:
  4810. - args
  4811. - when
  4812. type: object
  4813. type: array
  4814. env:
  4815. description: env holds environment variables injected
  4816. into the container.
  4817. items:
  4818. description: EnvVar represents an environment variable
  4819. present in a Container.
  4820. properties:
  4821. name:
  4822. description: |-
  4823. Name of the environment variable.
  4824. May consist of any printable ASCII characters except '='.
  4825. type: string
  4826. value:
  4827. description: |-
  4828. Variable references $(VAR_NAME) are expanded
  4829. using the previously defined environment variables in the container and
  4830. any service environment variables. If a variable cannot be resolved,
  4831. the reference in the input string will be unchanged. Double $$ are reduced
  4832. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  4833. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  4834. Escaped references will never be expanded, regardless of whether the variable
  4835. exists or not.
  4836. Defaults to "".
  4837. type: string
  4838. valueFrom:
  4839. description: Source for the environment variable's
  4840. value. Cannot be used if value is not empty.
  4841. properties:
  4842. configMapKeyRef:
  4843. description: Selects a key of a ConfigMap.
  4844. properties:
  4845. key:
  4846. description: The key to select.
  4847. type: string
  4848. name:
  4849. default: ""
  4850. description: |-
  4851. Name of the referent.
  4852. This field is effectively required, but due to backwards compatibility is
  4853. allowed to be empty. Instances of this type with an empty value here are
  4854. almost certainly wrong.
  4855. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4856. type: string
  4857. optional:
  4858. description: Specify whether the ConfigMap
  4859. or its key must be defined
  4860. type: boolean
  4861. required:
  4862. - key
  4863. type: object
  4864. x-kubernetes-map-type: atomic
  4865. fieldRef:
  4866. description: |-
  4867. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  4868. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  4869. properties:
  4870. apiVersion:
  4871. description: Version of the schema the
  4872. FieldPath is written in terms of,
  4873. defaults to "v1".
  4874. type: string
  4875. fieldPath:
  4876. description: Path of the field to select
  4877. in the specified API version.
  4878. type: string
  4879. required:
  4880. - fieldPath
  4881. type: object
  4882. x-kubernetes-map-type: atomic
  4883. fileKeyRef:
  4884. description: |-
  4885. FileKeyRef selects a key of the env file.
  4886. Requires the EnvFiles feature gate to be enabled.
  4887. properties:
  4888. key:
  4889. description: |-
  4890. The key within the env file. An invalid key will prevent the pod from starting.
  4891. The keys defined within a source may consist of any printable ASCII characters except '='.
  4892. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  4893. type: string
  4894. optional:
  4895. default: false
  4896. description: |-
  4897. Specify whether the file or its key must be defined. If the file or key
  4898. does not exist, then the env var is not published.
  4899. If optional is set to true and the specified key does not exist,
  4900. the environment variable will not be set in the Pod's containers.
  4901. If optional is set to false and the specified key does not exist,
  4902. an error will be returned during Pod creation.
  4903. type: boolean
  4904. path:
  4905. description: |-
  4906. The path within the volume from which to select the file.
  4907. Must be relative and may not contain the '..' path or start with '..'.
  4908. type: string
  4909. volumeName:
  4910. description: The name of the volume
  4911. mount containing the env file.
  4912. type: string
  4913. required:
  4914. - key
  4915. - path
  4916. - volumeName
  4917. type: object
  4918. x-kubernetes-map-type: atomic
  4919. resourceFieldRef:
  4920. description: |-
  4921. Selects a resource of the container: only resources limits and requests
  4922. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  4923. properties:
  4924. containerName:
  4925. description: 'Container name: required
  4926. for volumes, optional for env vars'
  4927. type: string
  4928. divisor:
  4929. anyOf:
  4930. - type: integer
  4931. - type: string
  4932. description: Specifies the output format
  4933. of the exposed resources, defaults
  4934. to "1"
  4935. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4936. x-kubernetes-int-or-string: true
  4937. resource:
  4938. description: 'Required: resource to
  4939. select'
  4940. type: string
  4941. required:
  4942. - resource
  4943. type: object
  4944. x-kubernetes-map-type: atomic
  4945. secretKeyRef:
  4946. description: Selects a key of a secret in
  4947. the pod's namespace
  4948. properties:
  4949. key:
  4950. description: The key of the secret to
  4951. select from. Must be a valid secret
  4952. key.
  4953. type: string
  4954. name:
  4955. default: ""
  4956. description: |-
  4957. Name of the referent.
  4958. This field is effectively required, but due to backwards compatibility is
  4959. allowed to be empty. Instances of this type with an empty value here are
  4960. almost certainly wrong.
  4961. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4962. type: string
  4963. optional:
  4964. description: Specify whether the Secret
  4965. or its key must be defined
  4966. type: boolean
  4967. required:
  4968. - key
  4969. type: object
  4970. x-kubernetes-map-type: atomic
  4971. type: object
  4972. required:
  4973. - name
  4974. type: object
  4975. type: array
  4976. envFrom:
  4977. description: envFrom references ConfigMaps or Secrets
  4978. whose key-value pairs are injected as environment
  4979. variables.
  4980. items:
  4981. description: EnvFromSource represents the source
  4982. of a set of ConfigMaps or Secrets
  4983. properties:
  4984. configMapRef:
  4985. description: The ConfigMap to select from
  4986. properties:
  4987. name:
  4988. default: ""
  4989. description: |-
  4990. Name of the referent.
  4991. This field is effectively required, but due to backwards compatibility is
  4992. allowed to be empty. Instances of this type with an empty value here are
  4993. almost certainly wrong.
  4994. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4995. type: string
  4996. optional:
  4997. description: Specify whether the ConfigMap
  4998. must be defined
  4999. type: boolean
  5000. type: object
  5001. x-kubernetes-map-type: atomic
  5002. prefix:
  5003. description: |-
  5004. Optional text to prepend to the name of each environment variable.
  5005. May consist of any printable ASCII characters except '='.
  5006. type: string
  5007. secretRef:
  5008. description: The Secret to select from
  5009. properties:
  5010. name:
  5011. default: ""
  5012. description: |-
  5013. Name of the referent.
  5014. This field is effectively required, but due to backwards compatibility is
  5015. allowed to be empty. Instances of this type with an empty value here are
  5016. almost certainly wrong.
  5017. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5018. type: string
  5019. optional:
  5020. description: Specify whether the Secret
  5021. must be defined
  5022. type: boolean
  5023. type: object
  5024. x-kubernetes-map-type: atomic
  5025. type: object
  5026. type: array
  5027. extraArgs:
  5028. description: extraArgs are appended to the preset
  5029. command.
  5030. items:
  5031. type: string
  5032. type: array
  5033. image:
  5034. description: |-
  5035. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  5036. or pull from a private registry mirror.
  5037. type: string
  5038. name:
  5039. description: name selects a built-in runtime preset.
  5040. type: string
  5041. port:
  5042. description: port specifies or overrides the container
  5043. port the runtime listens on.
  5044. format: int32
  5045. type: integer
  5046. volumeMounts:
  5047. description: volumeMounts defines where pod volumes
  5048. are mounted inside the container.
  5049. items:
  5050. description: VolumeMount describes a mounting of
  5051. a Volume within a container.
  5052. properties:
  5053. mountPath:
  5054. description: |-
  5055. Path within the container at which the volume should be mounted. Must
  5056. not contain ':'.
  5057. type: string
  5058. mountPropagation:
  5059. description: |-
  5060. mountPropagation determines how mounts are propagated from the host
  5061. to container and the other way around.
  5062. When not set, MountPropagationNone is used.
  5063. This field is beta in 1.10.
  5064. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  5065. (which defaults to None).
  5066. type: string
  5067. name:
  5068. description: This must match the Name of a Volume.
  5069. type: string
  5070. readOnly:
  5071. description: |-
  5072. Mounted read-only if true, read-write otherwise (false or unspecified).
  5073. Defaults to false.
  5074. type: boolean
  5075. recursiveReadOnly:
  5076. description: |-
  5077. RecursiveReadOnly specifies whether read-only mounts should be handled
  5078. recursively.
  5079. If ReadOnly is false, this field has no meaning and must be unspecified.
  5080. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  5081. recursively read-only. If this field is set to IfPossible, the mount is made
  5082. recursively read-only, if it is supported by the container runtime. If this
  5083. field is set to Enabled, the mount is made recursively read-only if it is
  5084. supported by the container runtime, otherwise the pod will not be started and
  5085. an error will be generated to indicate the reason.
  5086. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  5087. None (or be unspecified, which defaults to None).
  5088. If this field is not specified, it is treated as an equivalent of Disabled.
  5089. type: string
  5090. subPath:
  5091. description: |-
  5092. Path within the volume from which the container's volume should be mounted.
  5093. Defaults to "" (volume's root).
  5094. type: string
  5095. subPathExpr:
  5096. description: |-
  5097. Expanded path within the volume from which the container's volume should be mounted.
  5098. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  5099. Defaults to "" (volume's root).
  5100. SubPathExpr and SubPath are mutually exclusive.
  5101. type: string
  5102. required:
  5103. - mountPath
  5104. - name
  5105. type: object
  5106. type: array
  5107. type: object
  5108. securityContext:
  5109. description: |-
  5110. securityContext sets pod-level security attributes such as runAsUser,
  5111. runAsGroup, fsGroup, and sysctls.
  5112. properties:
  5113. appArmorProfile:
  5114. description: |-
  5115. appArmorProfile is the AppArmor options to use by the containers in this pod.
  5116. Note that this field cannot be set when spec.os.name is windows.
  5117. properties:
  5118. localhostProfile:
  5119. description: |-
  5120. localhostProfile indicates a profile loaded on the node that should be used.
  5121. The profile must be preconfigured on the node to work.
  5122. Must match the loaded name of the profile.
  5123. Must be set if and only if type is "Localhost".
  5124. type: string
  5125. type:
  5126. description: |-
  5127. type indicates which kind of AppArmor profile will be applied.
  5128. Valid options are:
  5129. Localhost - a profile pre-loaded on the node.
  5130. RuntimeDefault - the container runtime's default profile.
  5131. Unconfined - no AppArmor enforcement.
  5132. type: string
  5133. required:
  5134. - type
  5135. type: object
  5136. fsGroup:
  5137. description: |-
  5138. A special supplemental group that applies to all containers in a pod.
  5139. Some volume types allow the Kubelet to change the ownership of that volume
  5140. to be owned by the pod:
  5141. 1. The owning GID will be the FSGroup
  5142. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  5143. 3. The permission bits are OR'd with rw-rw----
  5144. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  5145. Note that this field cannot be set when spec.os.name is windows.
  5146. format: int64
  5147. type: integer
  5148. fsGroupChangePolicy:
  5149. description: |-
  5150. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  5151. before being exposed inside Pod. This field will only apply to
  5152. volume types which support fsGroup based ownership(and permissions).
  5153. It will have no effect on ephemeral volume types such as: secret, configmaps
  5154. and emptydir.
  5155. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  5156. Note that this field cannot be set when spec.os.name is windows.
  5157. type: string
  5158. runAsGroup:
  5159. description: |-
  5160. The GID to run the entrypoint of the container process.
  5161. Uses runtime default if unset.
  5162. May also be set in SecurityContext. If set in both SecurityContext and
  5163. PodSecurityContext, the value specified in SecurityContext takes precedence
  5164. for that container.
  5165. Note that this field cannot be set when spec.os.name is windows.
  5166. format: int64
  5167. type: integer
  5168. runAsNonRoot:
  5169. description: |-
  5170. Indicates that the container must run as a non-root user.
  5171. If true, the Kubelet will validate the image at runtime to ensure that it
  5172. does not run as UID 0 (root) and fail to start the container if it does.
  5173. If unset or false, no such validation will be performed.
  5174. May also be set in SecurityContext. If set in both SecurityContext and
  5175. PodSecurityContext, the value specified in SecurityContext takes precedence.
  5176. type: boolean
  5177. runAsUser:
  5178. description: |-
  5179. The UID to run the entrypoint of the container process.
  5180. Defaults to user specified in image metadata if unspecified.
  5181. May also be set in SecurityContext. If set in both SecurityContext and
  5182. PodSecurityContext, the value specified in SecurityContext takes precedence
  5183. for that container.
  5184. Note that this field cannot be set when spec.os.name is windows.
  5185. format: int64
  5186. type: integer
  5187. seLinuxChangePolicy:
  5188. description: |-
  5189. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  5190. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  5191. Valid values are "MountOption" and "Recursive".
  5192. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  5193. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  5194. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  5195. This requires all Pods that share the same volume to use the same SELinux label.
  5196. It is not possible to share the same volume among privileged and unprivileged Pods.
  5197. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  5198. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  5199. CSIDriver instance. Other volumes are always re-labelled recursively.
  5200. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  5201. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  5202. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  5203. and "Recursive" for all other volumes.
  5204. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  5205. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  5206. Note that this field cannot be set when spec.os.name is windows.
  5207. type: string
  5208. seLinuxOptions:
  5209. description: |-
  5210. The SELinux context to be applied to all containers.
  5211. If unspecified, the container runtime will allocate a random SELinux context for each
  5212. container. May also be set in SecurityContext. If set in
  5213. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  5214. takes precedence for that container.
  5215. Note that this field cannot be set when spec.os.name is windows.
  5216. properties:
  5217. level:
  5218. description: Level is SELinux level label that
  5219. applies to the container.
  5220. type: string
  5221. role:
  5222. description: Role is a SELinux role label that
  5223. applies to the container.
  5224. type: string
  5225. type:
  5226. description: Type is a SELinux type label that
  5227. applies to the container.
  5228. type: string
  5229. user:
  5230. description: User is a SELinux user label that
  5231. applies to the container.
  5232. type: string
  5233. type: object
  5234. seccompProfile:
  5235. description: |-
  5236. The seccomp options to use by the containers in this pod.
  5237. Note that this field cannot be set when spec.os.name is windows.
  5238. properties:
  5239. localhostProfile:
  5240. description: |-
  5241. localhostProfile indicates a profile defined in a file on the node should be used.
  5242. The profile must be preconfigured on the node to work.
  5243. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  5244. Must be set if type is "Localhost". Must NOT be set for any other type.
  5245. type: string
  5246. type:
  5247. description: |-
  5248. type indicates which kind of seccomp profile will be applied.
  5249. Valid options are:
  5250. Localhost - a profile defined in a file on the node should be used.
  5251. RuntimeDefault - the container runtime default profile should be used.
  5252. Unconfined - no profile should be applied.
  5253. type: string
  5254. required:
  5255. - type
  5256. type: object
  5257. supplementalGroups:
  5258. description: |-
  5259. A list of groups applied to the first process run in each container, in
  5260. addition to the container's primary GID and fsGroup (if specified). If
  5261. the SupplementalGroupsPolicy feature is enabled, the
  5262. supplementalGroupsPolicy field determines whether these are in addition
  5263. to or instead of any group memberships defined in the container image.
  5264. If unspecified, no additional groups are added, though group memberships
  5265. defined in the container image may still be used, depending on the
  5266. supplementalGroupsPolicy field.
  5267. Note that this field cannot be set when spec.os.name is windows.
  5268. items:
  5269. format: int64
  5270. type: integer
  5271. type: array
  5272. x-kubernetes-list-type: atomic
  5273. supplementalGroupsPolicy:
  5274. description: |-
  5275. Defines how supplemental groups of the first container processes are calculated.
  5276. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  5277. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  5278. and the container runtime must implement support for this feature.
  5279. Note that this field cannot be set when spec.os.name is windows.
  5280. type: string
  5281. sysctls:
  5282. description: |-
  5283. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  5284. sysctls (by the container runtime) might fail to launch.
  5285. Note that this field cannot be set when spec.os.name is windows.
  5286. items:
  5287. description: Sysctl defines a kernel parameter to
  5288. be set
  5289. properties:
  5290. name:
  5291. description: Name of a property to set
  5292. type: string
  5293. value:
  5294. description: Value of a property to set
  5295. type: string
  5296. required:
  5297. - name
  5298. - value
  5299. type: object
  5300. type: array
  5301. x-kubernetes-list-type: atomic
  5302. windowsOptions:
  5303. description: |-
  5304. The Windows specific settings applied to all containers.
  5305. If unspecified, the options within a container's SecurityContext will be used.
  5306. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  5307. Note that this field cannot be set when spec.os.name is linux.
  5308. properties:
  5309. gmsaCredentialSpec:
  5310. description: |-
  5311. GMSACredentialSpec is where the GMSA admission webhook
  5312. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  5313. GMSA credential spec named by the GMSACredentialSpecName field.
  5314. type: string
  5315. gmsaCredentialSpecName:
  5316. description: GMSACredentialSpecName is the name
  5317. of the GMSA credential spec to use.
  5318. type: string
  5319. hostProcess:
  5320. description: |-
  5321. HostProcess determines if a container should be run as a 'Host Process' container.
  5322. All of a Pod's containers must have the same effective HostProcess value
  5323. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  5324. In addition, if HostProcess is true then HostNetwork must also be set to true.
  5325. type: boolean
  5326. runAsUserName:
  5327. description: |-
  5328. The UserName in Windows to run the entrypoint of the container process.
  5329. Defaults to the user specified in image metadata if unspecified.
  5330. May also be set in PodSecurityContext. If set in both SecurityContext and
  5331. PodSecurityContext, the value specified in SecurityContext takes precedence.
  5332. type: string
  5333. type: object
  5334. type: object
  5335. tolerations:
  5336. description: tolerations allow pods to be scheduled onto
  5337. nodes with matching taints.
  5338. items:
  5339. description: |-
  5340. The pod this Toleration is attached to tolerates any taint that matches
  5341. the triple <key,value,effect> using the matching operator <operator>.
  5342. properties:
  5343. effect:
  5344. description: |-
  5345. Effect indicates the taint effect to match. Empty means match all taint effects.
  5346. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  5347. type: string
  5348. key:
  5349. description: |-
  5350. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  5351. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  5352. type: string
  5353. operator:
  5354. description: |-
  5355. Operator represents a key's relationship to the value.
  5356. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
  5357. Exists is equivalent to wildcard for value, so that a pod can
  5358. tolerate all taints of a particular category.
  5359. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
  5360. type: string
  5361. tolerationSeconds:
  5362. description: |-
  5363. TolerationSeconds represents the period of time the toleration (which must be
  5364. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  5365. it is not set, which means tolerate the taint forever (do not evict). Zero and
  5366. negative values will be treated as 0 (evict immediately) by the system.
  5367. format: int64
  5368. type: integer
  5369. value:
  5370. description: |-
  5371. Value is the taint value the toleration matches to.
  5372. If the operator is Exists, the value should be empty, otherwise just a regular string.
  5373. type: string
  5374. type: object
  5375. type: array
  5376. topologySpreadConstraints:
  5377. description: |-
  5378. topologySpreadConstraints controls how pods are spread across failure
  5379. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  5380. items:
  5381. description: TopologySpreadConstraint specifies how
  5382. to spread matching pods among the given topology.
  5383. properties:
  5384. labelSelector:
  5385. description: |-
  5386. LabelSelector is used to find matching pods.
  5387. Pods that match this label selector are counted to determine the number of pods
  5388. in their corresponding topology domain.
  5389. properties:
  5390. matchExpressions:
  5391. description: matchExpressions is a list of label
  5392. selector requirements. The requirements are
  5393. ANDed.
  5394. items:
  5395. description: |-
  5396. A label selector requirement is a selector that contains values, a key, and an operator that
  5397. relates the key and values.
  5398. properties:
  5399. key:
  5400. description: key is the label key that
  5401. the selector applies to.
  5402. type: string
  5403. operator:
  5404. description: |-
  5405. operator represents a key's relationship to a set of values.
  5406. Valid operators are In, NotIn, Exists and DoesNotExist.
  5407. type: string
  5408. values:
  5409. description: |-
  5410. values is an array of string values. If the operator is In or NotIn,
  5411. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  5412. the values array must be empty. This array is replaced during a strategic
  5413. merge patch.
  5414. items:
  5415. type: string
  5416. type: array
  5417. x-kubernetes-list-type: atomic
  5418. required:
  5419. - key
  5420. - operator
  5421. type: object
  5422. type: array
  5423. x-kubernetes-list-type: atomic
  5424. matchLabels:
  5425. additionalProperties:
  5426. type: string
  5427. description: |-
  5428. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  5429. map is equivalent to an element of matchExpressions, whose key field is "key", the
  5430. operator is "In", and the values array contains only "value". The requirements are ANDed.
  5431. type: object
  5432. type: object
  5433. x-kubernetes-map-type: atomic
  5434. matchLabelKeys:
  5435. description: |-
  5436. MatchLabelKeys is a set of pod label keys to select the pods over which
  5437. spreading will be calculated. The keys are used to lookup values from the
  5438. incoming pod labels, those key-value labels are ANDed with labelSelector
  5439. to select the group of existing pods over which spreading will be calculated
  5440. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  5441. MatchLabelKeys cannot be set when LabelSelector isn't set.
  5442. Keys that don't exist in the incoming pod labels will
  5443. be ignored. A null or empty list means only match against labelSelector.
  5444. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  5445. items:
  5446. type: string
  5447. type: array
  5448. x-kubernetes-list-type: atomic
  5449. maxSkew:
  5450. description: |-
  5451. MaxSkew describes the degree to which pods may be unevenly distributed.
  5452. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  5453. between the number of matching pods in the target topology and the global minimum.
  5454. The global minimum is the minimum number of matching pods in an eligible domain
  5455. or zero if the number of eligible domains is less than MinDomains.
  5456. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  5457. labelSelector spread as 2/2/1:
  5458. In this case, the global minimum is 1.
  5459. | zone1 | zone2 | zone3 |
  5460. | P P | P P | P |
  5461. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  5462. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  5463. violate MaxSkew(1).
  5464. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  5465. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  5466. to topologies that satisfy it.
  5467. It's a required field. Default value is 1 and 0 is not allowed.
  5468. format: int32
  5469. type: integer
  5470. minDomains:
  5471. description: |-
  5472. MinDomains indicates a minimum number of eligible domains.
  5473. When the number of eligible domains with matching topology keys is less than minDomains,
  5474. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  5475. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  5476. this value has no effect on scheduling.
  5477. As a result, when the number of eligible domains is less than minDomains,
  5478. scheduler won't schedule more than maxSkew Pods to those domains.
  5479. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  5480. Valid values are integers greater than 0.
  5481. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  5482. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  5483. labelSelector spread as 2/2/2:
  5484. | zone1 | zone2 | zone3 |
  5485. | P P | P P | P P |
  5486. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  5487. In this situation, new pod with the same labelSelector cannot be scheduled,
  5488. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  5489. it will violate MaxSkew.
  5490. format: int32
  5491. type: integer
  5492. nodeAffinityPolicy:
  5493. description: |-
  5494. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  5495. when calculating pod topology spread skew. Options are:
  5496. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  5497. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  5498. If this value is nil, the behavior is equivalent to the Honor policy.
  5499. type: string
  5500. nodeTaintsPolicy:
  5501. description: |-
  5502. NodeTaintsPolicy indicates how we will treat node taints when calculating
  5503. pod topology spread skew. Options are:
  5504. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  5505. has a toleration, are included.
  5506. - Ignore: node taints are ignored. All nodes are included.
  5507. If this value is nil, the behavior is equivalent to the Ignore policy.
  5508. type: string
  5509. topologyKey:
  5510. description: |-
  5511. TopologyKey is the key of node labels. Nodes that have a label with this key
  5512. and identical values are considered to be in the same topology.
  5513. We consider each <key, value> as a "bucket", and try to put balanced number
  5514. of pods into each bucket.
  5515. We define a domain as a particular instance of a topology.
  5516. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  5517. nodeAffinityPolicy and nodeTaintsPolicy.
  5518. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  5519. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  5520. It's a required field.
  5521. type: string
  5522. whenUnsatisfiable:
  5523. description: |-
  5524. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  5525. the spread constraint.
  5526. - DoNotSchedule (default) tells the scheduler not to schedule it.
  5527. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  5528. but giving higher precedence to topologies that would help reduce the
  5529. skew.
  5530. A constraint is considered "Unsatisfiable" for an incoming pod
  5531. if and only if every possible node assignment for that pod would violate
  5532. "MaxSkew" on some topology.
  5533. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  5534. labelSelector spread as 3/1/1:
  5535. | zone1 | zone2 | zone3 |
  5536. | P P P | P | P |
  5537. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  5538. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  5539. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  5540. won't make it *more* imbalanced.
  5541. It's a required field.
  5542. type: string
  5543. required:
  5544. - maxSkew
  5545. - topologyKey
  5546. - whenUnsatisfiable
  5547. type: object
  5548. type: array
  5549. volumes:
  5550. description: volumes defines additional pod volumes available
  5551. to the runtime container.
  5552. items:
  5553. description: Volume represents a named volume in a pod
  5554. that may be accessed by any container in the pod.
  5555. properties:
  5556. awsElasticBlockStore:
  5557. description: |-
  5558. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  5559. kubelet's host machine and then exposed to the pod.
  5560. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  5561. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  5562. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  5563. properties:
  5564. fsType:
  5565. description: |-
  5566. fsType is the filesystem type of the volume that you want to mount.
  5567. Tip: Ensure that the filesystem type is supported by the host operating system.
  5568. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  5569. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  5570. type: string
  5571. partition:
  5572. description: |-
  5573. partition is the partition in the volume that you want to mount.
  5574. If omitted, the default is to mount by volume name.
  5575. Examples: For volume /dev/sda1, you specify the partition as "1".
  5576. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  5577. format: int32
  5578. type: integer
  5579. readOnly:
  5580. description: |-
  5581. readOnly value true will force the readOnly setting in VolumeMounts.
  5582. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  5583. type: boolean
  5584. volumeID:
  5585. description: |-
  5586. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  5587. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  5588. type: string
  5589. required:
  5590. - volumeID
  5591. type: object
  5592. azureDisk:
  5593. description: |-
  5594. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  5595. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  5596. are redirected to the disk.csi.azure.com CSI driver.
  5597. properties:
  5598. cachingMode:
  5599. description: 'cachingMode is the Host Caching
  5600. mode: None, Read Only, Read Write.'
  5601. type: string
  5602. diskName:
  5603. description: diskName is the Name of the data
  5604. disk in the blob storage
  5605. type: string
  5606. diskURI:
  5607. description: diskURI is the URI of data disk
  5608. in the blob storage
  5609. type: string
  5610. fsType:
  5611. default: ext4
  5612. description: |-
  5613. fsType is Filesystem type to mount.
  5614. Must be a filesystem type supported by the host operating system.
  5615. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  5616. type: string
  5617. kind:
  5618. description: 'kind expected values are Shared:
  5619. multiple blob disks per storage account Dedicated:
  5620. single blob disk per storage account Managed:
  5621. azure managed data disk (only in managed availability
  5622. set). defaults to shared'
  5623. type: string
  5624. readOnly:
  5625. default: false
  5626. description: |-
  5627. readOnly Defaults to false (read/write). ReadOnly here will force
  5628. the ReadOnly setting in VolumeMounts.
  5629. type: boolean
  5630. required:
  5631. - diskName
  5632. - diskURI
  5633. type: object
  5634. azureFile:
  5635. description: |-
  5636. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  5637. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  5638. are redirected to the file.csi.azure.com CSI driver.
  5639. properties:
  5640. readOnly:
  5641. description: |-
  5642. readOnly defaults to false (read/write). ReadOnly here will force
  5643. the ReadOnly setting in VolumeMounts.
  5644. type: boolean
  5645. secretName:
  5646. description: secretName is the name of secret
  5647. that contains Azure Storage Account Name and
  5648. Key
  5649. type: string
  5650. shareName:
  5651. description: shareName is the azure share Name
  5652. type: string
  5653. required:
  5654. - secretName
  5655. - shareName
  5656. type: object
  5657. cephfs:
  5658. description: |-
  5659. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  5660. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  5661. properties:
  5662. monitors:
  5663. description: |-
  5664. monitors is Required: Monitors is a collection of Ceph monitors
  5665. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  5666. items:
  5667. type: string
  5668. type: array
  5669. x-kubernetes-list-type: atomic
  5670. path:
  5671. description: 'path is Optional: Used as the
  5672. mounted root, rather than the full Ceph tree,
  5673. default is /'
  5674. type: string
  5675. readOnly:
  5676. description: |-
  5677. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  5678. the ReadOnly setting in VolumeMounts.
  5679. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  5680. type: boolean
  5681. secretFile:
  5682. description: |-
  5683. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  5684. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  5685. type: string
  5686. secretRef:
  5687. description: |-
  5688. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  5689. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  5690. properties:
  5691. name:
  5692. default: ""
  5693. description: |-
  5694. Name of the referent.
  5695. This field is effectively required, but due to backwards compatibility is
  5696. allowed to be empty. Instances of this type with an empty value here are
  5697. almost certainly wrong.
  5698. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5699. type: string
  5700. type: object
  5701. x-kubernetes-map-type: atomic
  5702. user:
  5703. description: |-
  5704. user is optional: User is the rados user name, default is admin
  5705. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  5706. type: string
  5707. required:
  5708. - monitors
  5709. type: object
  5710. cinder:
  5711. description: |-
  5712. cinder represents a cinder volume attached and mounted on kubelets host machine.
  5713. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  5714. are redirected to the cinder.csi.openstack.org CSI driver.
  5715. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  5716. properties:
  5717. fsType:
  5718. description: |-
  5719. fsType is the filesystem type to mount.
  5720. Must be a filesystem type supported by the host operating system.
  5721. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  5722. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  5723. type: string
  5724. readOnly:
  5725. description: |-
  5726. readOnly defaults to false (read/write). ReadOnly here will force
  5727. the ReadOnly setting in VolumeMounts.
  5728. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  5729. type: boolean
  5730. secretRef:
  5731. description: |-
  5732. secretRef is optional: points to a secret object containing parameters used to connect
  5733. to OpenStack.
  5734. properties:
  5735. name:
  5736. default: ""
  5737. description: |-
  5738. Name of the referent.
  5739. This field is effectively required, but due to backwards compatibility is
  5740. allowed to be empty. Instances of this type with an empty value here are
  5741. almost certainly wrong.
  5742. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5743. type: string
  5744. type: object
  5745. x-kubernetes-map-type: atomic
  5746. volumeID:
  5747. description: |-
  5748. volumeID used to identify the volume in cinder.
  5749. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  5750. type: string
  5751. required:
  5752. - volumeID
  5753. type: object
  5754. configMap:
  5755. description: configMap represents a configMap that
  5756. should populate this volume
  5757. properties:
  5758. defaultMode:
  5759. description: |-
  5760. defaultMode is optional: mode bits used to set permissions on created files by default.
  5761. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5762. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5763. Defaults to 0644.
  5764. Directories within the path are not affected by this setting.
  5765. This might be in conflict with other options that affect the file
  5766. mode, like fsGroup, and the result can be other mode bits set.
  5767. format: int32
  5768. type: integer
  5769. items:
  5770. description: |-
  5771. items if unspecified, each key-value pair in the Data field of the referenced
  5772. ConfigMap will be projected into the volume as a file whose name is the
  5773. key and content is the value. If specified, the listed keys will be
  5774. projected into the specified paths, and unlisted keys will not be
  5775. present. If a key is specified which is not present in the ConfigMap,
  5776. the volume setup will error unless it is marked optional. Paths must be
  5777. relative and may not contain the '..' path or start with '..'.
  5778. items:
  5779. description: Maps a string key to a path within
  5780. a volume.
  5781. properties:
  5782. key:
  5783. description: key is the key to project.
  5784. type: string
  5785. mode:
  5786. description: |-
  5787. mode is Optional: mode bits used to set permissions on this file.
  5788. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5789. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5790. If not specified, the volume defaultMode will be used.
  5791. This might be in conflict with other options that affect the file
  5792. mode, like fsGroup, and the result can be other mode bits set.
  5793. format: int32
  5794. type: integer
  5795. path:
  5796. description: |-
  5797. path is the relative path of the file to map the key to.
  5798. May not be an absolute path.
  5799. May not contain the path element '..'.
  5800. May not start with the string '..'.
  5801. type: string
  5802. required:
  5803. - key
  5804. - path
  5805. type: object
  5806. type: array
  5807. x-kubernetes-list-type: atomic
  5808. name:
  5809. default: ""
  5810. description: |-
  5811. Name of the referent.
  5812. This field is effectively required, but due to backwards compatibility is
  5813. allowed to be empty. Instances of this type with an empty value here are
  5814. almost certainly wrong.
  5815. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5816. type: string
  5817. optional:
  5818. description: optional specify whether the ConfigMap
  5819. or its keys must be defined
  5820. type: boolean
  5821. type: object
  5822. x-kubernetes-map-type: atomic
  5823. csi:
  5824. description: csi (Container Storage Interface) represents
  5825. ephemeral storage that is handled by certain external
  5826. CSI drivers.
  5827. properties:
  5828. driver:
  5829. description: |-
  5830. driver is the name of the CSI driver that handles this volume.
  5831. Consult with your admin for the correct name as registered in the cluster.
  5832. type: string
  5833. fsType:
  5834. description: |-
  5835. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  5836. If not provided, the empty value is passed to the associated CSI driver
  5837. which will determine the default filesystem to apply.
  5838. type: string
  5839. nodePublishSecretRef:
  5840. description: |-
  5841. nodePublishSecretRef is a reference to the secret object containing
  5842. sensitive information to pass to the CSI driver to complete the CSI
  5843. NodePublishVolume and NodeUnpublishVolume calls.
  5844. This field is optional, and may be empty if no secret is required. If the
  5845. secret object contains more than one secret, all secret references are passed.
  5846. properties:
  5847. name:
  5848. default: ""
  5849. description: |-
  5850. Name of the referent.
  5851. This field is effectively required, but due to backwards compatibility is
  5852. allowed to be empty. Instances of this type with an empty value here are
  5853. almost certainly wrong.
  5854. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5855. type: string
  5856. type: object
  5857. x-kubernetes-map-type: atomic
  5858. readOnly:
  5859. description: |-
  5860. readOnly specifies a read-only configuration for the volume.
  5861. Defaults to false (read/write).
  5862. type: boolean
  5863. volumeAttributes:
  5864. additionalProperties:
  5865. type: string
  5866. description: |-
  5867. volumeAttributes stores driver-specific properties that are passed to the CSI
  5868. driver. Consult your driver's documentation for supported values.
  5869. type: object
  5870. required:
  5871. - driver
  5872. type: object
  5873. downwardAPI:
  5874. description: downwardAPI represents downward API
  5875. about the pod that should populate this volume
  5876. properties:
  5877. defaultMode:
  5878. description: |-
  5879. Optional: mode bits to use on created files by default. Must be a
  5880. Optional: mode bits used to set permissions on created files by default.
  5881. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5882. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5883. Defaults to 0644.
  5884. Directories within the path are not affected by this setting.
  5885. This might be in conflict with other options that affect the file
  5886. mode, like fsGroup, and the result can be other mode bits set.
  5887. format: int32
  5888. type: integer
  5889. items:
  5890. description: Items is a list of downward API
  5891. volume file
  5892. items:
  5893. description: DownwardAPIVolumeFile represents
  5894. information to create the file containing
  5895. the pod field
  5896. properties:
  5897. fieldRef:
  5898. description: 'Required: Selects a field
  5899. of the pod: only annotations, labels,
  5900. name, namespace and uid are supported.'
  5901. properties:
  5902. apiVersion:
  5903. description: Version of the schema
  5904. the FieldPath is written in terms
  5905. of, defaults to "v1".
  5906. type: string
  5907. fieldPath:
  5908. description: Path of the field to
  5909. select in the specified API version.
  5910. type: string
  5911. required:
  5912. - fieldPath
  5913. type: object
  5914. x-kubernetes-map-type: atomic
  5915. mode:
  5916. description: |-
  5917. Optional: mode bits used to set permissions on this file, must be an octal value
  5918. between 0000 and 0777 or a decimal value between 0 and 511.
  5919. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5920. If not specified, the volume defaultMode will be used.
  5921. This might be in conflict with other options that affect the file
  5922. mode, like fsGroup, and the result can be other mode bits set.
  5923. format: int32
  5924. type: integer
  5925. path:
  5926. description: 'Required: Path is the relative
  5927. path name of the file to be created.
  5928. Must not be absolute or contain the
  5929. ''..'' path. Must be utf-8 encoded.
  5930. The first item of the relative path
  5931. must not start with ''..'''
  5932. type: string
  5933. resourceFieldRef:
  5934. description: |-
  5935. Selects a resource of the container: only resources limits and requests
  5936. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  5937. properties:
  5938. containerName:
  5939. description: 'Container name: required
  5940. for volumes, optional for env vars'
  5941. type: string
  5942. divisor:
  5943. anyOf:
  5944. - type: integer
  5945. - type: string
  5946. description: Specifies the output
  5947. format of the exposed resources,
  5948. defaults to "1"
  5949. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5950. x-kubernetes-int-or-string: true
  5951. resource:
  5952. description: 'Required: resource to
  5953. select'
  5954. type: string
  5955. required:
  5956. - resource
  5957. type: object
  5958. x-kubernetes-map-type: atomic
  5959. required:
  5960. - path
  5961. type: object
  5962. type: array
  5963. x-kubernetes-list-type: atomic
  5964. type: object
  5965. emptyDir:
  5966. description: |-
  5967. emptyDir represents a temporary directory that shares a pod's lifetime.
  5968. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  5969. properties:
  5970. medium:
  5971. description: |-
  5972. medium represents what type of storage medium should back this directory.
  5973. The default is "" which means to use the node's default medium.
  5974. Must be an empty string (default) or Memory.
  5975. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  5976. type: string
  5977. sizeLimit:
  5978. anyOf:
  5979. - type: integer
  5980. - type: string
  5981. description: |-
  5982. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  5983. The size limit is also applicable for memory medium.
  5984. The maximum usage on memory medium EmptyDir would be the minimum value between
  5985. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  5986. The default is nil which means that the limit is undefined.
  5987. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  5988. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5989. x-kubernetes-int-or-string: true
  5990. type: object
  5991. ephemeral:
  5992. description: |-
  5993. ephemeral represents a volume that is handled by a cluster storage driver.
  5994. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  5995. and deleted when the pod is removed.
  5996. Use this if:
  5997. a) the volume is only needed while the pod runs,
  5998. b) features of normal volumes like restoring from snapshot or capacity
  5999. tracking are needed,
  6000. c) the storage driver is specified through a storage class, and
  6001. d) the storage driver supports dynamic volume provisioning through
  6002. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  6003. information on the connection between this volume type
  6004. and PersistentVolumeClaim).
  6005. Use PersistentVolumeClaim or one of the vendor-specific
  6006. APIs for volumes that persist for longer than the lifecycle
  6007. of an individual pod.
  6008. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  6009. be used that way - see the documentation of the driver for
  6010. more information.
  6011. A pod can use both types of ephemeral volumes and
  6012. persistent volumes at the same time.
  6013. properties:
  6014. volumeClaimTemplate:
  6015. description: |-
  6016. Will be used to create a stand-alone PVC to provision the volume.
  6017. The pod in which this EphemeralVolumeSource is embedded will be the
  6018. owner of the PVC, i.e. the PVC will be deleted together with the
  6019. pod. The name of the PVC will be `<pod name>-<volume name>` where
  6020. `<volume name>` is the name from the `PodSpec.Volumes` array
  6021. entry. Pod validation will reject the pod if the concatenated name
  6022. is not valid for a PVC (for example, too long).
  6023. An existing PVC with that name that is not owned by the pod
  6024. will *not* be used for the pod to avoid using an unrelated
  6025. volume by mistake. Starting the pod is then blocked until
  6026. the unrelated PVC is removed. If such a pre-created PVC is
  6027. meant to be used by the pod, the PVC has to updated with an
  6028. owner reference to the pod once the pod exists. Normally
  6029. this should not be necessary, but it may be useful when
  6030. manually reconstructing a broken cluster.
  6031. This field is read-only and no changes will be made by Kubernetes
  6032. to the PVC after it has been created.
  6033. Required, must not be nil.
  6034. properties:
  6035. metadata:
  6036. description: |-
  6037. May contain labels and annotations that will be copied into the PVC
  6038. when creating it. No other fields are allowed and will be rejected during
  6039. validation.
  6040. type: object
  6041. spec:
  6042. description: |-
  6043. The specification for the PersistentVolumeClaim. The entire content is
  6044. copied unchanged into the PVC that gets created from this
  6045. template. The same fields as in a PersistentVolumeClaim
  6046. are also valid here.
  6047. properties:
  6048. accessModes:
  6049. description: |-
  6050. accessModes contains the desired access modes the volume should have.
  6051. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  6052. items:
  6053. type: string
  6054. type: array
  6055. x-kubernetes-list-type: atomic
  6056. dataSource:
  6057. description: |-
  6058. dataSource field can be used to specify either:
  6059. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  6060. * An existing PVC (PersistentVolumeClaim)
  6061. If the provisioner or an external controller can support the specified data source,
  6062. it will create a new volume based on the contents of the specified data source.
  6063. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  6064. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  6065. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  6066. properties:
  6067. apiGroup:
  6068. description: |-
  6069. APIGroup is the group for the resource being referenced.
  6070. If APIGroup is not specified, the specified Kind must be in the core API group.
  6071. For any other third-party types, APIGroup is required.
  6072. type: string
  6073. kind:
  6074. description: Kind is the type of
  6075. resource being referenced
  6076. type: string
  6077. name:
  6078. description: Name is the name of
  6079. resource being referenced
  6080. type: string
  6081. required:
  6082. - kind
  6083. - name
  6084. type: object
  6085. x-kubernetes-map-type: atomic
  6086. dataSourceRef:
  6087. description: |-
  6088. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  6089. volume is desired. This may be any object from a non-empty API group (non
  6090. core object) or a PersistentVolumeClaim object.
  6091. When this field is specified, volume binding will only succeed if the type of
  6092. the specified object matches some installed volume populator or dynamic
  6093. provisioner.
  6094. This field will replace the functionality of the dataSource field and as such
  6095. if both fields are non-empty, they must have the same value. For backwards
  6096. compatibility, when namespace isn't specified in dataSourceRef,
  6097. both fields (dataSource and dataSourceRef) will be set to the same
  6098. value automatically if one of them is empty and the other is non-empty.
  6099. When namespace is specified in dataSourceRef,
  6100. dataSource isn't set to the same value and must be empty.
  6101. There are three important differences between dataSource and dataSourceRef:
  6102. * While dataSource only allows two specific types of objects, dataSourceRef
  6103. allows any non-core object, as well as PersistentVolumeClaim objects.
  6104. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  6105. preserves all values, and generates an error if a disallowed value is
  6106. specified.
  6107. * While dataSource only allows local objects, dataSourceRef allows objects
  6108. in any namespaces.
  6109. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  6110. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6111. properties:
  6112. apiGroup:
  6113. description: |-
  6114. APIGroup is the group for the resource being referenced.
  6115. If APIGroup is not specified, the specified Kind must be in the core API group.
  6116. For any other third-party types, APIGroup is required.
  6117. type: string
  6118. kind:
  6119. description: Kind is the type of
  6120. resource being referenced
  6121. type: string
  6122. name:
  6123. description: Name is the name of
  6124. resource being referenced
  6125. type: string
  6126. namespace:
  6127. description: |-
  6128. Namespace is the namespace of resource being referenced
  6129. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  6130. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6131. type: string
  6132. required:
  6133. - kind
  6134. - name
  6135. type: object
  6136. resources:
  6137. description: |-
  6138. resources represents the minimum resources the volume should have.
  6139. Users are allowed to specify resource requirements
  6140. that are lower than previous value but must still be higher than capacity recorded in the
  6141. status field of the claim.
  6142. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  6143. properties:
  6144. limits:
  6145. additionalProperties:
  6146. anyOf:
  6147. - type: integer
  6148. - type: string
  6149. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6150. x-kubernetes-int-or-string: true
  6151. description: |-
  6152. Limits describes the maximum amount of compute resources allowed.
  6153. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6154. type: object
  6155. requests:
  6156. additionalProperties:
  6157. anyOf:
  6158. - type: integer
  6159. - type: string
  6160. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6161. x-kubernetes-int-or-string: true
  6162. description: |-
  6163. Requests describes the minimum amount of compute resources required.
  6164. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  6165. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  6166. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6167. type: object
  6168. type: object
  6169. selector:
  6170. description: selector is a label query
  6171. over volumes to consider for binding.
  6172. properties:
  6173. matchExpressions:
  6174. description: matchExpressions is
  6175. a list of label selector requirements.
  6176. The requirements are ANDed.
  6177. items:
  6178. description: |-
  6179. A label selector requirement is a selector that contains values, a key, and an operator that
  6180. relates the key and values.
  6181. properties:
  6182. key:
  6183. description: key is the label
  6184. key that the selector applies
  6185. to.
  6186. type: string
  6187. operator:
  6188. description: |-
  6189. operator represents a key's relationship to a set of values.
  6190. Valid operators are In, NotIn, Exists and DoesNotExist.
  6191. type: string
  6192. values:
  6193. description: |-
  6194. values is an array of string values. If the operator is In or NotIn,
  6195. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  6196. the values array must be empty. This array is replaced during a strategic
  6197. merge patch.
  6198. items:
  6199. type: string
  6200. type: array
  6201. x-kubernetes-list-type: atomic
  6202. required:
  6203. - key
  6204. - operator
  6205. type: object
  6206. type: array
  6207. x-kubernetes-list-type: atomic
  6208. matchLabels:
  6209. additionalProperties:
  6210. type: string
  6211. description: |-
  6212. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  6213. map is equivalent to an element of matchExpressions, whose key field is "key", the
  6214. operator is "In", and the values array contains only "value". The requirements are ANDed.
  6215. type: object
  6216. type: object
  6217. x-kubernetes-map-type: atomic
  6218. storageClassName:
  6219. description: |-
  6220. storageClassName is the name of the StorageClass required by the claim.
  6221. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  6222. type: string
  6223. volumeAttributesClassName:
  6224. description: |-
  6225. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  6226. If specified, the CSI driver will create or update the volume with the attributes defined
  6227. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  6228. it can be changed after the claim is created. An empty string or nil value indicates that no
  6229. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  6230. this field can be reset to its previous value (including nil) to cancel the modification.
  6231. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  6232. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  6233. exists.
  6234. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  6235. type: string
  6236. volumeMode:
  6237. description: |-
  6238. volumeMode defines what type of volume is required by the claim.
  6239. Value of Filesystem is implied when not included in claim spec.
  6240. type: string
  6241. volumeName:
  6242. description: volumeName is the binding
  6243. reference to the PersistentVolume
  6244. backing this claim.
  6245. type: string
  6246. type: object
  6247. required:
  6248. - spec
  6249. type: object
  6250. type: object
  6251. fc:
  6252. description: fc represents a Fibre Channel resource
  6253. that is attached to a kubelet's host machine and
  6254. then exposed to the pod.
  6255. properties:
  6256. fsType:
  6257. description: |-
  6258. fsType is the filesystem type to mount.
  6259. Must be a filesystem type supported by the host operating system.
  6260. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  6261. type: string
  6262. lun:
  6263. description: 'lun is Optional: FC target lun
  6264. number'
  6265. format: int32
  6266. type: integer
  6267. readOnly:
  6268. description: |-
  6269. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  6270. the ReadOnly setting in VolumeMounts.
  6271. type: boolean
  6272. targetWWNs:
  6273. description: 'targetWWNs is Optional: FC target
  6274. worldwide names (WWNs)'
  6275. items:
  6276. type: string
  6277. type: array
  6278. x-kubernetes-list-type: atomic
  6279. wwids:
  6280. description: |-
  6281. wwids Optional: FC volume world wide identifiers (wwids)
  6282. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  6283. items:
  6284. type: string
  6285. type: array
  6286. x-kubernetes-list-type: atomic
  6287. type: object
  6288. flexVolume:
  6289. description: |-
  6290. flexVolume represents a generic volume resource that is
  6291. provisioned/attached using an exec based plugin.
  6292. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  6293. properties:
  6294. driver:
  6295. description: driver is the name of the driver
  6296. to use for this volume.
  6297. type: string
  6298. fsType:
  6299. description: |-
  6300. fsType is the filesystem type to mount.
  6301. Must be a filesystem type supported by the host operating system.
  6302. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  6303. type: string
  6304. options:
  6305. additionalProperties:
  6306. type: string
  6307. description: 'options is Optional: this field
  6308. holds extra command options if any.'
  6309. type: object
  6310. readOnly:
  6311. description: |-
  6312. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  6313. the ReadOnly setting in VolumeMounts.
  6314. type: boolean
  6315. secretRef:
  6316. description: |-
  6317. secretRef is Optional: secretRef is reference to the secret object containing
  6318. sensitive information to pass to the plugin scripts. This may be
  6319. empty if no secret object is specified. If the secret object
  6320. contains more than one secret, all secrets are passed to the plugin
  6321. scripts.
  6322. properties:
  6323. name:
  6324. default: ""
  6325. description: |-
  6326. Name of the referent.
  6327. This field is effectively required, but due to backwards compatibility is
  6328. allowed to be empty. Instances of this type with an empty value here are
  6329. almost certainly wrong.
  6330. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  6331. type: string
  6332. type: object
  6333. x-kubernetes-map-type: atomic
  6334. required:
  6335. - driver
  6336. type: object
  6337. flocker:
  6338. description: |-
  6339. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  6340. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  6341. properties:
  6342. datasetName:
  6343. description: |-
  6344. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  6345. should be considered as deprecated
  6346. type: string
  6347. datasetUUID:
  6348. description: datasetUUID is the UUID of the
  6349. dataset. This is unique identifier of a Flocker
  6350. dataset
  6351. type: string
  6352. type: object
  6353. gcePersistentDisk:
  6354. description: |-
  6355. gcePersistentDisk represents a GCE Disk resource that is attached to a
  6356. kubelet's host machine and then exposed to the pod.
  6357. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  6358. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  6359. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  6360. properties:
  6361. fsType:
  6362. description: |-
  6363. fsType is filesystem type of the volume that you want to mount.
  6364. Tip: Ensure that the filesystem type is supported by the host operating system.
  6365. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  6366. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  6367. type: string
  6368. partition:
  6369. description: |-
  6370. partition is the partition in the volume that you want to mount.
  6371. If omitted, the default is to mount by volume name.
  6372. Examples: For volume /dev/sda1, you specify the partition as "1".
  6373. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  6374. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  6375. format: int32
  6376. type: integer
  6377. pdName:
  6378. description: |-
  6379. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  6380. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  6381. type: string
  6382. readOnly:
  6383. description: |-
  6384. readOnly here will force the ReadOnly setting in VolumeMounts.
  6385. Defaults to false.
  6386. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  6387. type: boolean
  6388. required:
  6389. - pdName
  6390. type: object
  6391. gitRepo:
  6392. description: |-
  6393. gitRepo represents a git repository at a particular revision.
  6394. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  6395. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  6396. into the Pod's container.
  6397. properties:
  6398. directory:
  6399. description: |-
  6400. directory is the target directory name.
  6401. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  6402. git repository. Otherwise, if specified, the volume will contain the git repository in
  6403. the subdirectory with the given name.
  6404. type: string
  6405. repository:
  6406. description: repository is the URL
  6407. type: string
  6408. revision:
  6409. description: revision is the commit hash for
  6410. the specified revision.
  6411. type: string
  6412. required:
  6413. - repository
  6414. type: object
  6415. glusterfs:
  6416. description: |-
  6417. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  6418. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  6419. properties:
  6420. endpoints:
  6421. description: endpoints is the endpoint name
  6422. that details Glusterfs topology.
  6423. type: string
  6424. path:
  6425. description: |-
  6426. path is the Glusterfs volume path.
  6427. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  6428. type: string
  6429. readOnly:
  6430. description: |-
  6431. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  6432. Defaults to false.
  6433. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  6434. type: boolean
  6435. required:
  6436. - endpoints
  6437. - path
  6438. type: object
  6439. hostPath:
  6440. description: |-
  6441. hostPath represents a pre-existing file or directory on the host
  6442. machine that is directly exposed to the container. This is generally
  6443. used for system agents or other privileged things that are allowed
  6444. to see the host machine. Most containers will NOT need this.
  6445. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  6446. properties:
  6447. path:
  6448. description: |-
  6449. path of the directory on the host.
  6450. If the path is a symlink, it will follow the link to the real path.
  6451. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  6452. type: string
  6453. type:
  6454. description: |-
  6455. type for HostPath Volume
  6456. Defaults to ""
  6457. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  6458. type: string
  6459. required:
  6460. - path
  6461. type: object
  6462. image:
  6463. description: |-
  6464. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  6465. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  6466. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  6467. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  6468. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  6469. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  6470. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  6471. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  6472. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  6473. The volume will be mounted read-only (ro) and non-executable files (noexec).
  6474. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  6475. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  6476. properties:
  6477. pullPolicy:
  6478. description: |-
  6479. Policy for pulling OCI objects. Possible values are:
  6480. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  6481. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  6482. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  6483. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  6484. type: string
  6485. reference:
  6486. description: |-
  6487. Required: Image or artifact reference to be used.
  6488. Behaves in the same way as pod.spec.containers[*].image.
  6489. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  6490. More info: https://kubernetes.io/docs/concepts/containers/images
  6491. This field is optional to allow higher level config management to default or override
  6492. container images in workload controllers like Deployments and StatefulSets.
  6493. type: string
  6494. type: object
  6495. iscsi:
  6496. description: |-
  6497. iscsi represents an ISCSI Disk resource that is attached to a
  6498. kubelet's host machine and then exposed to the pod.
  6499. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  6500. properties:
  6501. chapAuthDiscovery:
  6502. description: chapAuthDiscovery defines whether
  6503. support iSCSI Discovery CHAP authentication
  6504. type: boolean
  6505. chapAuthSession:
  6506. description: chapAuthSession defines whether
  6507. support iSCSI Session CHAP authentication
  6508. type: boolean
  6509. fsType:
  6510. description: |-
  6511. fsType is the filesystem type of the volume that you want to mount.
  6512. Tip: Ensure that the filesystem type is supported by the host operating system.
  6513. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  6514. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  6515. type: string
  6516. initiatorName:
  6517. description: |-
  6518. initiatorName is the custom iSCSI Initiator Name.
  6519. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  6520. <target portal>:<volume name> will be created for the connection.
  6521. type: string
  6522. iqn:
  6523. description: iqn is the target iSCSI Qualified
  6524. Name.
  6525. type: string
  6526. iscsiInterface:
  6527. default: default
  6528. description: |-
  6529. iscsiInterface is the interface Name that uses an iSCSI transport.
  6530. Defaults to 'default' (tcp).
  6531. type: string
  6532. lun:
  6533. description: lun represents iSCSI Target Lun
  6534. number.
  6535. format: int32
  6536. type: integer
  6537. portals:
  6538. description: |-
  6539. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  6540. is other than default (typically TCP ports 860 and 3260).
  6541. items:
  6542. type: string
  6543. type: array
  6544. x-kubernetes-list-type: atomic
  6545. readOnly:
  6546. description: |-
  6547. readOnly here will force the ReadOnly setting in VolumeMounts.
  6548. Defaults to false.
  6549. type: boolean
  6550. secretRef:
  6551. description: secretRef is the CHAP Secret for
  6552. iSCSI target and initiator authentication
  6553. properties:
  6554. name:
  6555. default: ""
  6556. description: |-
  6557. Name of the referent.
  6558. This field is effectively required, but due to backwards compatibility is
  6559. allowed to be empty. Instances of this type with an empty value here are
  6560. almost certainly wrong.
  6561. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  6562. type: string
  6563. type: object
  6564. x-kubernetes-map-type: atomic
  6565. targetPortal:
  6566. description: |-
  6567. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  6568. is other than default (typically TCP ports 860 and 3260).
  6569. type: string
  6570. required:
  6571. - iqn
  6572. - lun
  6573. - targetPortal
  6574. type: object
  6575. name:
  6576. description: |-
  6577. name of the volume.
  6578. Must be a DNS_LABEL and unique within the pod.
  6579. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  6580. type: string
  6581. nfs:
  6582. description: |-
  6583. nfs represents an NFS mount on the host that shares a pod's lifetime
  6584. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  6585. properties:
  6586. path:
  6587. description: |-
  6588. path that is exported by the NFS server.
  6589. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  6590. type: string
  6591. readOnly:
  6592. description: |-
  6593. readOnly here will force the NFS export to be mounted with read-only permissions.
  6594. Defaults to false.
  6595. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  6596. type: boolean
  6597. server:
  6598. description: |-
  6599. server is the hostname or IP address of the NFS server.
  6600. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  6601. type: string
  6602. required:
  6603. - path
  6604. - server
  6605. type: object
  6606. persistentVolumeClaim:
  6607. description: |-
  6608. persistentVolumeClaimVolumeSource represents a reference to a
  6609. PersistentVolumeClaim in the same namespace.
  6610. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  6611. properties:
  6612. claimName:
  6613. description: |-
  6614. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  6615. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  6616. type: string
  6617. readOnly:
  6618. description: |-
  6619. readOnly Will force the ReadOnly setting in VolumeMounts.
  6620. Default false.
  6621. type: boolean
  6622. required:
  6623. - claimName
  6624. type: object
  6625. photonPersistentDisk:
  6626. description: |-
  6627. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  6628. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  6629. properties:
  6630. fsType:
  6631. description: |-
  6632. fsType is the filesystem type to mount.
  6633. Must be a filesystem type supported by the host operating system.
  6634. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  6635. type: string
  6636. pdID:
  6637. description: pdID is the ID that identifies
  6638. Photon Controller persistent disk
  6639. type: string
  6640. required:
  6641. - pdID
  6642. type: object
  6643. portworxVolume:
  6644. description: |-
  6645. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  6646. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  6647. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  6648. is on.
  6649. properties:
  6650. fsType:
  6651. description: |-
  6652. fSType represents the filesystem type to mount
  6653. Must be a filesystem type supported by the host operating system.
  6654. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  6655. type: string
  6656. readOnly:
  6657. description: |-
  6658. readOnly defaults to false (read/write). ReadOnly here will force
  6659. the ReadOnly setting in VolumeMounts.
  6660. type: boolean
  6661. volumeID:
  6662. description: volumeID uniquely identifies a
  6663. Portworx volume
  6664. type: string
  6665. required:
  6666. - volumeID
  6667. type: object
  6668. projected:
  6669. description: projected items for all in one resources
  6670. secrets, configmaps, and downward API
  6671. properties:
  6672. defaultMode:
  6673. description: |-
  6674. defaultMode are the mode bits used to set permissions on created files by default.
  6675. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  6676. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  6677. Directories within the path are not affected by this setting.
  6678. This might be in conflict with other options that affect the file
  6679. mode, like fsGroup, and the result can be other mode bits set.
  6680. format: int32
  6681. type: integer
  6682. sources:
  6683. description: |-
  6684. sources is the list of volume projections. Each entry in this list
  6685. handles one source.
  6686. items:
  6687. description: |-
  6688. Projection that may be projected along with other supported volume types.
  6689. Exactly one of these fields must be set.
  6690. properties:
  6691. clusterTrustBundle:
  6692. description: |-
  6693. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  6694. of ClusterTrustBundle objects in an auto-updating file.
  6695. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  6696. ClusterTrustBundle objects can either be selected by name, or by the
  6697. combination of signer name and a label selector.
  6698. Kubelet performs aggressive normalization of the PEM contents written
  6699. into the pod filesystem. Esoteric PEM features such as inter-block
  6700. comments and block headers are stripped. Certificates are deduplicated.
  6701. The ordering of certificates within the file is arbitrary, and Kubelet
  6702. may change the order over time.
  6703. properties:
  6704. labelSelector:
  6705. description: |-
  6706. Select all ClusterTrustBundles that match this label selector. Only has
  6707. effect if signerName is set. Mutually-exclusive with name. If unset,
  6708. interpreted as "match nothing". If set but empty, interpreted as "match
  6709. everything".
  6710. properties:
  6711. matchExpressions:
  6712. description: matchExpressions
  6713. is a list of label selector
  6714. requirements. The requirements
  6715. are ANDed.
  6716. items:
  6717. description: |-
  6718. A label selector requirement is a selector that contains values, a key, and an operator that
  6719. relates the key and values.
  6720. properties:
  6721. key:
  6722. description: key is the
  6723. label key that the selector
  6724. applies to.
  6725. type: string
  6726. operator:
  6727. description: |-
  6728. operator represents a key's relationship to a set of values.
  6729. Valid operators are In, NotIn, Exists and DoesNotExist.
  6730. type: string
  6731. values:
  6732. description: |-
  6733. values is an array of string values. If the operator is In or NotIn,
  6734. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  6735. the values array must be empty. This array is replaced during a strategic
  6736. merge patch.
  6737. items:
  6738. type: string
  6739. type: array
  6740. x-kubernetes-list-type: atomic
  6741. required:
  6742. - key
  6743. - operator
  6744. type: object
  6745. type: array
  6746. x-kubernetes-list-type: atomic
  6747. matchLabels:
  6748. additionalProperties:
  6749. type: string
  6750. description: |-
  6751. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  6752. map is equivalent to an element of matchExpressions, whose key field is "key", the
  6753. operator is "In", and the values array contains only "value". The requirements are ANDed.
  6754. type: object
  6755. type: object
  6756. x-kubernetes-map-type: atomic
  6757. name:
  6758. description: |-
  6759. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  6760. with signerName and labelSelector.
  6761. type: string
  6762. optional:
  6763. description: |-
  6764. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  6765. aren't available. If using name, then the named ClusterTrustBundle is
  6766. allowed not to exist. If using signerName, then the combination of
  6767. signerName and labelSelector is allowed to match zero
  6768. ClusterTrustBundles.
  6769. type: boolean
  6770. path:
  6771. description: Relative path from the
  6772. volume root to write the bundle.
  6773. type: string
  6774. signerName:
  6775. description: |-
  6776. Select all ClusterTrustBundles that match this signer name.
  6777. Mutually-exclusive with name. The contents of all selected
  6778. ClusterTrustBundles will be unified and deduplicated.
  6779. type: string
  6780. required:
  6781. - path
  6782. type: object
  6783. configMap:
  6784. description: configMap information about
  6785. the configMap data to project
  6786. properties:
  6787. items:
  6788. description: |-
  6789. items if unspecified, each key-value pair in the Data field of the referenced
  6790. ConfigMap will be projected into the volume as a file whose name is the
  6791. key and content is the value. If specified, the listed keys will be
  6792. projected into the specified paths, and unlisted keys will not be
  6793. present. If a key is specified which is not present in the ConfigMap,
  6794. the volume setup will error unless it is marked optional. Paths must be
  6795. relative and may not contain the '..' path or start with '..'.
  6796. items:
  6797. description: Maps a string key to
  6798. a path within a volume.
  6799. properties:
  6800. key:
  6801. description: key is the key
  6802. to project.
  6803. type: string
  6804. mode:
  6805. description: |-
  6806. mode is Optional: mode bits used to set permissions on this file.
  6807. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  6808. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  6809. If not specified, the volume defaultMode will be used.
  6810. This might be in conflict with other options that affect the file
  6811. mode, like fsGroup, and the result can be other mode bits set.
  6812. format: int32
  6813. type: integer
  6814. path:
  6815. description: |-
  6816. path is the relative path of the file to map the key to.
  6817. May not be an absolute path.
  6818. May not contain the path element '..'.
  6819. May not start with the string '..'.
  6820. type: string
  6821. required:
  6822. - key
  6823. - path
  6824. type: object
  6825. type: array
  6826. x-kubernetes-list-type: atomic
  6827. name:
  6828. default: ""
  6829. description: |-
  6830. Name of the referent.
  6831. This field is effectively required, but due to backwards compatibility is
  6832. allowed to be empty. Instances of this type with an empty value here are
  6833. almost certainly wrong.
  6834. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  6835. type: string
  6836. optional:
  6837. description: optional specify whether
  6838. the ConfigMap or its keys must be
  6839. defined
  6840. type: boolean
  6841. type: object
  6842. x-kubernetes-map-type: atomic
  6843. downwardAPI:
  6844. description: downwardAPI information about
  6845. the downwardAPI data to project
  6846. properties:
  6847. items:
  6848. description: Items is a list of DownwardAPIVolume
  6849. file
  6850. items:
  6851. description: DownwardAPIVolumeFile
  6852. represents information to create
  6853. the file containing the pod field
  6854. properties:
  6855. fieldRef:
  6856. description: 'Required: Selects
  6857. a field of the pod: only annotations,
  6858. labels, name, namespace and
  6859. uid are supported.'
  6860. properties:
  6861. apiVersion:
  6862. description: Version of
  6863. the schema the FieldPath
  6864. is written in terms of,
  6865. defaults to "v1".
  6866. type: string
  6867. fieldPath:
  6868. description: Path of the
  6869. field to select in the
  6870. specified API version.
  6871. type: string
  6872. required:
  6873. - fieldPath
  6874. type: object
  6875. x-kubernetes-map-type: atomic
  6876. mode:
  6877. description: |-
  6878. Optional: mode bits used to set permissions on this file, must be an octal value
  6879. between 0000 and 0777 or a decimal value between 0 and 511.
  6880. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  6881. If not specified, the volume defaultMode will be used.
  6882. This might be in conflict with other options that affect the file
  6883. mode, like fsGroup, and the result can be other mode bits set.
  6884. format: int32
  6885. type: integer
  6886. path:
  6887. description: 'Required: Path
  6888. is the relative path name
  6889. of the file to be created.
  6890. Must not be absolute or contain
  6891. the ''..'' path. Must be utf-8
  6892. encoded. The first item of
  6893. the relative path must not
  6894. start with ''..'''
  6895. type: string
  6896. resourceFieldRef:
  6897. description: |-
  6898. Selects a resource of the container: only resources limits and requests
  6899. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  6900. properties:
  6901. containerName:
  6902. description: 'Container
  6903. name: required for volumes,
  6904. optional for env vars'
  6905. type: string
  6906. divisor:
  6907. anyOf:
  6908. - type: integer
  6909. - type: string
  6910. description: Specifies the
  6911. output format of the exposed
  6912. resources, defaults to
  6913. "1"
  6914. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6915. x-kubernetes-int-or-string: true
  6916. resource:
  6917. description: 'Required:
  6918. resource to select'
  6919. type: string
  6920. required:
  6921. - resource
  6922. type: object
  6923. x-kubernetes-map-type: atomic
  6924. required:
  6925. - path
  6926. type: object
  6927. type: array
  6928. x-kubernetes-list-type: atomic
  6929. type: object
  6930. podCertificate:
  6931. description: |-
  6932. Projects an auto-rotating credential bundle (private key and certificate
  6933. chain) that the pod can use either as a TLS client or server.
  6934. Kubelet generates a private key and uses it to send a
  6935. PodCertificateRequest to the named signer. Once the signer approves the
  6936. request and issues a certificate chain, Kubelet writes the key and
  6937. certificate chain to the pod filesystem. The pod does not start until
  6938. certificates have been issued for each podCertificate projected volume
  6939. source in its spec.
  6940. Kubelet will begin trying to rotate the certificate at the time indicated
  6941. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  6942. timestamp.
  6943. Kubelet can write a single file, indicated by the credentialBundlePath
  6944. field, or separate files, indicated by the keyPath and
  6945. certificateChainPath fields.
  6946. The credential bundle is a single file in PEM format. The first PEM
  6947. entry is the private key (in PKCS#8 format), and the remaining PEM
  6948. entries are the certificate chain issued by the signer (typically,
  6949. signers will return their certificate chain in leaf-to-root order).
  6950. Prefer using the credential bundle format, since your application code
  6951. can read it atomically. If you use keyPath and certificateChainPath,
  6952. your application must make two separate file reads. If these coincide
  6953. with a certificate rotation, it is possible that the private key and leaf
  6954. certificate you read may not correspond to each other. Your application
  6955. will need to check for this condition, and re-read until they are
  6956. consistent.
  6957. The named signer controls chooses the format of the certificate it
  6958. issues; consult the signer implementation's documentation to learn how to
  6959. use the certificates it issues.
  6960. properties:
  6961. certificateChainPath:
  6962. description: |-
  6963. Write the certificate chain at this path in the projected volume.
  6964. Most applications should use credentialBundlePath. When using keyPath
  6965. and certificateChainPath, your application needs to check that the key
  6966. and leaf certificate are consistent, because it is possible to read the
  6967. files mid-rotation.
  6968. type: string
  6969. credentialBundlePath:
  6970. description: |-
  6971. Write the credential bundle at this path in the projected volume.
  6972. The credential bundle is a single file that contains multiple PEM blocks.
  6973. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  6974. key.
  6975. The remaining blocks are CERTIFICATE blocks, containing the issued
  6976. certificate chain from the signer (leaf and any intermediates).
  6977. Using credentialBundlePath lets your Pod's application code make a single
  6978. atomic read that retrieves a consistent key and certificate chain. If you
  6979. project them to separate files, your application code will need to
  6980. additionally check that the leaf certificate was issued to the key.
  6981. type: string
  6982. keyPath:
  6983. description: |-
  6984. Write the key at this path in the projected volume.
  6985. Most applications should use credentialBundlePath. When using keyPath
  6986. and certificateChainPath, your application needs to check that the key
  6987. and leaf certificate are consistent, because it is possible to read the
  6988. files mid-rotation.
  6989. type: string
  6990. keyType:
  6991. description: |-
  6992. The type of keypair Kubelet will generate for the pod.
  6993. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  6994. "ECDSAP521", and "ED25519".
  6995. type: string
  6996. maxExpirationSeconds:
  6997. description: |-
  6998. maxExpirationSeconds is the maximum lifetime permitted for the
  6999. certificate.
  7000. Kubelet copies this value verbatim into the PodCertificateRequests it
  7001. generates for this projection.
  7002. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  7003. will reject values shorter than 3600 (1 hour). The maximum allowable
  7004. value is 7862400 (91 days).
  7005. The signer implementation is then free to issue a certificate with any
  7006. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  7007. seconds (1 hour). This constraint is enforced by kube-apiserver.
  7008. `kubernetes.io` signers will never issue certificates with a lifetime
  7009. longer than 24 hours.
  7010. format: int32
  7011. type: integer
  7012. signerName:
  7013. description: Kubelet's generated CSRs
  7014. will be addressed to this signer.
  7015. type: string
  7016. userAnnotations:
  7017. additionalProperties:
  7018. type: string
  7019. description: |-
  7020. userAnnotations allow pod authors to pass additional information to
  7021. the signer implementation. Kubernetes does not restrict or validate this
  7022. metadata in any way.
  7023. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
  7024. the PodCertificateRequest objects that Kubelet creates.
  7025. Entries are subject to the same validation as object metadata annotations,
  7026. with the addition that all keys must be domain-prefixed. No restrictions
  7027. are placed on values, except an overall size limitation on the entire field.
  7028. Signers should document the keys and values they support. Signers should
  7029. deny requests that contain keys they do not recognize.
  7030. type: object
  7031. required:
  7032. - keyType
  7033. - signerName
  7034. type: object
  7035. secret:
  7036. description: secret information about
  7037. the secret data to project
  7038. properties:
  7039. items:
  7040. description: |-
  7041. items if unspecified, each key-value pair in the Data field of the referenced
  7042. Secret will be projected into the volume as a file whose name is the
  7043. key and content is the value. If specified, the listed keys will be
  7044. projected into the specified paths, and unlisted keys will not be
  7045. present. If a key is specified which is not present in the Secret,
  7046. the volume setup will error unless it is marked optional. Paths must be
  7047. relative and may not contain the '..' path or start with '..'.
  7048. items:
  7049. description: Maps a string key to
  7050. a path within a volume.
  7051. properties:
  7052. key:
  7053. description: key is the key
  7054. to project.
  7055. type: string
  7056. mode:
  7057. description: |-
  7058. mode is Optional: mode bits used to set permissions on this file.
  7059. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  7060. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  7061. If not specified, the volume defaultMode will be used.
  7062. This might be in conflict with other options that affect the file
  7063. mode, like fsGroup, and the result can be other mode bits set.
  7064. format: int32
  7065. type: integer
  7066. path:
  7067. description: |-
  7068. path is the relative path of the file to map the key to.
  7069. May not be an absolute path.
  7070. May not contain the path element '..'.
  7071. May not start with the string '..'.
  7072. type: string
  7073. required:
  7074. - key
  7075. - path
  7076. type: object
  7077. type: array
  7078. x-kubernetes-list-type: atomic
  7079. name:
  7080. default: ""
  7081. description: |-
  7082. Name of the referent.
  7083. This field is effectively required, but due to backwards compatibility is
  7084. allowed to be empty. Instances of this type with an empty value here are
  7085. almost certainly wrong.
  7086. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  7087. type: string
  7088. optional:
  7089. description: optional field specify
  7090. whether the Secret or its key must
  7091. be defined
  7092. type: boolean
  7093. type: object
  7094. x-kubernetes-map-type: atomic
  7095. serviceAccountToken:
  7096. description: serviceAccountToken is information
  7097. about the serviceAccountToken data to
  7098. project
  7099. properties:
  7100. audience:
  7101. description: |-
  7102. audience is the intended audience of the token. A recipient of a token
  7103. must identify itself with an identifier specified in the audience of the
  7104. token, and otherwise should reject the token. The audience defaults to the
  7105. identifier of the apiserver.
  7106. type: string
  7107. expirationSeconds:
  7108. description: |-
  7109. expirationSeconds is the requested duration of validity of the service
  7110. account token. As the token approaches expiration, the kubelet volume
  7111. plugin will proactively rotate the service account token. The kubelet will
  7112. start trying to rotate the token if the token is older than 80 percent of
  7113. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  7114. and must be at least 10 minutes.
  7115. format: int64
  7116. type: integer
  7117. path:
  7118. description: |-
  7119. path is the path relative to the mount point of the file to project the
  7120. token into.
  7121. type: string
  7122. required:
  7123. - path
  7124. type: object
  7125. type: object
  7126. type: array
  7127. x-kubernetes-list-type: atomic
  7128. type: object
  7129. quobyte:
  7130. description: |-
  7131. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  7132. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  7133. properties:
  7134. group:
  7135. description: |-
  7136. group to map volume access to
  7137. Default is no group
  7138. type: string
  7139. readOnly:
  7140. description: |-
  7141. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  7142. Defaults to false.
  7143. type: boolean
  7144. registry:
  7145. description: |-
  7146. registry represents a single or multiple Quobyte Registry services
  7147. specified as a string as host:port pair (multiple entries are separated with commas)
  7148. which acts as the central registry for volumes
  7149. type: string
  7150. tenant:
  7151. description: |-
  7152. tenant owning the given Quobyte volume in the Backend
  7153. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  7154. type: string
  7155. user:
  7156. description: |-
  7157. user to map volume access to
  7158. Defaults to serivceaccount user
  7159. type: string
  7160. volume:
  7161. description: volume is a string that references
  7162. an already created Quobyte volume by name.
  7163. type: string
  7164. required:
  7165. - registry
  7166. - volume
  7167. type: object
  7168. rbd:
  7169. description: |-
  7170. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  7171. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  7172. properties:
  7173. fsType:
  7174. description: |-
  7175. fsType is the filesystem type of the volume that you want to mount.
  7176. Tip: Ensure that the filesystem type is supported by the host operating system.
  7177. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  7178. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  7179. type: string
  7180. image:
  7181. description: |-
  7182. image is the rados image name.
  7183. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7184. type: string
  7185. keyring:
  7186. default: /etc/ceph/keyring
  7187. description: |-
  7188. keyring is the path to key ring for RBDUser.
  7189. Default is /etc/ceph/keyring.
  7190. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7191. type: string
  7192. monitors:
  7193. description: |-
  7194. monitors is a collection of Ceph monitors.
  7195. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7196. items:
  7197. type: string
  7198. type: array
  7199. x-kubernetes-list-type: atomic
  7200. pool:
  7201. default: rbd
  7202. description: |-
  7203. pool is the rados pool name.
  7204. Default is rbd.
  7205. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7206. type: string
  7207. readOnly:
  7208. description: |-
  7209. readOnly here will force the ReadOnly setting in VolumeMounts.
  7210. Defaults to false.
  7211. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7212. type: boolean
  7213. secretRef:
  7214. description: |-
  7215. secretRef is name of the authentication secret for RBDUser. If provided
  7216. overrides keyring.
  7217. Default is nil.
  7218. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7219. properties:
  7220. name:
  7221. default: ""
  7222. description: |-
  7223. Name of the referent.
  7224. This field is effectively required, but due to backwards compatibility is
  7225. allowed to be empty. Instances of this type with an empty value here are
  7226. almost certainly wrong.
  7227. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  7228. type: string
  7229. type: object
  7230. x-kubernetes-map-type: atomic
  7231. user:
  7232. default: admin
  7233. description: |-
  7234. user is the rados user name.
  7235. Default is admin.
  7236. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  7237. type: string
  7238. required:
  7239. - image
  7240. - monitors
  7241. type: object
  7242. scaleIO:
  7243. description: |-
  7244. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  7245. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  7246. properties:
  7247. fsType:
  7248. default: xfs
  7249. description: |-
  7250. fsType is the filesystem type to mount.
  7251. Must be a filesystem type supported by the host operating system.
  7252. Ex. "ext4", "xfs", "ntfs".
  7253. Default is "xfs".
  7254. type: string
  7255. gateway:
  7256. description: gateway is the host address of
  7257. the ScaleIO API Gateway.
  7258. type: string
  7259. protectionDomain:
  7260. description: protectionDomain is the name of
  7261. the ScaleIO Protection Domain for the configured
  7262. storage.
  7263. type: string
  7264. readOnly:
  7265. description: |-
  7266. readOnly Defaults to false (read/write). ReadOnly here will force
  7267. the ReadOnly setting in VolumeMounts.
  7268. type: boolean
  7269. secretRef:
  7270. description: |-
  7271. secretRef references to the secret for ScaleIO user and other
  7272. sensitive information. If this is not provided, Login operation will fail.
  7273. properties:
  7274. name:
  7275. default: ""
  7276. description: |-
  7277. Name of the referent.
  7278. This field is effectively required, but due to backwards compatibility is
  7279. allowed to be empty. Instances of this type with an empty value here are
  7280. almost certainly wrong.
  7281. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  7282. type: string
  7283. type: object
  7284. x-kubernetes-map-type: atomic
  7285. sslEnabled:
  7286. description: sslEnabled Flag enable/disable
  7287. SSL communication with Gateway, default false
  7288. type: boolean
  7289. storageMode:
  7290. default: ThinProvisioned
  7291. description: |-
  7292. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  7293. Default is ThinProvisioned.
  7294. type: string
  7295. storagePool:
  7296. description: storagePool is the ScaleIO Storage
  7297. Pool associated with the protection domain.
  7298. type: string
  7299. system:
  7300. description: system is the name of the storage
  7301. system as configured in ScaleIO.
  7302. type: string
  7303. volumeName:
  7304. description: |-
  7305. volumeName is the name of a volume already created in the ScaleIO system
  7306. that is associated with this volume source.
  7307. type: string
  7308. required:
  7309. - gateway
  7310. - secretRef
  7311. - system
  7312. type: object
  7313. secret:
  7314. description: |-
  7315. secret represents a secret that should populate this volume.
  7316. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  7317. properties:
  7318. defaultMode:
  7319. description: |-
  7320. defaultMode is Optional: mode bits used to set permissions on created files by default.
  7321. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  7322. YAML accepts both octal and decimal values, JSON requires decimal values
  7323. for mode bits. Defaults to 0644.
  7324. Directories within the path are not affected by this setting.
  7325. This might be in conflict with other options that affect the file
  7326. mode, like fsGroup, and the result can be other mode bits set.
  7327. format: int32
  7328. type: integer
  7329. items:
  7330. description: |-
  7331. items If unspecified, each key-value pair in the Data field of the referenced
  7332. Secret will be projected into the volume as a file whose name is the
  7333. key and content is the value. If specified, the listed keys will be
  7334. projected into the specified paths, and unlisted keys will not be
  7335. present. If a key is specified which is not present in the Secret,
  7336. the volume setup will error unless it is marked optional. Paths must be
  7337. relative and may not contain the '..' path or start with '..'.
  7338. items:
  7339. description: Maps a string key to a path within
  7340. a volume.
  7341. properties:
  7342. key:
  7343. description: key is the key to project.
  7344. type: string
  7345. mode:
  7346. description: |-
  7347. mode is Optional: mode bits used to set permissions on this file.
  7348. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  7349. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  7350. If not specified, the volume defaultMode will be used.
  7351. This might be in conflict with other options that affect the file
  7352. mode, like fsGroup, and the result can be other mode bits set.
  7353. format: int32
  7354. type: integer
  7355. path:
  7356. description: |-
  7357. path is the relative path of the file to map the key to.
  7358. May not be an absolute path.
  7359. May not contain the path element '..'.
  7360. May not start with the string '..'.
  7361. type: string
  7362. required:
  7363. - key
  7364. - path
  7365. type: object
  7366. type: array
  7367. x-kubernetes-list-type: atomic
  7368. optional:
  7369. description: optional field specify whether
  7370. the Secret or its keys must be defined
  7371. type: boolean
  7372. secretName:
  7373. description: |-
  7374. secretName is the name of the secret in the pod's namespace to use.
  7375. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  7376. type: string
  7377. type: object
  7378. storageos:
  7379. description: |-
  7380. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  7381. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  7382. properties:
  7383. fsType:
  7384. description: |-
  7385. fsType is the filesystem type to mount.
  7386. Must be a filesystem type supported by the host operating system.
  7387. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  7388. type: string
  7389. readOnly:
  7390. description: |-
  7391. readOnly defaults to false (read/write). ReadOnly here will force
  7392. the ReadOnly setting in VolumeMounts.
  7393. type: boolean
  7394. secretRef:
  7395. description: |-
  7396. secretRef specifies the secret to use for obtaining the StorageOS API
  7397. credentials. If not specified, default values will be attempted.
  7398. properties:
  7399. name:
  7400. default: ""
  7401. description: |-
  7402. Name of the referent.
  7403. This field is effectively required, but due to backwards compatibility is
  7404. allowed to be empty. Instances of this type with an empty value here are
  7405. almost certainly wrong.
  7406. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  7407. type: string
  7408. type: object
  7409. x-kubernetes-map-type: atomic
  7410. volumeName:
  7411. description: |-
  7412. volumeName is the human-readable name of the StorageOS volume. Volume
  7413. names are only unique within a namespace.
  7414. type: string
  7415. volumeNamespace:
  7416. description: |-
  7417. volumeNamespace specifies the scope of the volume within StorageOS. If no
  7418. namespace is specified then the Pod's namespace will be used. This allows the
  7419. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  7420. Set VolumeName to any name to override the default behaviour.
  7421. Set to "default" if you are not using namespaces within StorageOS.
  7422. Namespaces that do not pre-exist within StorageOS will be created.
  7423. type: string
  7424. type: object
  7425. vsphereVolume:
  7426. description: |-
  7427. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  7428. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  7429. are redirected to the csi.vsphere.vmware.com CSI driver.
  7430. properties:
  7431. fsType:
  7432. description: |-
  7433. fsType is filesystem type to mount.
  7434. Must be a filesystem type supported by the host operating system.
  7435. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  7436. type: string
  7437. storagePolicyID:
  7438. description: storagePolicyID is the storage
  7439. Policy Based Management (SPBM) profile ID
  7440. associated with the StoragePolicyName.
  7441. type: string
  7442. storagePolicyName:
  7443. description: storagePolicyName is the storage
  7444. Policy Based Management (SPBM) profile name.
  7445. type: string
  7446. volumePath:
  7447. description: volumePath is the path that identifies
  7448. vSphere volume vmdk
  7449. type: string
  7450. required:
  7451. - volumePath
  7452. type: object
  7453. required:
  7454. - name
  7455. type: object
  7456. type: array
  7457. type: object
  7458. required:
  7459. - name
  7460. type: object
  7461. type: object
  7462. graphStore:
  7463. description: graphStore defines the configuration overrides for the
  7464. stack's graph store component.
  7465. properties:
  7466. enabled:
  7467. description: enabled indicates whether the component should be
  7468. deployed for the stack.
  7469. type: boolean
  7470. template:
  7471. description: template holds the configuration overrides for the
  7472. component.
  7473. properties:
  7474. metadata:
  7475. description: metadata is a standard object metadata.
  7476. type: object
  7477. name:
  7478. description: name selects a built-in preset.
  7479. type: string
  7480. spec:
  7481. description: spec holds the pod-level configuration for the
  7482. workload.
  7483. properties:
  7484. affinity:
  7485. description: affinity provides fine-grained node and pod
  7486. (anti-)affinity rules.
  7487. properties:
  7488. nodeAffinity:
  7489. description: Describes node affinity scheduling rules
  7490. for the pod.
  7491. properties:
  7492. preferredDuringSchedulingIgnoredDuringExecution:
  7493. description: |-
  7494. The scheduler will prefer to schedule pods to nodes that satisfy
  7495. the affinity expressions specified by this field, but it may choose
  7496. a node that violates one or more of the expressions. The node that is
  7497. most preferred is the one with the greatest sum of weights, i.e.
  7498. for each node that meets all of the scheduling requirements (resource
  7499. request, requiredDuringScheduling affinity expressions, etc.),
  7500. compute a sum by iterating through the elements of this field and adding
  7501. "weight" to the sum if the node matches the corresponding matchExpressions; the
  7502. node(s) with the highest sum are the most preferred.
  7503. items:
  7504. description: |-
  7505. An empty preferred scheduling term matches all objects with implicit weight 0
  7506. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  7507. properties:
  7508. preference:
  7509. description: A node selector term, associated
  7510. with the corresponding weight.
  7511. properties:
  7512. matchExpressions:
  7513. description: A list of node selector
  7514. requirements by node's labels.
  7515. items:
  7516. description: |-
  7517. A node selector requirement is a selector that contains values, a key, and an operator
  7518. that relates the key and values.
  7519. properties:
  7520. key:
  7521. description: The label key that
  7522. the selector applies to.
  7523. type: string
  7524. operator:
  7525. description: |-
  7526. Represents a key's relationship to a set of values.
  7527. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7528. type: string
  7529. values:
  7530. description: |-
  7531. An array of string values. If the operator is In or NotIn,
  7532. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7533. the values array must be empty. If the operator is Gt or Lt, the values
  7534. array must have a single element, which will be interpreted as an integer.
  7535. This array is replaced during a strategic merge patch.
  7536. items:
  7537. type: string
  7538. type: array
  7539. x-kubernetes-list-type: atomic
  7540. required:
  7541. - key
  7542. - operator
  7543. type: object
  7544. type: array
  7545. x-kubernetes-list-type: atomic
  7546. matchFields:
  7547. description: A list of node selector
  7548. requirements by node's fields.
  7549. items:
  7550. description: |-
  7551. A node selector requirement is a selector that contains values, a key, and an operator
  7552. that relates the key and values.
  7553. properties:
  7554. key:
  7555. description: The label key that
  7556. the selector applies to.
  7557. type: string
  7558. operator:
  7559. description: |-
  7560. Represents a key's relationship to a set of values.
  7561. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7562. type: string
  7563. values:
  7564. description: |-
  7565. An array of string values. If the operator is In or NotIn,
  7566. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7567. the values array must be empty. If the operator is Gt or Lt, the values
  7568. array must have a single element, which will be interpreted as an integer.
  7569. This array is replaced during a strategic merge patch.
  7570. items:
  7571. type: string
  7572. type: array
  7573. x-kubernetes-list-type: atomic
  7574. required:
  7575. - key
  7576. - operator
  7577. type: object
  7578. type: array
  7579. x-kubernetes-list-type: atomic
  7580. type: object
  7581. x-kubernetes-map-type: atomic
  7582. weight:
  7583. description: Weight associated with matching
  7584. the corresponding nodeSelectorTerm, in
  7585. the range 1-100.
  7586. format: int32
  7587. type: integer
  7588. required:
  7589. - preference
  7590. - weight
  7591. type: object
  7592. type: array
  7593. x-kubernetes-list-type: atomic
  7594. requiredDuringSchedulingIgnoredDuringExecution:
  7595. description: |-
  7596. If the affinity requirements specified by this field are not met at
  7597. scheduling time, the pod will not be scheduled onto the node.
  7598. If the affinity requirements specified by this field cease to be met
  7599. at some point during pod execution (e.g. due to an update), the system
  7600. may or may not try to eventually evict the pod from its node.
  7601. properties:
  7602. nodeSelectorTerms:
  7603. description: Required. A list of node selector
  7604. terms. The terms are ORed.
  7605. items:
  7606. description: |-
  7607. A null or empty node selector term matches no objects. The requirements of
  7608. them are ANDed.
  7609. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  7610. properties:
  7611. matchExpressions:
  7612. description: A list of node selector
  7613. requirements by node's labels.
  7614. items:
  7615. description: |-
  7616. A node selector requirement is a selector that contains values, a key, and an operator
  7617. that relates the key and values.
  7618. properties:
  7619. key:
  7620. description: The label key that
  7621. the selector applies to.
  7622. type: string
  7623. operator:
  7624. description: |-
  7625. Represents a key's relationship to a set of values.
  7626. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7627. type: string
  7628. values:
  7629. description: |-
  7630. An array of string values. If the operator is In or NotIn,
  7631. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7632. the values array must be empty. If the operator is Gt or Lt, the values
  7633. array must have a single element, which will be interpreted as an integer.
  7634. This array is replaced during a strategic merge patch.
  7635. items:
  7636. type: string
  7637. type: array
  7638. x-kubernetes-list-type: atomic
  7639. required:
  7640. - key
  7641. - operator
  7642. type: object
  7643. type: array
  7644. x-kubernetes-list-type: atomic
  7645. matchFields:
  7646. description: A list of node selector
  7647. requirements by node's fields.
  7648. items:
  7649. description: |-
  7650. A node selector requirement is a selector that contains values, a key, and an operator
  7651. that relates the key and values.
  7652. properties:
  7653. key:
  7654. description: The label key that
  7655. the selector applies to.
  7656. type: string
  7657. operator:
  7658. description: |-
  7659. Represents a key's relationship to a set of values.
  7660. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7661. type: string
  7662. values:
  7663. description: |-
  7664. An array of string values. If the operator is In or NotIn,
  7665. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7666. the values array must be empty. If the operator is Gt or Lt, the values
  7667. array must have a single element, which will be interpreted as an integer.
  7668. This array is replaced during a strategic merge patch.
  7669. items:
  7670. type: string
  7671. type: array
  7672. x-kubernetes-list-type: atomic
  7673. required:
  7674. - key
  7675. - operator
  7676. type: object
  7677. type: array
  7678. x-kubernetes-list-type: atomic
  7679. type: object
  7680. x-kubernetes-map-type: atomic
  7681. type: array
  7682. x-kubernetes-list-type: atomic
  7683. required:
  7684. - nodeSelectorTerms
  7685. type: object
  7686. x-kubernetes-map-type: atomic
  7687. type: object
  7688. podAffinity:
  7689. description: Describes pod affinity scheduling rules
  7690. (e.g. co-locate this pod in the same node, zone,
  7691. etc. as some other pod(s)).
  7692. properties:
  7693. preferredDuringSchedulingIgnoredDuringExecution:
  7694. description: |-
  7695. The scheduler will prefer to schedule pods to nodes that satisfy
  7696. the affinity expressions specified by this field, but it may choose
  7697. a node that violates one or more of the expressions. The node that is
  7698. most preferred is the one with the greatest sum of weights, i.e.
  7699. for each node that meets all of the scheduling requirements (resource
  7700. request, requiredDuringScheduling affinity expressions, etc.),
  7701. compute a sum by iterating through the elements of this field and adding
  7702. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  7703. node(s) with the highest sum are the most preferred.
  7704. items:
  7705. description: The weights of all of the matched
  7706. WeightedPodAffinityTerm fields are added per-node
  7707. to find the most preferred node(s)
  7708. properties:
  7709. podAffinityTerm:
  7710. description: Required. A pod affinity term,
  7711. associated with the corresponding weight.
  7712. properties:
  7713. labelSelector:
  7714. description: |-
  7715. A label query over a set of resources, in this case pods.
  7716. If it's null, this PodAffinityTerm matches with no Pods.
  7717. properties:
  7718. matchExpressions:
  7719. description: matchExpressions is
  7720. a list of label selector requirements.
  7721. The requirements are ANDed.
  7722. items:
  7723. description: |-
  7724. A label selector requirement is a selector that contains values, a key, and an operator that
  7725. relates the key and values.
  7726. properties:
  7727. key:
  7728. description: key is the label
  7729. key that the selector applies
  7730. to.
  7731. type: string
  7732. operator:
  7733. description: |-
  7734. operator represents a key's relationship to a set of values.
  7735. Valid operators are In, NotIn, Exists and DoesNotExist.
  7736. type: string
  7737. values:
  7738. description: |-
  7739. values is an array of string values. If the operator is In or NotIn,
  7740. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7741. the values array must be empty. This array is replaced during a strategic
  7742. merge patch.
  7743. items:
  7744. type: string
  7745. type: array
  7746. x-kubernetes-list-type: atomic
  7747. required:
  7748. - key
  7749. - operator
  7750. type: object
  7751. type: array
  7752. x-kubernetes-list-type: atomic
  7753. matchLabels:
  7754. additionalProperties:
  7755. type: string
  7756. description: |-
  7757. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  7758. map is equivalent to an element of matchExpressions, whose key field is "key", the
  7759. operator is "In", and the values array contains only "value". The requirements are ANDed.
  7760. type: object
  7761. type: object
  7762. x-kubernetes-map-type: atomic
  7763. matchLabelKeys:
  7764. description: |-
  7765. MatchLabelKeys is a set of pod label keys to select which pods will
  7766. be taken into consideration. The keys are used to lookup values from the
  7767. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  7768. to select the group of existing pods which pods will be taken into consideration
  7769. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  7770. pod labels will be ignored. The default value is empty.
  7771. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  7772. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  7773. items:
  7774. type: string
  7775. type: array
  7776. x-kubernetes-list-type: atomic
  7777. mismatchLabelKeys:
  7778. description: |-
  7779. MismatchLabelKeys is a set of pod label keys to select which pods will
  7780. be taken into consideration. The keys are used to lookup values from the
  7781. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  7782. to select the group of existing pods which pods will be taken into consideration
  7783. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  7784. pod labels will be ignored. The default value is empty.
  7785. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  7786. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  7787. items:
  7788. type: string
  7789. type: array
  7790. x-kubernetes-list-type: atomic
  7791. namespaceSelector:
  7792. description: |-
  7793. A label query over the set of namespaces that the term applies to.
  7794. The term is applied to the union of the namespaces selected by this field
  7795. and the ones listed in the namespaces field.
  7796. null selector and null or empty namespaces list means "this pod's namespace".
  7797. An empty selector ({}) matches all namespaces.
  7798. properties:
  7799. matchExpressions:
  7800. description: matchExpressions is
  7801. a list of label selector requirements.
  7802. The requirements are ANDed.
  7803. items:
  7804. description: |-
  7805. A label selector requirement is a selector that contains values, a key, and an operator that
  7806. relates the key and values.
  7807. properties:
  7808. key:
  7809. description: key is the label
  7810. key that the selector applies
  7811. to.
  7812. type: string
  7813. operator:
  7814. description: |-
  7815. operator represents a key's relationship to a set of values.
  7816. Valid operators are In, NotIn, Exists and DoesNotExist.
  7817. type: string
  7818. values:
  7819. description: |-
  7820. values is an array of string values. If the operator is In or NotIn,
  7821. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7822. the values array must be empty. This array is replaced during a strategic
  7823. merge patch.
  7824. items:
  7825. type: string
  7826. type: array
  7827. x-kubernetes-list-type: atomic
  7828. required:
  7829. - key
  7830. - operator
  7831. type: object
  7832. type: array
  7833. x-kubernetes-list-type: atomic
  7834. matchLabels:
  7835. additionalProperties:
  7836. type: string
  7837. description: |-
  7838. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  7839. map is equivalent to an element of matchExpressions, whose key field is "key", the
  7840. operator is "In", and the values array contains only "value". The requirements are ANDed.
  7841. type: object
  7842. type: object
  7843. x-kubernetes-map-type: atomic
  7844. namespaces:
  7845. description: |-
  7846. namespaces specifies a static list of namespace names that the term applies to.
  7847. The term is applied to the union of the namespaces listed in this field
  7848. and the ones selected by namespaceSelector.
  7849. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7850. items:
  7851. type: string
  7852. type: array
  7853. x-kubernetes-list-type: atomic
  7854. topologyKey:
  7855. description: |-
  7856. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  7857. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  7858. whose value of the label with key topologyKey matches that of any node on which any of the
  7859. selected pods is running.
  7860. Empty topologyKey is not allowed.
  7861. type: string
  7862. required:
  7863. - topologyKey
  7864. type: object
  7865. weight:
  7866. description: |-
  7867. weight associated with matching the corresponding podAffinityTerm,
  7868. in the range 1-100.
  7869. format: int32
  7870. type: integer
  7871. required:
  7872. - podAffinityTerm
  7873. - weight
  7874. type: object
  7875. type: array
  7876. x-kubernetes-list-type: atomic
  7877. requiredDuringSchedulingIgnoredDuringExecution:
  7878. description: |-
  7879. If the affinity requirements specified by this field are not met at
  7880. scheduling time, the pod will not be scheduled onto the node.
  7881. If the affinity requirements specified by this field cease to be met
  7882. at some point during pod execution (e.g. due to a pod label update), the
  7883. system may or may not try to eventually evict the pod from its node.
  7884. When there are multiple elements, the lists of nodes corresponding to each
  7885. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7886. items:
  7887. description: |-
  7888. Defines a set of pods (namely those matching the labelSelector
  7889. relative to the given namespace(s)) that this pod should be
  7890. co-located (affinity) or not co-located (anti-affinity) with,
  7891. where co-located is defined as running on a node whose value of
  7892. the label with key <topologyKey> matches that of any node on which
  7893. a pod of the set of pods is running
  7894. properties:
  7895. labelSelector:
  7896. description: |-
  7897. A label query over a set of resources, in this case pods.
  7898. If it's null, this PodAffinityTerm matches with no Pods.
  7899. properties:
  7900. matchExpressions:
  7901. description: matchExpressions is a list
  7902. of label selector requirements. The
  7903. requirements are ANDed.
  7904. items:
  7905. description: |-
  7906. A label selector requirement is a selector that contains values, a key, and an operator that
  7907. relates the key and values.
  7908. properties:
  7909. key:
  7910. description: key is the label
  7911. key that the selector applies
  7912. to.
  7913. type: string
  7914. operator:
  7915. description: |-
  7916. operator represents a key's relationship to a set of values.
  7917. Valid operators are In, NotIn, Exists and DoesNotExist.
  7918. type: string
  7919. values:
  7920. description: |-
  7921. values is an array of string values. If the operator is In or NotIn,
  7922. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7923. the values array must be empty. This array is replaced during a strategic
  7924. merge patch.
  7925. items:
  7926. type: string
  7927. type: array
  7928. x-kubernetes-list-type: atomic
  7929. required:
  7930. - key
  7931. - operator
  7932. type: object
  7933. type: array
  7934. x-kubernetes-list-type: atomic
  7935. matchLabels:
  7936. additionalProperties:
  7937. type: string
  7938. description: |-
  7939. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  7940. map is equivalent to an element of matchExpressions, whose key field is "key", the
  7941. operator is "In", and the values array contains only "value". The requirements are ANDed.
  7942. type: object
  7943. type: object
  7944. x-kubernetes-map-type: atomic
  7945. matchLabelKeys:
  7946. description: |-
  7947. MatchLabelKeys is a set of pod label keys to select which pods will
  7948. be taken into consideration. The keys are used to lookup values from the
  7949. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  7950. to select the group of existing pods which pods will be taken into consideration
  7951. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  7952. pod labels will be ignored. The default value is empty.
  7953. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  7954. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  7955. items:
  7956. type: string
  7957. type: array
  7958. x-kubernetes-list-type: atomic
  7959. mismatchLabelKeys:
  7960. description: |-
  7961. MismatchLabelKeys is a set of pod label keys to select which pods will
  7962. be taken into consideration. The keys are used to lookup values from the
  7963. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  7964. to select the group of existing pods which pods will be taken into consideration
  7965. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  7966. pod labels will be ignored. The default value is empty.
  7967. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  7968. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  7969. items:
  7970. type: string
  7971. type: array
  7972. x-kubernetes-list-type: atomic
  7973. namespaceSelector:
  7974. description: |-
  7975. A label query over the set of namespaces that the term applies to.
  7976. The term is applied to the union of the namespaces selected by this field
  7977. and the ones listed in the namespaces field.
  7978. null selector and null or empty namespaces list means "this pod's namespace".
  7979. An empty selector ({}) matches all namespaces.
  7980. properties:
  7981. matchExpressions:
  7982. description: matchExpressions is a list
  7983. of label selector requirements. The
  7984. requirements are ANDed.
  7985. items:
  7986. description: |-
  7987. A label selector requirement is a selector that contains values, a key, and an operator that
  7988. relates the key and values.
  7989. properties:
  7990. key:
  7991. description: key is the label
  7992. key that the selector applies
  7993. to.
  7994. type: string
  7995. operator:
  7996. description: |-
  7997. operator represents a key's relationship to a set of values.
  7998. Valid operators are In, NotIn, Exists and DoesNotExist.
  7999. type: string
  8000. values:
  8001. description: |-
  8002. values is an array of string values. If the operator is In or NotIn,
  8003. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  8004. the values array must be empty. This array is replaced during a strategic
  8005. merge patch.
  8006. items:
  8007. type: string
  8008. type: array
  8009. x-kubernetes-list-type: atomic
  8010. required:
  8011. - key
  8012. - operator
  8013. type: object
  8014. type: array
  8015. x-kubernetes-list-type: atomic
  8016. matchLabels:
  8017. additionalProperties:
  8018. type: string
  8019. description: |-
  8020. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  8021. map is equivalent to an element of matchExpressions, whose key field is "key", the
  8022. operator is "In", and the values array contains only "value". The requirements are ANDed.
  8023. type: object
  8024. type: object
  8025. x-kubernetes-map-type: atomic
  8026. namespaces:
  8027. description: |-
  8028. namespaces specifies a static list of namespace names that the term applies to.
  8029. The term is applied to the union of the namespaces listed in this field
  8030. and the ones selected by namespaceSelector.
  8031. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  8032. items:
  8033. type: string
  8034. type: array
  8035. x-kubernetes-list-type: atomic
  8036. topologyKey:
  8037. description: |-
  8038. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  8039. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  8040. whose value of the label with key topologyKey matches that of any node on which any of the
  8041. selected pods is running.
  8042. Empty topologyKey is not allowed.
  8043. type: string
  8044. required:
  8045. - topologyKey
  8046. type: object
  8047. type: array
  8048. x-kubernetes-list-type: atomic
  8049. type: object
  8050. podAntiAffinity:
  8051. description: Describes pod anti-affinity scheduling
  8052. rules (e.g. avoid putting this pod in the same node,
  8053. zone, etc. as some other pod(s)).
  8054. properties:
  8055. preferredDuringSchedulingIgnoredDuringExecution:
  8056. description: |-
  8057. The scheduler will prefer to schedule pods to nodes that satisfy
  8058. the anti-affinity expressions specified by this field, but it may choose
  8059. a node that violates one or more of the expressions. The node that is
  8060. most preferred is the one with the greatest sum of weights, i.e.
  8061. for each node that meets all of the scheduling requirements (resource
  8062. request, requiredDuringScheduling anti-affinity expressions, etc.),
  8063. compute a sum by iterating through the elements of this field and subtracting
  8064. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  8065. node(s) with the highest sum are the most preferred.
  8066. items:
  8067. description: The weights of all of the matched
  8068. WeightedPodAffinityTerm fields are added per-node
  8069. to find the most preferred node(s)
  8070. properties:
  8071. podAffinityTerm:
  8072. description: Required. A pod affinity term,
  8073. associated with the corresponding weight.
  8074. properties:
  8075. labelSelector:
  8076. description: |-
  8077. A label query over a set of resources, in this case pods.
  8078. If it's null, this PodAffinityTerm matches with no Pods.
  8079. properties:
  8080. matchExpressions:
  8081. description: matchExpressions is
  8082. a list of label selector requirements.
  8083. The requirements are ANDed.
  8084. items:
  8085. description: |-
  8086. A label selector requirement is a selector that contains values, a key, and an operator that
  8087. relates the key and values.
  8088. properties:
  8089. key:
  8090. description: key is the label
  8091. key that the selector applies
  8092. to.
  8093. type: string
  8094. operator:
  8095. description: |-
  8096. operator represents a key's relationship to a set of values.
  8097. Valid operators are In, NotIn, Exists and DoesNotExist.
  8098. type: string
  8099. values:
  8100. description: |-
  8101. values is an array of string values. If the operator is In or NotIn,
  8102. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  8103. the values array must be empty. This array is replaced during a strategic
  8104. merge patch.
  8105. items:
  8106. type: string
  8107. type: array
  8108. x-kubernetes-list-type: atomic
  8109. required:
  8110. - key
  8111. - operator
  8112. type: object
  8113. type: array
  8114. x-kubernetes-list-type: atomic
  8115. matchLabels:
  8116. additionalProperties:
  8117. type: string
  8118. description: |-
  8119. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  8120. map is equivalent to an element of matchExpressions, whose key field is "key", the
  8121. operator is "In", and the values array contains only "value". The requirements are ANDed.
  8122. type: object
  8123. type: object
  8124. x-kubernetes-map-type: atomic
  8125. matchLabelKeys:
  8126. description: |-
  8127. MatchLabelKeys is a set of pod label keys to select which pods will
  8128. be taken into consideration. The keys are used to lookup values from the
  8129. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  8130. to select the group of existing pods which pods will be taken into consideration
  8131. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  8132. pod labels will be ignored. The default value is empty.
  8133. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  8134. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  8135. items:
  8136. type: string
  8137. type: array
  8138. x-kubernetes-list-type: atomic
  8139. mismatchLabelKeys:
  8140. description: |-
  8141. MismatchLabelKeys is a set of pod label keys to select which pods will
  8142. be taken into consideration. The keys are used to lookup values from the
  8143. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  8144. to select the group of existing pods which pods will be taken into consideration
  8145. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  8146. pod labels will be ignored. The default value is empty.
  8147. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  8148. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  8149. items:
  8150. type: string
  8151. type: array
  8152. x-kubernetes-list-type: atomic
  8153. namespaceSelector:
  8154. description: |-
  8155. A label query over the set of namespaces that the term applies to.
  8156. The term is applied to the union of the namespaces selected by this field
  8157. and the ones listed in the namespaces field.
  8158. null selector and null or empty namespaces list means "this pod's namespace".
  8159. An empty selector ({}) matches all namespaces.
  8160. properties:
  8161. matchExpressions:
  8162. description: matchExpressions is
  8163. a list of label selector requirements.
  8164. The requirements are ANDed.
  8165. items:
  8166. description: |-
  8167. A label selector requirement is a selector that contains values, a key, and an operator that
  8168. relates the key and values.
  8169. properties:
  8170. key:
  8171. description: key is the label
  8172. key that the selector applies
  8173. to.
  8174. type: string
  8175. operator:
  8176. description: |-
  8177. operator represents a key's relationship to a set of values.
  8178. Valid operators are In, NotIn, Exists and DoesNotExist.
  8179. type: string
  8180. values:
  8181. description: |-
  8182. values is an array of string values. If the operator is In or NotIn,
  8183. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  8184. the values array must be empty. This array is replaced during a strategic
  8185. merge patch.
  8186. items:
  8187. type: string
  8188. type: array
  8189. x-kubernetes-list-type: atomic
  8190. required:
  8191. - key
  8192. - operator
  8193. type: object
  8194. type: array
  8195. x-kubernetes-list-type: atomic
  8196. matchLabels:
  8197. additionalProperties:
  8198. type: string
  8199. description: |-
  8200. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  8201. map is equivalent to an element of matchExpressions, whose key field is "key", the
  8202. operator is "In", and the values array contains only "value". The requirements are ANDed.
  8203. type: object
  8204. type: object
  8205. x-kubernetes-map-type: atomic
  8206. namespaces:
  8207. description: |-
  8208. namespaces specifies a static list of namespace names that the term applies to.
  8209. The term is applied to the union of the namespaces listed in this field
  8210. and the ones selected by namespaceSelector.
  8211. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  8212. items:
  8213. type: string
  8214. type: array
  8215. x-kubernetes-list-type: atomic
  8216. topologyKey:
  8217. description: |-
  8218. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  8219. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  8220. whose value of the label with key topologyKey matches that of any node on which any of the
  8221. selected pods is running.
  8222. Empty topologyKey is not allowed.
  8223. type: string
  8224. required:
  8225. - topologyKey
  8226. type: object
  8227. weight:
  8228. description: |-
  8229. weight associated with matching the corresponding podAffinityTerm,
  8230. in the range 1-100.
  8231. format: int32
  8232. type: integer
  8233. required:
  8234. - podAffinityTerm
  8235. - weight
  8236. type: object
  8237. type: array
  8238. x-kubernetes-list-type: atomic
  8239. requiredDuringSchedulingIgnoredDuringExecution:
  8240. description: |-
  8241. If the anti-affinity requirements specified by this field are not met at
  8242. scheduling time, the pod will not be scheduled onto the node.
  8243. If the anti-affinity requirements specified by this field cease to be met
  8244. at some point during pod execution (e.g. due to a pod label update), the
  8245. system may or may not try to eventually evict the pod from its node.
  8246. When there are multiple elements, the lists of nodes corresponding to each
  8247. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  8248. items:
  8249. description: |-
  8250. Defines a set of pods (namely those matching the labelSelector
  8251. relative to the given namespace(s)) that this pod should be
  8252. co-located (affinity) or not co-located (anti-affinity) with,
  8253. where co-located is defined as running on a node whose value of
  8254. the label with key <topologyKey> matches that of any node on which
  8255. a pod of the set of pods is running
  8256. properties:
  8257. labelSelector:
  8258. description: |-
  8259. A label query over a set of resources, in this case pods.
  8260. If it's null, this PodAffinityTerm matches with no Pods.
  8261. properties:
  8262. matchExpressions:
  8263. description: matchExpressions is a list
  8264. of label selector requirements. The
  8265. requirements are ANDed.
  8266. items:
  8267. description: |-
  8268. A label selector requirement is a selector that contains values, a key, and an operator that
  8269. relates the key and values.
  8270. properties:
  8271. key:
  8272. description: key is the label
  8273. key that the selector applies
  8274. to.
  8275. type: string
  8276. operator:
  8277. description: |-
  8278. operator represents a key's relationship to a set of values.
  8279. Valid operators are In, NotIn, Exists and DoesNotExist.
  8280. type: string
  8281. values:
  8282. description: |-
  8283. values is an array of string values. If the operator is In or NotIn,
  8284. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  8285. the values array must be empty. This array is replaced during a strategic
  8286. merge patch.
  8287. items:
  8288. type: string
  8289. type: array
  8290. x-kubernetes-list-type: atomic
  8291. required:
  8292. - key
  8293. - operator
  8294. type: object
  8295. type: array
  8296. x-kubernetes-list-type: atomic
  8297. matchLabels:
  8298. additionalProperties:
  8299. type: string
  8300. description: |-
  8301. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  8302. map is equivalent to an element of matchExpressions, whose key field is "key", the
  8303. operator is "In", and the values array contains only "value". The requirements are ANDed.
  8304. type: object
  8305. type: object
  8306. x-kubernetes-map-type: atomic
  8307. matchLabelKeys:
  8308. description: |-
  8309. MatchLabelKeys is a set of pod label keys to select which pods will
  8310. be taken into consideration. The keys are used to lookup values from the
  8311. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  8312. to select the group of existing pods which pods will be taken into consideration
  8313. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  8314. pod labels will be ignored. The default value is empty.
  8315. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  8316. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  8317. items:
  8318. type: string
  8319. type: array
  8320. x-kubernetes-list-type: atomic
  8321. mismatchLabelKeys:
  8322. description: |-
  8323. MismatchLabelKeys is a set of pod label keys to select which pods will
  8324. be taken into consideration. The keys are used to lookup values from the
  8325. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  8326. to select the group of existing pods which pods will be taken into consideration
  8327. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  8328. pod labels will be ignored. The default value is empty.
  8329. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  8330. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  8331. items:
  8332. type: string
  8333. type: array
  8334. x-kubernetes-list-type: atomic
  8335. namespaceSelector:
  8336. description: |-
  8337. A label query over the set of namespaces that the term applies to.
  8338. The term is applied to the union of the namespaces selected by this field
  8339. and the ones listed in the namespaces field.
  8340. null selector and null or empty namespaces list means "this pod's namespace".
  8341. An empty selector ({}) matches all namespaces.
  8342. properties:
  8343. matchExpressions:
  8344. description: matchExpressions is a list
  8345. of label selector requirements. The
  8346. requirements are ANDed.
  8347. items:
  8348. description: |-
  8349. A label selector requirement is a selector that contains values, a key, and an operator that
  8350. relates the key and values.
  8351. properties:
  8352. key:
  8353. description: key is the label
  8354. key that the selector applies
  8355. to.
  8356. type: string
  8357. operator:
  8358. description: |-
  8359. operator represents a key's relationship to a set of values.
  8360. Valid operators are In, NotIn, Exists and DoesNotExist.
  8361. type: string
  8362. values:
  8363. description: |-
  8364. values is an array of string values. If the operator is In or NotIn,
  8365. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  8366. the values array must be empty. This array is replaced during a strategic
  8367. merge patch.
  8368. items:
  8369. type: string
  8370. type: array
  8371. x-kubernetes-list-type: atomic
  8372. required:
  8373. - key
  8374. - operator
  8375. type: object
  8376. type: array
  8377. x-kubernetes-list-type: atomic
  8378. matchLabels:
  8379. additionalProperties:
  8380. type: string
  8381. description: |-
  8382. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  8383. map is equivalent to an element of matchExpressions, whose key field is "key", the
  8384. operator is "In", and the values array contains only "value". The requirements are ANDed.
  8385. type: object
  8386. type: object
  8387. x-kubernetes-map-type: atomic
  8388. namespaces:
  8389. description: |-
  8390. namespaces specifies a static list of namespace names that the term applies to.
  8391. The term is applied to the union of the namespaces listed in this field
  8392. and the ones selected by namespaceSelector.
  8393. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  8394. items:
  8395. type: string
  8396. type: array
  8397. x-kubernetes-list-type: atomic
  8398. topologyKey:
  8399. description: |-
  8400. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  8401. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  8402. whose value of the label with key topologyKey matches that of any node on which any of the
  8403. selected pods is running.
  8404. Empty topologyKey is not allowed.
  8405. type: string
  8406. required:
  8407. - topologyKey
  8408. type: object
  8409. type: array
  8410. x-kubernetes-list-type: atomic
  8411. type: object
  8412. type: object
  8413. nodeSelector:
  8414. additionalProperties:
  8415. type: string
  8416. description: nodeSelector pins pods to nodes that match
  8417. all the specified labels.
  8418. type: object
  8419. resources:
  8420. description: resources sets per-container resource requests
  8421. and limits.
  8422. properties:
  8423. claims:
  8424. description: |-
  8425. Claims lists the names of resources, defined in spec.resourceClaims,
  8426. that are used by this container.
  8427. This field depends on the
  8428. DynamicResourceAllocation feature gate.
  8429. This field is immutable. It can only be set for containers.
  8430. items:
  8431. description: ResourceClaim references one entry
  8432. in PodSpec.ResourceClaims.
  8433. properties:
  8434. name:
  8435. description: |-
  8436. Name must match the name of one entry in pod.spec.resourceClaims of
  8437. the Pod where this field is used. It makes that resource available
  8438. inside a container.
  8439. type: string
  8440. request:
  8441. description: |-
  8442. Request is the name chosen for a request in the referenced claim.
  8443. If empty, everything from the claim is made available, otherwise
  8444. only the result of this request.
  8445. type: string
  8446. required:
  8447. - name
  8448. type: object
  8449. type: array
  8450. x-kubernetes-list-map-keys:
  8451. - name
  8452. x-kubernetes-list-type: map
  8453. limits:
  8454. additionalProperties:
  8455. anyOf:
  8456. - type: integer
  8457. - type: string
  8458. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8459. x-kubernetes-int-or-string: true
  8460. description: |-
  8461. Limits describes the maximum amount of compute resources allowed.
  8462. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  8463. type: object
  8464. requests:
  8465. additionalProperties:
  8466. anyOf:
  8467. - type: integer
  8468. - type: string
  8469. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8470. x-kubernetes-int-or-string: true
  8471. description: |-
  8472. Requests describes the minimum amount of compute resources required.
  8473. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  8474. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  8475. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  8476. type: object
  8477. type: object
  8478. runtime:
  8479. description: runtime describes the container runtime to
  8480. use for the workload.
  8481. properties:
  8482. args:
  8483. description: args specifies or overrides the preset's
  8484. container command.
  8485. items:
  8486. type: string
  8487. type: array
  8488. command:
  8489. description: command specifies or overrides the preset's
  8490. container entrypoint.
  8491. items:
  8492. type: string
  8493. type: array
  8494. conditionalArgs:
  8495. description: conditionalArgs are appended to the preset
  8496. command conditionally.
  8497. items:
  8498. properties:
  8499. args:
  8500. description: args are appended to the preset
  8501. args.
  8502. items:
  8503. type: string
  8504. type: array
  8505. when:
  8506. description: when the value is not empty after
  8507. variable substitution, the args are appended
  8508. to the preset args.
  8509. type: string
  8510. required:
  8511. - args
  8512. - when
  8513. type: object
  8514. type: array
  8515. env:
  8516. description: env holds environment variables injected
  8517. into the container.
  8518. items:
  8519. description: EnvVar represents an environment variable
  8520. present in a Container.
  8521. properties:
  8522. name:
  8523. description: |-
  8524. Name of the environment variable.
  8525. May consist of any printable ASCII characters except '='.
  8526. type: string
  8527. value:
  8528. description: |-
  8529. Variable references $(VAR_NAME) are expanded
  8530. using the previously defined environment variables in the container and
  8531. any service environment variables. If a variable cannot be resolved,
  8532. the reference in the input string will be unchanged. Double $$ are reduced
  8533. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  8534. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  8535. Escaped references will never be expanded, regardless of whether the variable
  8536. exists or not.
  8537. Defaults to "".
  8538. type: string
  8539. valueFrom:
  8540. description: Source for the environment variable's
  8541. value. Cannot be used if value is not empty.
  8542. properties:
  8543. configMapKeyRef:
  8544. description: Selects a key of a ConfigMap.
  8545. properties:
  8546. key:
  8547. description: The key to select.
  8548. type: string
  8549. name:
  8550. default: ""
  8551. description: |-
  8552. Name of the referent.
  8553. This field is effectively required, but due to backwards compatibility is
  8554. allowed to be empty. Instances of this type with an empty value here are
  8555. almost certainly wrong.
  8556. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  8557. type: string
  8558. optional:
  8559. description: Specify whether the ConfigMap
  8560. or its key must be defined
  8561. type: boolean
  8562. required:
  8563. - key
  8564. type: object
  8565. x-kubernetes-map-type: atomic
  8566. fieldRef:
  8567. description: |-
  8568. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  8569. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  8570. properties:
  8571. apiVersion:
  8572. description: Version of the schema the
  8573. FieldPath is written in terms of,
  8574. defaults to "v1".
  8575. type: string
  8576. fieldPath:
  8577. description: Path of the field to select
  8578. in the specified API version.
  8579. type: string
  8580. required:
  8581. - fieldPath
  8582. type: object
  8583. x-kubernetes-map-type: atomic
  8584. fileKeyRef:
  8585. description: |-
  8586. FileKeyRef selects a key of the env file.
  8587. Requires the EnvFiles feature gate to be enabled.
  8588. properties:
  8589. key:
  8590. description: |-
  8591. The key within the env file. An invalid key will prevent the pod from starting.
  8592. The keys defined within a source may consist of any printable ASCII characters except '='.
  8593. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  8594. type: string
  8595. optional:
  8596. default: false
  8597. description: |-
  8598. Specify whether the file or its key must be defined. If the file or key
  8599. does not exist, then the env var is not published.
  8600. If optional is set to true and the specified key does not exist,
  8601. the environment variable will not be set in the Pod's containers.
  8602. If optional is set to false and the specified key does not exist,
  8603. an error will be returned during Pod creation.
  8604. type: boolean
  8605. path:
  8606. description: |-
  8607. The path within the volume from which to select the file.
  8608. Must be relative and may not contain the '..' path or start with '..'.
  8609. type: string
  8610. volumeName:
  8611. description: The name of the volume
  8612. mount containing the env file.
  8613. type: string
  8614. required:
  8615. - key
  8616. - path
  8617. - volumeName
  8618. type: object
  8619. x-kubernetes-map-type: atomic
  8620. resourceFieldRef:
  8621. description: |-
  8622. Selects a resource of the container: only resources limits and requests
  8623. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  8624. properties:
  8625. containerName:
  8626. description: 'Container name: required
  8627. for volumes, optional for env vars'
  8628. type: string
  8629. divisor:
  8630. anyOf:
  8631. - type: integer
  8632. - type: string
  8633. description: Specifies the output format
  8634. of the exposed resources, defaults
  8635. to "1"
  8636. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8637. x-kubernetes-int-or-string: true
  8638. resource:
  8639. description: 'Required: resource to
  8640. select'
  8641. type: string
  8642. required:
  8643. - resource
  8644. type: object
  8645. x-kubernetes-map-type: atomic
  8646. secretKeyRef:
  8647. description: Selects a key of a secret in
  8648. the pod's namespace
  8649. properties:
  8650. key:
  8651. description: The key of the secret to
  8652. select from. Must be a valid secret
  8653. key.
  8654. type: string
  8655. name:
  8656. default: ""
  8657. description: |-
  8658. Name of the referent.
  8659. This field is effectively required, but due to backwards compatibility is
  8660. allowed to be empty. Instances of this type with an empty value here are
  8661. almost certainly wrong.
  8662. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  8663. type: string
  8664. optional:
  8665. description: Specify whether the Secret
  8666. or its key must be defined
  8667. type: boolean
  8668. required:
  8669. - key
  8670. type: object
  8671. x-kubernetes-map-type: atomic
  8672. type: object
  8673. required:
  8674. - name
  8675. type: object
  8676. type: array
  8677. envFrom:
  8678. description: envFrom references ConfigMaps or Secrets
  8679. whose key-value pairs are injected as environment
  8680. variables.
  8681. items:
  8682. description: EnvFromSource represents the source
  8683. of a set of ConfigMaps or Secrets
  8684. properties:
  8685. configMapRef:
  8686. description: The ConfigMap to select from
  8687. properties:
  8688. name:
  8689. default: ""
  8690. description: |-
  8691. Name of the referent.
  8692. This field is effectively required, but due to backwards compatibility is
  8693. allowed to be empty. Instances of this type with an empty value here are
  8694. almost certainly wrong.
  8695. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  8696. type: string
  8697. optional:
  8698. description: Specify whether the ConfigMap
  8699. must be defined
  8700. type: boolean
  8701. type: object
  8702. x-kubernetes-map-type: atomic
  8703. prefix:
  8704. description: |-
  8705. Optional text to prepend to the name of each environment variable.
  8706. May consist of any printable ASCII characters except '='.
  8707. type: string
  8708. secretRef:
  8709. description: The Secret to select from
  8710. properties:
  8711. name:
  8712. default: ""
  8713. description: |-
  8714. Name of the referent.
  8715. This field is effectively required, but due to backwards compatibility is
  8716. allowed to be empty. Instances of this type with an empty value here are
  8717. almost certainly wrong.
  8718. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  8719. type: string
  8720. optional:
  8721. description: Specify whether the Secret
  8722. must be defined
  8723. type: boolean
  8724. type: object
  8725. x-kubernetes-map-type: atomic
  8726. type: object
  8727. type: array
  8728. extraArgs:
  8729. description: extraArgs are appended to the preset
  8730. command.
  8731. items:
  8732. type: string
  8733. type: array
  8734. image:
  8735. description: |-
  8736. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  8737. or pull from a private registry mirror.
  8738. type: string
  8739. name:
  8740. description: name selects a built-in runtime preset.
  8741. type: string
  8742. port:
  8743. description: port specifies or overrides the container
  8744. port the runtime listens on.
  8745. format: int32
  8746. type: integer
  8747. volumeMounts:
  8748. description: volumeMounts defines where pod volumes
  8749. are mounted inside the container.
  8750. items:
  8751. description: VolumeMount describes a mounting of
  8752. a Volume within a container.
  8753. properties:
  8754. mountPath:
  8755. description: |-
  8756. Path within the container at which the volume should be mounted. Must
  8757. not contain ':'.
  8758. type: string
  8759. mountPropagation:
  8760. description: |-
  8761. mountPropagation determines how mounts are propagated from the host
  8762. to container and the other way around.
  8763. When not set, MountPropagationNone is used.
  8764. This field is beta in 1.10.
  8765. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  8766. (which defaults to None).
  8767. type: string
  8768. name:
  8769. description: This must match the Name of a Volume.
  8770. type: string
  8771. readOnly:
  8772. description: |-
  8773. Mounted read-only if true, read-write otherwise (false or unspecified).
  8774. Defaults to false.
  8775. type: boolean
  8776. recursiveReadOnly:
  8777. description: |-
  8778. RecursiveReadOnly specifies whether read-only mounts should be handled
  8779. recursively.
  8780. If ReadOnly is false, this field has no meaning and must be unspecified.
  8781. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  8782. recursively read-only. If this field is set to IfPossible, the mount is made
  8783. recursively read-only, if it is supported by the container runtime. If this
  8784. field is set to Enabled, the mount is made recursively read-only if it is
  8785. supported by the container runtime, otherwise the pod will not be started and
  8786. an error will be generated to indicate the reason.
  8787. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  8788. None (or be unspecified, which defaults to None).
  8789. If this field is not specified, it is treated as an equivalent of Disabled.
  8790. type: string
  8791. subPath:
  8792. description: |-
  8793. Path within the volume from which the container's volume should be mounted.
  8794. Defaults to "" (volume's root).
  8795. type: string
  8796. subPathExpr:
  8797. description: |-
  8798. Expanded path within the volume from which the container's volume should be mounted.
  8799. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  8800. Defaults to "" (volume's root).
  8801. SubPathExpr and SubPath are mutually exclusive.
  8802. type: string
  8803. required:
  8804. - mountPath
  8805. - name
  8806. type: object
  8807. type: array
  8808. type: object
  8809. securityContext:
  8810. description: |-
  8811. securityContext sets pod-level security attributes such as runAsUser,
  8812. runAsGroup, fsGroup, and sysctls.
  8813. properties:
  8814. appArmorProfile:
  8815. description: |-
  8816. appArmorProfile is the AppArmor options to use by the containers in this pod.
  8817. Note that this field cannot be set when spec.os.name is windows.
  8818. properties:
  8819. localhostProfile:
  8820. description: |-
  8821. localhostProfile indicates a profile loaded on the node that should be used.
  8822. The profile must be preconfigured on the node to work.
  8823. Must match the loaded name of the profile.
  8824. Must be set if and only if type is "Localhost".
  8825. type: string
  8826. type:
  8827. description: |-
  8828. type indicates which kind of AppArmor profile will be applied.
  8829. Valid options are:
  8830. Localhost - a profile pre-loaded on the node.
  8831. RuntimeDefault - the container runtime's default profile.
  8832. Unconfined - no AppArmor enforcement.
  8833. type: string
  8834. required:
  8835. - type
  8836. type: object
  8837. fsGroup:
  8838. description: |-
  8839. A special supplemental group that applies to all containers in a pod.
  8840. Some volume types allow the Kubelet to change the ownership of that volume
  8841. to be owned by the pod:
  8842. 1. The owning GID will be the FSGroup
  8843. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  8844. 3. The permission bits are OR'd with rw-rw----
  8845. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  8846. Note that this field cannot be set when spec.os.name is windows.
  8847. format: int64
  8848. type: integer
  8849. fsGroupChangePolicy:
  8850. description: |-
  8851. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  8852. before being exposed inside Pod. This field will only apply to
  8853. volume types which support fsGroup based ownership(and permissions).
  8854. It will have no effect on ephemeral volume types such as: secret, configmaps
  8855. and emptydir.
  8856. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  8857. Note that this field cannot be set when spec.os.name is windows.
  8858. type: string
  8859. runAsGroup:
  8860. description: |-
  8861. The GID to run the entrypoint of the container process.
  8862. Uses runtime default if unset.
  8863. May also be set in SecurityContext. If set in both SecurityContext and
  8864. PodSecurityContext, the value specified in SecurityContext takes precedence
  8865. for that container.
  8866. Note that this field cannot be set when spec.os.name is windows.
  8867. format: int64
  8868. type: integer
  8869. runAsNonRoot:
  8870. description: |-
  8871. Indicates that the container must run as a non-root user.
  8872. If true, the Kubelet will validate the image at runtime to ensure that it
  8873. does not run as UID 0 (root) and fail to start the container if it does.
  8874. If unset or false, no such validation will be performed.
  8875. May also be set in SecurityContext. If set in both SecurityContext and
  8876. PodSecurityContext, the value specified in SecurityContext takes precedence.
  8877. type: boolean
  8878. runAsUser:
  8879. description: |-
  8880. The UID to run the entrypoint of the container process.
  8881. Defaults to user specified in image metadata if unspecified.
  8882. May also be set in SecurityContext. If set in both SecurityContext and
  8883. PodSecurityContext, the value specified in SecurityContext takes precedence
  8884. for that container.
  8885. Note that this field cannot be set when spec.os.name is windows.
  8886. format: int64
  8887. type: integer
  8888. seLinuxChangePolicy:
  8889. description: |-
  8890. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  8891. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  8892. Valid values are "MountOption" and "Recursive".
  8893. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  8894. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  8895. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  8896. This requires all Pods that share the same volume to use the same SELinux label.
  8897. It is not possible to share the same volume among privileged and unprivileged Pods.
  8898. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  8899. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  8900. CSIDriver instance. Other volumes are always re-labelled recursively.
  8901. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  8902. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  8903. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  8904. and "Recursive" for all other volumes.
  8905. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  8906. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  8907. Note that this field cannot be set when spec.os.name is windows.
  8908. type: string
  8909. seLinuxOptions:
  8910. description: |-
  8911. The SELinux context to be applied to all containers.
  8912. If unspecified, the container runtime will allocate a random SELinux context for each
  8913. container. May also be set in SecurityContext. If set in
  8914. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  8915. takes precedence for that container.
  8916. Note that this field cannot be set when spec.os.name is windows.
  8917. properties:
  8918. level:
  8919. description: Level is SELinux level label that
  8920. applies to the container.
  8921. type: string
  8922. role:
  8923. description: Role is a SELinux role label that
  8924. applies to the container.
  8925. type: string
  8926. type:
  8927. description: Type is a SELinux type label that
  8928. applies to the container.
  8929. type: string
  8930. user:
  8931. description: User is a SELinux user label that
  8932. applies to the container.
  8933. type: string
  8934. type: object
  8935. seccompProfile:
  8936. description: |-
  8937. The seccomp options to use by the containers in this pod.
  8938. Note that this field cannot be set when spec.os.name is windows.
  8939. properties:
  8940. localhostProfile:
  8941. description: |-
  8942. localhostProfile indicates a profile defined in a file on the node should be used.
  8943. The profile must be preconfigured on the node to work.
  8944. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  8945. Must be set if type is "Localhost". Must NOT be set for any other type.
  8946. type: string
  8947. type:
  8948. description: |-
  8949. type indicates which kind of seccomp profile will be applied.
  8950. Valid options are:
  8951. Localhost - a profile defined in a file on the node should be used.
  8952. RuntimeDefault - the container runtime default profile should be used.
  8953. Unconfined - no profile should be applied.
  8954. type: string
  8955. required:
  8956. - type
  8957. type: object
  8958. supplementalGroups:
  8959. description: |-
  8960. A list of groups applied to the first process run in each container, in
  8961. addition to the container's primary GID and fsGroup (if specified). If
  8962. the SupplementalGroupsPolicy feature is enabled, the
  8963. supplementalGroupsPolicy field determines whether these are in addition
  8964. to or instead of any group memberships defined in the container image.
  8965. If unspecified, no additional groups are added, though group memberships
  8966. defined in the container image may still be used, depending on the
  8967. supplementalGroupsPolicy field.
  8968. Note that this field cannot be set when spec.os.name is windows.
  8969. items:
  8970. format: int64
  8971. type: integer
  8972. type: array
  8973. x-kubernetes-list-type: atomic
  8974. supplementalGroupsPolicy:
  8975. description: |-
  8976. Defines how supplemental groups of the first container processes are calculated.
  8977. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  8978. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  8979. and the container runtime must implement support for this feature.
  8980. Note that this field cannot be set when spec.os.name is windows.
  8981. type: string
  8982. sysctls:
  8983. description: |-
  8984. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  8985. sysctls (by the container runtime) might fail to launch.
  8986. Note that this field cannot be set when spec.os.name is windows.
  8987. items:
  8988. description: Sysctl defines a kernel parameter to
  8989. be set
  8990. properties:
  8991. name:
  8992. description: Name of a property to set
  8993. type: string
  8994. value:
  8995. description: Value of a property to set
  8996. type: string
  8997. required:
  8998. - name
  8999. - value
  9000. type: object
  9001. type: array
  9002. x-kubernetes-list-type: atomic
  9003. windowsOptions:
  9004. description: |-
  9005. The Windows specific settings applied to all containers.
  9006. If unspecified, the options within a container's SecurityContext will be used.
  9007. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  9008. Note that this field cannot be set when spec.os.name is linux.
  9009. properties:
  9010. gmsaCredentialSpec:
  9011. description: |-
  9012. GMSACredentialSpec is where the GMSA admission webhook
  9013. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  9014. GMSA credential spec named by the GMSACredentialSpecName field.
  9015. type: string
  9016. gmsaCredentialSpecName:
  9017. description: GMSACredentialSpecName is the name
  9018. of the GMSA credential spec to use.
  9019. type: string
  9020. hostProcess:
  9021. description: |-
  9022. HostProcess determines if a container should be run as a 'Host Process' container.
  9023. All of a Pod's containers must have the same effective HostProcess value
  9024. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  9025. In addition, if HostProcess is true then HostNetwork must also be set to true.
  9026. type: boolean
  9027. runAsUserName:
  9028. description: |-
  9029. The UserName in Windows to run the entrypoint of the container process.
  9030. Defaults to the user specified in image metadata if unspecified.
  9031. May also be set in PodSecurityContext. If set in both SecurityContext and
  9032. PodSecurityContext, the value specified in SecurityContext takes precedence.
  9033. type: string
  9034. type: object
  9035. type: object
  9036. tolerations:
  9037. description: tolerations allow pods to be scheduled onto
  9038. nodes with matching taints.
  9039. items:
  9040. description: |-
  9041. The pod this Toleration is attached to tolerates any taint that matches
  9042. the triple <key,value,effect> using the matching operator <operator>.
  9043. properties:
  9044. effect:
  9045. description: |-
  9046. Effect indicates the taint effect to match. Empty means match all taint effects.
  9047. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  9048. type: string
  9049. key:
  9050. description: |-
  9051. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  9052. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  9053. type: string
  9054. operator:
  9055. description: |-
  9056. Operator represents a key's relationship to the value.
  9057. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
  9058. Exists is equivalent to wildcard for value, so that a pod can
  9059. tolerate all taints of a particular category.
  9060. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
  9061. type: string
  9062. tolerationSeconds:
  9063. description: |-
  9064. TolerationSeconds represents the period of time the toleration (which must be
  9065. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  9066. it is not set, which means tolerate the taint forever (do not evict). Zero and
  9067. negative values will be treated as 0 (evict immediately) by the system.
  9068. format: int64
  9069. type: integer
  9070. value:
  9071. description: |-
  9072. Value is the taint value the toleration matches to.
  9073. If the operator is Exists, the value should be empty, otherwise just a regular string.
  9074. type: string
  9075. type: object
  9076. type: array
  9077. topologySpreadConstraints:
  9078. description: |-
  9079. topologySpreadConstraints controls how pods are spread across failure
  9080. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  9081. items:
  9082. description: TopologySpreadConstraint specifies how
  9083. to spread matching pods among the given topology.
  9084. properties:
  9085. labelSelector:
  9086. description: |-
  9087. LabelSelector is used to find matching pods.
  9088. Pods that match this label selector are counted to determine the number of pods
  9089. in their corresponding topology domain.
  9090. properties:
  9091. matchExpressions:
  9092. description: matchExpressions is a list of label
  9093. selector requirements. The requirements are
  9094. ANDed.
  9095. items:
  9096. description: |-
  9097. A label selector requirement is a selector that contains values, a key, and an operator that
  9098. relates the key and values.
  9099. properties:
  9100. key:
  9101. description: key is the label key that
  9102. the selector applies to.
  9103. type: string
  9104. operator:
  9105. description: |-
  9106. operator represents a key's relationship to a set of values.
  9107. Valid operators are In, NotIn, Exists and DoesNotExist.
  9108. type: string
  9109. values:
  9110. description: |-
  9111. values is an array of string values. If the operator is In or NotIn,
  9112. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9113. the values array must be empty. This array is replaced during a strategic
  9114. merge patch.
  9115. items:
  9116. type: string
  9117. type: array
  9118. x-kubernetes-list-type: atomic
  9119. required:
  9120. - key
  9121. - operator
  9122. type: object
  9123. type: array
  9124. x-kubernetes-list-type: atomic
  9125. matchLabels:
  9126. additionalProperties:
  9127. type: string
  9128. description: |-
  9129. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9130. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9131. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9132. type: object
  9133. type: object
  9134. x-kubernetes-map-type: atomic
  9135. matchLabelKeys:
  9136. description: |-
  9137. MatchLabelKeys is a set of pod label keys to select the pods over which
  9138. spreading will be calculated. The keys are used to lookup values from the
  9139. incoming pod labels, those key-value labels are ANDed with labelSelector
  9140. to select the group of existing pods over which spreading will be calculated
  9141. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  9142. MatchLabelKeys cannot be set when LabelSelector isn't set.
  9143. Keys that don't exist in the incoming pod labels will
  9144. be ignored. A null or empty list means only match against labelSelector.
  9145. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  9146. items:
  9147. type: string
  9148. type: array
  9149. x-kubernetes-list-type: atomic
  9150. maxSkew:
  9151. description: |-
  9152. MaxSkew describes the degree to which pods may be unevenly distributed.
  9153. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  9154. between the number of matching pods in the target topology and the global minimum.
  9155. The global minimum is the minimum number of matching pods in an eligible domain
  9156. or zero if the number of eligible domains is less than MinDomains.
  9157. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  9158. labelSelector spread as 2/2/1:
  9159. In this case, the global minimum is 1.
  9160. | zone1 | zone2 | zone3 |
  9161. | P P | P P | P |
  9162. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  9163. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  9164. violate MaxSkew(1).
  9165. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  9166. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  9167. to topologies that satisfy it.
  9168. It's a required field. Default value is 1 and 0 is not allowed.
  9169. format: int32
  9170. type: integer
  9171. minDomains:
  9172. description: |-
  9173. MinDomains indicates a minimum number of eligible domains.
  9174. When the number of eligible domains with matching topology keys is less than minDomains,
  9175. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  9176. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  9177. this value has no effect on scheduling.
  9178. As a result, when the number of eligible domains is less than minDomains,
  9179. scheduler won't schedule more than maxSkew Pods to those domains.
  9180. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  9181. Valid values are integers greater than 0.
  9182. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  9183. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  9184. labelSelector spread as 2/2/2:
  9185. | zone1 | zone2 | zone3 |
  9186. | P P | P P | P P |
  9187. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  9188. In this situation, new pod with the same labelSelector cannot be scheduled,
  9189. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  9190. it will violate MaxSkew.
  9191. format: int32
  9192. type: integer
  9193. nodeAffinityPolicy:
  9194. description: |-
  9195. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  9196. when calculating pod topology spread skew. Options are:
  9197. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  9198. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  9199. If this value is nil, the behavior is equivalent to the Honor policy.
  9200. type: string
  9201. nodeTaintsPolicy:
  9202. description: |-
  9203. NodeTaintsPolicy indicates how we will treat node taints when calculating
  9204. pod topology spread skew. Options are:
  9205. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  9206. has a toleration, are included.
  9207. - Ignore: node taints are ignored. All nodes are included.
  9208. If this value is nil, the behavior is equivalent to the Ignore policy.
  9209. type: string
  9210. topologyKey:
  9211. description: |-
  9212. TopologyKey is the key of node labels. Nodes that have a label with this key
  9213. and identical values are considered to be in the same topology.
  9214. We consider each <key, value> as a "bucket", and try to put balanced number
  9215. of pods into each bucket.
  9216. We define a domain as a particular instance of a topology.
  9217. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  9218. nodeAffinityPolicy and nodeTaintsPolicy.
  9219. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  9220. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  9221. It's a required field.
  9222. type: string
  9223. whenUnsatisfiable:
  9224. description: |-
  9225. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  9226. the spread constraint.
  9227. - DoNotSchedule (default) tells the scheduler not to schedule it.
  9228. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  9229. but giving higher precedence to topologies that would help reduce the
  9230. skew.
  9231. A constraint is considered "Unsatisfiable" for an incoming pod
  9232. if and only if every possible node assignment for that pod would violate
  9233. "MaxSkew" on some topology.
  9234. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  9235. labelSelector spread as 3/1/1:
  9236. | zone1 | zone2 | zone3 |
  9237. | P P P | P | P |
  9238. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  9239. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  9240. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  9241. won't make it *more* imbalanced.
  9242. It's a required field.
  9243. type: string
  9244. required:
  9245. - maxSkew
  9246. - topologyKey
  9247. - whenUnsatisfiable
  9248. type: object
  9249. type: array
  9250. volumes:
  9251. description: volumes defines additional pod volumes available
  9252. to the runtime container.
  9253. items:
  9254. description: Volume represents a named volume in a pod
  9255. that may be accessed by any container in the pod.
  9256. properties:
  9257. awsElasticBlockStore:
  9258. description: |-
  9259. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  9260. kubelet's host machine and then exposed to the pod.
  9261. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  9262. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  9263. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  9264. properties:
  9265. fsType:
  9266. description: |-
  9267. fsType is the filesystem type of the volume that you want to mount.
  9268. Tip: Ensure that the filesystem type is supported by the host operating system.
  9269. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  9270. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  9271. type: string
  9272. partition:
  9273. description: |-
  9274. partition is the partition in the volume that you want to mount.
  9275. If omitted, the default is to mount by volume name.
  9276. Examples: For volume /dev/sda1, you specify the partition as "1".
  9277. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  9278. format: int32
  9279. type: integer
  9280. readOnly:
  9281. description: |-
  9282. readOnly value true will force the readOnly setting in VolumeMounts.
  9283. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  9284. type: boolean
  9285. volumeID:
  9286. description: |-
  9287. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  9288. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  9289. type: string
  9290. required:
  9291. - volumeID
  9292. type: object
  9293. azureDisk:
  9294. description: |-
  9295. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  9296. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  9297. are redirected to the disk.csi.azure.com CSI driver.
  9298. properties:
  9299. cachingMode:
  9300. description: 'cachingMode is the Host Caching
  9301. mode: None, Read Only, Read Write.'
  9302. type: string
  9303. diskName:
  9304. description: diskName is the Name of the data
  9305. disk in the blob storage
  9306. type: string
  9307. diskURI:
  9308. description: diskURI is the URI of data disk
  9309. in the blob storage
  9310. type: string
  9311. fsType:
  9312. default: ext4
  9313. description: |-
  9314. fsType is Filesystem type to mount.
  9315. Must be a filesystem type supported by the host operating system.
  9316. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  9317. type: string
  9318. kind:
  9319. description: 'kind expected values are Shared:
  9320. multiple blob disks per storage account Dedicated:
  9321. single blob disk per storage account Managed:
  9322. azure managed data disk (only in managed availability
  9323. set). defaults to shared'
  9324. type: string
  9325. readOnly:
  9326. default: false
  9327. description: |-
  9328. readOnly Defaults to false (read/write). ReadOnly here will force
  9329. the ReadOnly setting in VolumeMounts.
  9330. type: boolean
  9331. required:
  9332. - diskName
  9333. - diskURI
  9334. type: object
  9335. azureFile:
  9336. description: |-
  9337. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  9338. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  9339. are redirected to the file.csi.azure.com CSI driver.
  9340. properties:
  9341. readOnly:
  9342. description: |-
  9343. readOnly defaults to false (read/write). ReadOnly here will force
  9344. the ReadOnly setting in VolumeMounts.
  9345. type: boolean
  9346. secretName:
  9347. description: secretName is the name of secret
  9348. that contains Azure Storage Account Name and
  9349. Key
  9350. type: string
  9351. shareName:
  9352. description: shareName is the azure share Name
  9353. type: string
  9354. required:
  9355. - secretName
  9356. - shareName
  9357. type: object
  9358. cephfs:
  9359. description: |-
  9360. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  9361. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  9362. properties:
  9363. monitors:
  9364. description: |-
  9365. monitors is Required: Monitors is a collection of Ceph monitors
  9366. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  9367. items:
  9368. type: string
  9369. type: array
  9370. x-kubernetes-list-type: atomic
  9371. path:
  9372. description: 'path is Optional: Used as the
  9373. mounted root, rather than the full Ceph tree,
  9374. default is /'
  9375. type: string
  9376. readOnly:
  9377. description: |-
  9378. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  9379. the ReadOnly setting in VolumeMounts.
  9380. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  9381. type: boolean
  9382. secretFile:
  9383. description: |-
  9384. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  9385. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  9386. type: string
  9387. secretRef:
  9388. description: |-
  9389. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  9390. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  9391. properties:
  9392. name:
  9393. default: ""
  9394. description: |-
  9395. Name of the referent.
  9396. This field is effectively required, but due to backwards compatibility is
  9397. allowed to be empty. Instances of this type with an empty value here are
  9398. almost certainly wrong.
  9399. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  9400. type: string
  9401. type: object
  9402. x-kubernetes-map-type: atomic
  9403. user:
  9404. description: |-
  9405. user is optional: User is the rados user name, default is admin
  9406. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  9407. type: string
  9408. required:
  9409. - monitors
  9410. type: object
  9411. cinder:
  9412. description: |-
  9413. cinder represents a cinder volume attached and mounted on kubelets host machine.
  9414. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  9415. are redirected to the cinder.csi.openstack.org CSI driver.
  9416. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  9417. properties:
  9418. fsType:
  9419. description: |-
  9420. fsType is the filesystem type to mount.
  9421. Must be a filesystem type supported by the host operating system.
  9422. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  9423. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  9424. type: string
  9425. readOnly:
  9426. description: |-
  9427. readOnly defaults to false (read/write). ReadOnly here will force
  9428. the ReadOnly setting in VolumeMounts.
  9429. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  9430. type: boolean
  9431. secretRef:
  9432. description: |-
  9433. secretRef is optional: points to a secret object containing parameters used to connect
  9434. to OpenStack.
  9435. properties:
  9436. name:
  9437. default: ""
  9438. description: |-
  9439. Name of the referent.
  9440. This field is effectively required, but due to backwards compatibility is
  9441. allowed to be empty. Instances of this type with an empty value here are
  9442. almost certainly wrong.
  9443. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  9444. type: string
  9445. type: object
  9446. x-kubernetes-map-type: atomic
  9447. volumeID:
  9448. description: |-
  9449. volumeID used to identify the volume in cinder.
  9450. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  9451. type: string
  9452. required:
  9453. - volumeID
  9454. type: object
  9455. configMap:
  9456. description: configMap represents a configMap that
  9457. should populate this volume
  9458. properties:
  9459. defaultMode:
  9460. description: |-
  9461. defaultMode is optional: mode bits used to set permissions on created files by default.
  9462. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  9463. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  9464. Defaults to 0644.
  9465. Directories within the path are not affected by this setting.
  9466. This might be in conflict with other options that affect the file
  9467. mode, like fsGroup, and the result can be other mode bits set.
  9468. format: int32
  9469. type: integer
  9470. items:
  9471. description: |-
  9472. items if unspecified, each key-value pair in the Data field of the referenced
  9473. ConfigMap will be projected into the volume as a file whose name is the
  9474. key and content is the value. If specified, the listed keys will be
  9475. projected into the specified paths, and unlisted keys will not be
  9476. present. If a key is specified which is not present in the ConfigMap,
  9477. the volume setup will error unless it is marked optional. Paths must be
  9478. relative and may not contain the '..' path or start with '..'.
  9479. items:
  9480. description: Maps a string key to a path within
  9481. a volume.
  9482. properties:
  9483. key:
  9484. description: key is the key to project.
  9485. type: string
  9486. mode:
  9487. description: |-
  9488. mode is Optional: mode bits used to set permissions on this file.
  9489. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  9490. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  9491. If not specified, the volume defaultMode will be used.
  9492. This might be in conflict with other options that affect the file
  9493. mode, like fsGroup, and the result can be other mode bits set.
  9494. format: int32
  9495. type: integer
  9496. path:
  9497. description: |-
  9498. path is the relative path of the file to map the key to.
  9499. May not be an absolute path.
  9500. May not contain the path element '..'.
  9501. May not start with the string '..'.
  9502. type: string
  9503. required:
  9504. - key
  9505. - path
  9506. type: object
  9507. type: array
  9508. x-kubernetes-list-type: atomic
  9509. name:
  9510. default: ""
  9511. description: |-
  9512. Name of the referent.
  9513. This field is effectively required, but due to backwards compatibility is
  9514. allowed to be empty. Instances of this type with an empty value here are
  9515. almost certainly wrong.
  9516. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  9517. type: string
  9518. optional:
  9519. description: optional specify whether the ConfigMap
  9520. or its keys must be defined
  9521. type: boolean
  9522. type: object
  9523. x-kubernetes-map-type: atomic
  9524. csi:
  9525. description: csi (Container Storage Interface) represents
  9526. ephemeral storage that is handled by certain external
  9527. CSI drivers.
  9528. properties:
  9529. driver:
  9530. description: |-
  9531. driver is the name of the CSI driver that handles this volume.
  9532. Consult with your admin for the correct name as registered in the cluster.
  9533. type: string
  9534. fsType:
  9535. description: |-
  9536. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  9537. If not provided, the empty value is passed to the associated CSI driver
  9538. which will determine the default filesystem to apply.
  9539. type: string
  9540. nodePublishSecretRef:
  9541. description: |-
  9542. nodePublishSecretRef is a reference to the secret object containing
  9543. sensitive information to pass to the CSI driver to complete the CSI
  9544. NodePublishVolume and NodeUnpublishVolume calls.
  9545. This field is optional, and may be empty if no secret is required. If the
  9546. secret object contains more than one secret, all secret references are passed.
  9547. properties:
  9548. name:
  9549. default: ""
  9550. description: |-
  9551. Name of the referent.
  9552. This field is effectively required, but due to backwards compatibility is
  9553. allowed to be empty. Instances of this type with an empty value here are
  9554. almost certainly wrong.
  9555. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  9556. type: string
  9557. type: object
  9558. x-kubernetes-map-type: atomic
  9559. readOnly:
  9560. description: |-
  9561. readOnly specifies a read-only configuration for the volume.
  9562. Defaults to false (read/write).
  9563. type: boolean
  9564. volumeAttributes:
  9565. additionalProperties:
  9566. type: string
  9567. description: |-
  9568. volumeAttributes stores driver-specific properties that are passed to the CSI
  9569. driver. Consult your driver's documentation for supported values.
  9570. type: object
  9571. required:
  9572. - driver
  9573. type: object
  9574. downwardAPI:
  9575. description: downwardAPI represents downward API
  9576. about the pod that should populate this volume
  9577. properties:
  9578. defaultMode:
  9579. description: |-
  9580. Optional: mode bits to use on created files by default. Must be a
  9581. Optional: mode bits used to set permissions on created files by default.
  9582. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  9583. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  9584. Defaults to 0644.
  9585. Directories within the path are not affected by this setting.
  9586. This might be in conflict with other options that affect the file
  9587. mode, like fsGroup, and the result can be other mode bits set.
  9588. format: int32
  9589. type: integer
  9590. items:
  9591. description: Items is a list of downward API
  9592. volume file
  9593. items:
  9594. description: DownwardAPIVolumeFile represents
  9595. information to create the file containing
  9596. the pod field
  9597. properties:
  9598. fieldRef:
  9599. description: 'Required: Selects a field
  9600. of the pod: only annotations, labels,
  9601. name, namespace and uid are supported.'
  9602. properties:
  9603. apiVersion:
  9604. description: Version of the schema
  9605. the FieldPath is written in terms
  9606. of, defaults to "v1".
  9607. type: string
  9608. fieldPath:
  9609. description: Path of the field to
  9610. select in the specified API version.
  9611. type: string
  9612. required:
  9613. - fieldPath
  9614. type: object
  9615. x-kubernetes-map-type: atomic
  9616. mode:
  9617. description: |-
  9618. Optional: mode bits used to set permissions on this file, must be an octal value
  9619. between 0000 and 0777 or a decimal value between 0 and 511.
  9620. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  9621. If not specified, the volume defaultMode will be used.
  9622. This might be in conflict with other options that affect the file
  9623. mode, like fsGroup, and the result can be other mode bits set.
  9624. format: int32
  9625. type: integer
  9626. path:
  9627. description: 'Required: Path is the relative
  9628. path name of the file to be created.
  9629. Must not be absolute or contain the
  9630. ''..'' path. Must be utf-8 encoded.
  9631. The first item of the relative path
  9632. must not start with ''..'''
  9633. type: string
  9634. resourceFieldRef:
  9635. description: |-
  9636. Selects a resource of the container: only resources limits and requests
  9637. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  9638. properties:
  9639. containerName:
  9640. description: 'Container name: required
  9641. for volumes, optional for env vars'
  9642. type: string
  9643. divisor:
  9644. anyOf:
  9645. - type: integer
  9646. - type: string
  9647. description: Specifies the output
  9648. format of the exposed resources,
  9649. defaults to "1"
  9650. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9651. x-kubernetes-int-or-string: true
  9652. resource:
  9653. description: 'Required: resource to
  9654. select'
  9655. type: string
  9656. required:
  9657. - resource
  9658. type: object
  9659. x-kubernetes-map-type: atomic
  9660. required:
  9661. - path
  9662. type: object
  9663. type: array
  9664. x-kubernetes-list-type: atomic
  9665. type: object
  9666. emptyDir:
  9667. description: |-
  9668. emptyDir represents a temporary directory that shares a pod's lifetime.
  9669. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  9670. properties:
  9671. medium:
  9672. description: |-
  9673. medium represents what type of storage medium should back this directory.
  9674. The default is "" which means to use the node's default medium.
  9675. Must be an empty string (default) or Memory.
  9676. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  9677. type: string
  9678. sizeLimit:
  9679. anyOf:
  9680. - type: integer
  9681. - type: string
  9682. description: |-
  9683. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  9684. The size limit is also applicable for memory medium.
  9685. The maximum usage on memory medium EmptyDir would be the minimum value between
  9686. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  9687. The default is nil which means that the limit is undefined.
  9688. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  9689. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9690. x-kubernetes-int-or-string: true
  9691. type: object
  9692. ephemeral:
  9693. description: |-
  9694. ephemeral represents a volume that is handled by a cluster storage driver.
  9695. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  9696. and deleted when the pod is removed.
  9697. Use this if:
  9698. a) the volume is only needed while the pod runs,
  9699. b) features of normal volumes like restoring from snapshot or capacity
  9700. tracking are needed,
  9701. c) the storage driver is specified through a storage class, and
  9702. d) the storage driver supports dynamic volume provisioning through
  9703. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  9704. information on the connection between this volume type
  9705. and PersistentVolumeClaim).
  9706. Use PersistentVolumeClaim or one of the vendor-specific
  9707. APIs for volumes that persist for longer than the lifecycle
  9708. of an individual pod.
  9709. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  9710. be used that way - see the documentation of the driver for
  9711. more information.
  9712. A pod can use both types of ephemeral volumes and
  9713. persistent volumes at the same time.
  9714. properties:
  9715. volumeClaimTemplate:
  9716. description: |-
  9717. Will be used to create a stand-alone PVC to provision the volume.
  9718. The pod in which this EphemeralVolumeSource is embedded will be the
  9719. owner of the PVC, i.e. the PVC will be deleted together with the
  9720. pod. The name of the PVC will be `<pod name>-<volume name>` where
  9721. `<volume name>` is the name from the `PodSpec.Volumes` array
  9722. entry. Pod validation will reject the pod if the concatenated name
  9723. is not valid for a PVC (for example, too long).
  9724. An existing PVC with that name that is not owned by the pod
  9725. will *not* be used for the pod to avoid using an unrelated
  9726. volume by mistake. Starting the pod is then blocked until
  9727. the unrelated PVC is removed. If such a pre-created PVC is
  9728. meant to be used by the pod, the PVC has to updated with an
  9729. owner reference to the pod once the pod exists. Normally
  9730. this should not be necessary, but it may be useful when
  9731. manually reconstructing a broken cluster.
  9732. This field is read-only and no changes will be made by Kubernetes
  9733. to the PVC after it has been created.
  9734. Required, must not be nil.
  9735. properties:
  9736. metadata:
  9737. description: |-
  9738. May contain labels and annotations that will be copied into the PVC
  9739. when creating it. No other fields are allowed and will be rejected during
  9740. validation.
  9741. type: object
  9742. spec:
  9743. description: |-
  9744. The specification for the PersistentVolumeClaim. The entire content is
  9745. copied unchanged into the PVC that gets created from this
  9746. template. The same fields as in a PersistentVolumeClaim
  9747. are also valid here.
  9748. properties:
  9749. accessModes:
  9750. description: |-
  9751. accessModes contains the desired access modes the volume should have.
  9752. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  9753. items:
  9754. type: string
  9755. type: array
  9756. x-kubernetes-list-type: atomic
  9757. dataSource:
  9758. description: |-
  9759. dataSource field can be used to specify either:
  9760. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  9761. * An existing PVC (PersistentVolumeClaim)
  9762. If the provisioner or an external controller can support the specified data source,
  9763. it will create a new volume based on the contents of the specified data source.
  9764. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  9765. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  9766. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  9767. properties:
  9768. apiGroup:
  9769. description: |-
  9770. APIGroup is the group for the resource being referenced.
  9771. If APIGroup is not specified, the specified Kind must be in the core API group.
  9772. For any other third-party types, APIGroup is required.
  9773. type: string
  9774. kind:
  9775. description: Kind is the type of
  9776. resource being referenced
  9777. type: string
  9778. name:
  9779. description: Name is the name of
  9780. resource being referenced
  9781. type: string
  9782. required:
  9783. - kind
  9784. - name
  9785. type: object
  9786. x-kubernetes-map-type: atomic
  9787. dataSourceRef:
  9788. description: |-
  9789. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  9790. volume is desired. This may be any object from a non-empty API group (non
  9791. core object) or a PersistentVolumeClaim object.
  9792. When this field is specified, volume binding will only succeed if the type of
  9793. the specified object matches some installed volume populator or dynamic
  9794. provisioner.
  9795. This field will replace the functionality of the dataSource field and as such
  9796. if both fields are non-empty, they must have the same value. For backwards
  9797. compatibility, when namespace isn't specified in dataSourceRef,
  9798. both fields (dataSource and dataSourceRef) will be set to the same
  9799. value automatically if one of them is empty and the other is non-empty.
  9800. When namespace is specified in dataSourceRef,
  9801. dataSource isn't set to the same value and must be empty.
  9802. There are three important differences between dataSource and dataSourceRef:
  9803. * While dataSource only allows two specific types of objects, dataSourceRef
  9804. allows any non-core object, as well as PersistentVolumeClaim objects.
  9805. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  9806. preserves all values, and generates an error if a disallowed value is
  9807. specified.
  9808. * While dataSource only allows local objects, dataSourceRef allows objects
  9809. in any namespaces.
  9810. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  9811. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  9812. properties:
  9813. apiGroup:
  9814. description: |-
  9815. APIGroup is the group for the resource being referenced.
  9816. If APIGroup is not specified, the specified Kind must be in the core API group.
  9817. For any other third-party types, APIGroup is required.
  9818. type: string
  9819. kind:
  9820. description: Kind is the type of
  9821. resource being referenced
  9822. type: string
  9823. name:
  9824. description: Name is the name of
  9825. resource being referenced
  9826. type: string
  9827. namespace:
  9828. description: |-
  9829. Namespace is the namespace of resource being referenced
  9830. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  9831. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  9832. type: string
  9833. required:
  9834. - kind
  9835. - name
  9836. type: object
  9837. resources:
  9838. description: |-
  9839. resources represents the minimum resources the volume should have.
  9840. Users are allowed to specify resource requirements
  9841. that are lower than previous value but must still be higher than capacity recorded in the
  9842. status field of the claim.
  9843. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  9844. properties:
  9845. limits:
  9846. additionalProperties:
  9847. anyOf:
  9848. - type: integer
  9849. - type: string
  9850. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9851. x-kubernetes-int-or-string: true
  9852. description: |-
  9853. Limits describes the maximum amount of compute resources allowed.
  9854. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  9855. type: object
  9856. requests:
  9857. additionalProperties:
  9858. anyOf:
  9859. - type: integer
  9860. - type: string
  9861. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9862. x-kubernetes-int-or-string: true
  9863. description: |-
  9864. Requests describes the minimum amount of compute resources required.
  9865. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  9866. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  9867. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  9868. type: object
  9869. type: object
  9870. selector:
  9871. description: selector is a label query
  9872. over volumes to consider for binding.
  9873. properties:
  9874. matchExpressions:
  9875. description: matchExpressions is
  9876. a list of label selector requirements.
  9877. The requirements are ANDed.
  9878. items:
  9879. description: |-
  9880. A label selector requirement is a selector that contains values, a key, and an operator that
  9881. relates the key and values.
  9882. properties:
  9883. key:
  9884. description: key is the label
  9885. key that the selector applies
  9886. to.
  9887. type: string
  9888. operator:
  9889. description: |-
  9890. operator represents a key's relationship to a set of values.
  9891. Valid operators are In, NotIn, Exists and DoesNotExist.
  9892. type: string
  9893. values:
  9894. description: |-
  9895. values is an array of string values. If the operator is In or NotIn,
  9896. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9897. the values array must be empty. This array is replaced during a strategic
  9898. merge patch.
  9899. items:
  9900. type: string
  9901. type: array
  9902. x-kubernetes-list-type: atomic
  9903. required:
  9904. - key
  9905. - operator
  9906. type: object
  9907. type: array
  9908. x-kubernetes-list-type: atomic
  9909. matchLabels:
  9910. additionalProperties:
  9911. type: string
  9912. description: |-
  9913. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9914. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9915. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9916. type: object
  9917. type: object
  9918. x-kubernetes-map-type: atomic
  9919. storageClassName:
  9920. description: |-
  9921. storageClassName is the name of the StorageClass required by the claim.
  9922. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  9923. type: string
  9924. volumeAttributesClassName:
  9925. description: |-
  9926. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  9927. If specified, the CSI driver will create or update the volume with the attributes defined
  9928. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  9929. it can be changed after the claim is created. An empty string or nil value indicates that no
  9930. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  9931. this field can be reset to its previous value (including nil) to cancel the modification.
  9932. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  9933. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  9934. exists.
  9935. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  9936. type: string
  9937. volumeMode:
  9938. description: |-
  9939. volumeMode defines what type of volume is required by the claim.
  9940. Value of Filesystem is implied when not included in claim spec.
  9941. type: string
  9942. volumeName:
  9943. description: volumeName is the binding
  9944. reference to the PersistentVolume
  9945. backing this claim.
  9946. type: string
  9947. type: object
  9948. required:
  9949. - spec
  9950. type: object
  9951. type: object
  9952. fc:
  9953. description: fc represents a Fibre Channel resource
  9954. that is attached to a kubelet's host machine and
  9955. then exposed to the pod.
  9956. properties:
  9957. fsType:
  9958. description: |-
  9959. fsType is the filesystem type to mount.
  9960. Must be a filesystem type supported by the host operating system.
  9961. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  9962. type: string
  9963. lun:
  9964. description: 'lun is Optional: FC target lun
  9965. number'
  9966. format: int32
  9967. type: integer
  9968. readOnly:
  9969. description: |-
  9970. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  9971. the ReadOnly setting in VolumeMounts.
  9972. type: boolean
  9973. targetWWNs:
  9974. description: 'targetWWNs is Optional: FC target
  9975. worldwide names (WWNs)'
  9976. items:
  9977. type: string
  9978. type: array
  9979. x-kubernetes-list-type: atomic
  9980. wwids:
  9981. description: |-
  9982. wwids Optional: FC volume world wide identifiers (wwids)
  9983. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  9984. items:
  9985. type: string
  9986. type: array
  9987. x-kubernetes-list-type: atomic
  9988. type: object
  9989. flexVolume:
  9990. description: |-
  9991. flexVolume represents a generic volume resource that is
  9992. provisioned/attached using an exec based plugin.
  9993. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  9994. properties:
  9995. driver:
  9996. description: driver is the name of the driver
  9997. to use for this volume.
  9998. type: string
  9999. fsType:
  10000. description: |-
  10001. fsType is the filesystem type to mount.
  10002. Must be a filesystem type supported by the host operating system.
  10003. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  10004. type: string
  10005. options:
  10006. additionalProperties:
  10007. type: string
  10008. description: 'options is Optional: this field
  10009. holds extra command options if any.'
  10010. type: object
  10011. readOnly:
  10012. description: |-
  10013. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  10014. the ReadOnly setting in VolumeMounts.
  10015. type: boolean
  10016. secretRef:
  10017. description: |-
  10018. secretRef is Optional: secretRef is reference to the secret object containing
  10019. sensitive information to pass to the plugin scripts. This may be
  10020. empty if no secret object is specified. If the secret object
  10021. contains more than one secret, all secrets are passed to the plugin
  10022. scripts.
  10023. properties:
  10024. name:
  10025. default: ""
  10026. description: |-
  10027. Name of the referent.
  10028. This field is effectively required, but due to backwards compatibility is
  10029. allowed to be empty. Instances of this type with an empty value here are
  10030. almost certainly wrong.
  10031. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10032. type: string
  10033. type: object
  10034. x-kubernetes-map-type: atomic
  10035. required:
  10036. - driver
  10037. type: object
  10038. flocker:
  10039. description: |-
  10040. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  10041. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  10042. properties:
  10043. datasetName:
  10044. description: |-
  10045. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  10046. should be considered as deprecated
  10047. type: string
  10048. datasetUUID:
  10049. description: datasetUUID is the UUID of the
  10050. dataset. This is unique identifier of a Flocker
  10051. dataset
  10052. type: string
  10053. type: object
  10054. gcePersistentDisk:
  10055. description: |-
  10056. gcePersistentDisk represents a GCE Disk resource that is attached to a
  10057. kubelet's host machine and then exposed to the pod.
  10058. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  10059. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  10060. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  10061. properties:
  10062. fsType:
  10063. description: |-
  10064. fsType is filesystem type of the volume that you want to mount.
  10065. Tip: Ensure that the filesystem type is supported by the host operating system.
  10066. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  10067. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  10068. type: string
  10069. partition:
  10070. description: |-
  10071. partition is the partition in the volume that you want to mount.
  10072. If omitted, the default is to mount by volume name.
  10073. Examples: For volume /dev/sda1, you specify the partition as "1".
  10074. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  10075. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  10076. format: int32
  10077. type: integer
  10078. pdName:
  10079. description: |-
  10080. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  10081. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  10082. type: string
  10083. readOnly:
  10084. description: |-
  10085. readOnly here will force the ReadOnly setting in VolumeMounts.
  10086. Defaults to false.
  10087. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  10088. type: boolean
  10089. required:
  10090. - pdName
  10091. type: object
  10092. gitRepo:
  10093. description: |-
  10094. gitRepo represents a git repository at a particular revision.
  10095. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  10096. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  10097. into the Pod's container.
  10098. properties:
  10099. directory:
  10100. description: |-
  10101. directory is the target directory name.
  10102. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  10103. git repository. Otherwise, if specified, the volume will contain the git repository in
  10104. the subdirectory with the given name.
  10105. type: string
  10106. repository:
  10107. description: repository is the URL
  10108. type: string
  10109. revision:
  10110. description: revision is the commit hash for
  10111. the specified revision.
  10112. type: string
  10113. required:
  10114. - repository
  10115. type: object
  10116. glusterfs:
  10117. description: |-
  10118. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  10119. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  10120. properties:
  10121. endpoints:
  10122. description: endpoints is the endpoint name
  10123. that details Glusterfs topology.
  10124. type: string
  10125. path:
  10126. description: |-
  10127. path is the Glusterfs volume path.
  10128. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  10129. type: string
  10130. readOnly:
  10131. description: |-
  10132. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  10133. Defaults to false.
  10134. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  10135. type: boolean
  10136. required:
  10137. - endpoints
  10138. - path
  10139. type: object
  10140. hostPath:
  10141. description: |-
  10142. hostPath represents a pre-existing file or directory on the host
  10143. machine that is directly exposed to the container. This is generally
  10144. used for system agents or other privileged things that are allowed
  10145. to see the host machine. Most containers will NOT need this.
  10146. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  10147. properties:
  10148. path:
  10149. description: |-
  10150. path of the directory on the host.
  10151. If the path is a symlink, it will follow the link to the real path.
  10152. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  10153. type: string
  10154. type:
  10155. description: |-
  10156. type for HostPath Volume
  10157. Defaults to ""
  10158. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  10159. type: string
  10160. required:
  10161. - path
  10162. type: object
  10163. image:
  10164. description: |-
  10165. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  10166. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  10167. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  10168. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  10169. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  10170. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  10171. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  10172. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  10173. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  10174. The volume will be mounted read-only (ro) and non-executable files (noexec).
  10175. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  10176. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  10177. properties:
  10178. pullPolicy:
  10179. description: |-
  10180. Policy for pulling OCI objects. Possible values are:
  10181. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  10182. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  10183. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  10184. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  10185. type: string
  10186. reference:
  10187. description: |-
  10188. Required: Image or artifact reference to be used.
  10189. Behaves in the same way as pod.spec.containers[*].image.
  10190. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  10191. More info: https://kubernetes.io/docs/concepts/containers/images
  10192. This field is optional to allow higher level config management to default or override
  10193. container images in workload controllers like Deployments and StatefulSets.
  10194. type: string
  10195. type: object
  10196. iscsi:
  10197. description: |-
  10198. iscsi represents an ISCSI Disk resource that is attached to a
  10199. kubelet's host machine and then exposed to the pod.
  10200. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  10201. properties:
  10202. chapAuthDiscovery:
  10203. description: chapAuthDiscovery defines whether
  10204. support iSCSI Discovery CHAP authentication
  10205. type: boolean
  10206. chapAuthSession:
  10207. description: chapAuthSession defines whether
  10208. support iSCSI Session CHAP authentication
  10209. type: boolean
  10210. fsType:
  10211. description: |-
  10212. fsType is the filesystem type of the volume that you want to mount.
  10213. Tip: Ensure that the filesystem type is supported by the host operating system.
  10214. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  10215. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  10216. type: string
  10217. initiatorName:
  10218. description: |-
  10219. initiatorName is the custom iSCSI Initiator Name.
  10220. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  10221. <target portal>:<volume name> will be created for the connection.
  10222. type: string
  10223. iqn:
  10224. description: iqn is the target iSCSI Qualified
  10225. Name.
  10226. type: string
  10227. iscsiInterface:
  10228. default: default
  10229. description: |-
  10230. iscsiInterface is the interface Name that uses an iSCSI transport.
  10231. Defaults to 'default' (tcp).
  10232. type: string
  10233. lun:
  10234. description: lun represents iSCSI Target Lun
  10235. number.
  10236. format: int32
  10237. type: integer
  10238. portals:
  10239. description: |-
  10240. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  10241. is other than default (typically TCP ports 860 and 3260).
  10242. items:
  10243. type: string
  10244. type: array
  10245. x-kubernetes-list-type: atomic
  10246. readOnly:
  10247. description: |-
  10248. readOnly here will force the ReadOnly setting in VolumeMounts.
  10249. Defaults to false.
  10250. type: boolean
  10251. secretRef:
  10252. description: secretRef is the CHAP Secret for
  10253. iSCSI target and initiator authentication
  10254. properties:
  10255. name:
  10256. default: ""
  10257. description: |-
  10258. Name of the referent.
  10259. This field is effectively required, but due to backwards compatibility is
  10260. allowed to be empty. Instances of this type with an empty value here are
  10261. almost certainly wrong.
  10262. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10263. type: string
  10264. type: object
  10265. x-kubernetes-map-type: atomic
  10266. targetPortal:
  10267. description: |-
  10268. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  10269. is other than default (typically TCP ports 860 and 3260).
  10270. type: string
  10271. required:
  10272. - iqn
  10273. - lun
  10274. - targetPortal
  10275. type: object
  10276. name:
  10277. description: |-
  10278. name of the volume.
  10279. Must be a DNS_LABEL and unique within the pod.
  10280. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10281. type: string
  10282. nfs:
  10283. description: |-
  10284. nfs represents an NFS mount on the host that shares a pod's lifetime
  10285. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  10286. properties:
  10287. path:
  10288. description: |-
  10289. path that is exported by the NFS server.
  10290. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  10291. type: string
  10292. readOnly:
  10293. description: |-
  10294. readOnly here will force the NFS export to be mounted with read-only permissions.
  10295. Defaults to false.
  10296. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  10297. type: boolean
  10298. server:
  10299. description: |-
  10300. server is the hostname or IP address of the NFS server.
  10301. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  10302. type: string
  10303. required:
  10304. - path
  10305. - server
  10306. type: object
  10307. persistentVolumeClaim:
  10308. description: |-
  10309. persistentVolumeClaimVolumeSource represents a reference to a
  10310. PersistentVolumeClaim in the same namespace.
  10311. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  10312. properties:
  10313. claimName:
  10314. description: |-
  10315. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  10316. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  10317. type: string
  10318. readOnly:
  10319. description: |-
  10320. readOnly Will force the ReadOnly setting in VolumeMounts.
  10321. Default false.
  10322. type: boolean
  10323. required:
  10324. - claimName
  10325. type: object
  10326. photonPersistentDisk:
  10327. description: |-
  10328. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  10329. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  10330. properties:
  10331. fsType:
  10332. description: |-
  10333. fsType is the filesystem type to mount.
  10334. Must be a filesystem type supported by the host operating system.
  10335. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  10336. type: string
  10337. pdID:
  10338. description: pdID is the ID that identifies
  10339. Photon Controller persistent disk
  10340. type: string
  10341. required:
  10342. - pdID
  10343. type: object
  10344. portworxVolume:
  10345. description: |-
  10346. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  10347. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  10348. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  10349. is on.
  10350. properties:
  10351. fsType:
  10352. description: |-
  10353. fSType represents the filesystem type to mount
  10354. Must be a filesystem type supported by the host operating system.
  10355. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  10356. type: string
  10357. readOnly:
  10358. description: |-
  10359. readOnly defaults to false (read/write). ReadOnly here will force
  10360. the ReadOnly setting in VolumeMounts.
  10361. type: boolean
  10362. volumeID:
  10363. description: volumeID uniquely identifies a
  10364. Portworx volume
  10365. type: string
  10366. required:
  10367. - volumeID
  10368. type: object
  10369. projected:
  10370. description: projected items for all in one resources
  10371. secrets, configmaps, and downward API
  10372. properties:
  10373. defaultMode:
  10374. description: |-
  10375. defaultMode are the mode bits used to set permissions on created files by default.
  10376. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  10377. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  10378. Directories within the path are not affected by this setting.
  10379. This might be in conflict with other options that affect the file
  10380. mode, like fsGroup, and the result can be other mode bits set.
  10381. format: int32
  10382. type: integer
  10383. sources:
  10384. description: |-
  10385. sources is the list of volume projections. Each entry in this list
  10386. handles one source.
  10387. items:
  10388. description: |-
  10389. Projection that may be projected along with other supported volume types.
  10390. Exactly one of these fields must be set.
  10391. properties:
  10392. clusterTrustBundle:
  10393. description: |-
  10394. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  10395. of ClusterTrustBundle objects in an auto-updating file.
  10396. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  10397. ClusterTrustBundle objects can either be selected by name, or by the
  10398. combination of signer name and a label selector.
  10399. Kubelet performs aggressive normalization of the PEM contents written
  10400. into the pod filesystem. Esoteric PEM features such as inter-block
  10401. comments and block headers are stripped. Certificates are deduplicated.
  10402. The ordering of certificates within the file is arbitrary, and Kubelet
  10403. may change the order over time.
  10404. properties:
  10405. labelSelector:
  10406. description: |-
  10407. Select all ClusterTrustBundles that match this label selector. Only has
  10408. effect if signerName is set. Mutually-exclusive with name. If unset,
  10409. interpreted as "match nothing". If set but empty, interpreted as "match
  10410. everything".
  10411. properties:
  10412. matchExpressions:
  10413. description: matchExpressions
  10414. is a list of label selector
  10415. requirements. The requirements
  10416. are ANDed.
  10417. items:
  10418. description: |-
  10419. A label selector requirement is a selector that contains values, a key, and an operator that
  10420. relates the key and values.
  10421. properties:
  10422. key:
  10423. description: key is the
  10424. label key that the selector
  10425. applies to.
  10426. type: string
  10427. operator:
  10428. description: |-
  10429. operator represents a key's relationship to a set of values.
  10430. Valid operators are In, NotIn, Exists and DoesNotExist.
  10431. type: string
  10432. values:
  10433. description: |-
  10434. values is an array of string values. If the operator is In or NotIn,
  10435. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  10436. the values array must be empty. This array is replaced during a strategic
  10437. merge patch.
  10438. items:
  10439. type: string
  10440. type: array
  10441. x-kubernetes-list-type: atomic
  10442. required:
  10443. - key
  10444. - operator
  10445. type: object
  10446. type: array
  10447. x-kubernetes-list-type: atomic
  10448. matchLabels:
  10449. additionalProperties:
  10450. type: string
  10451. description: |-
  10452. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  10453. map is equivalent to an element of matchExpressions, whose key field is "key", the
  10454. operator is "In", and the values array contains only "value". The requirements are ANDed.
  10455. type: object
  10456. type: object
  10457. x-kubernetes-map-type: atomic
  10458. name:
  10459. description: |-
  10460. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  10461. with signerName and labelSelector.
  10462. type: string
  10463. optional:
  10464. description: |-
  10465. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  10466. aren't available. If using name, then the named ClusterTrustBundle is
  10467. allowed not to exist. If using signerName, then the combination of
  10468. signerName and labelSelector is allowed to match zero
  10469. ClusterTrustBundles.
  10470. type: boolean
  10471. path:
  10472. description: Relative path from the
  10473. volume root to write the bundle.
  10474. type: string
  10475. signerName:
  10476. description: |-
  10477. Select all ClusterTrustBundles that match this signer name.
  10478. Mutually-exclusive with name. The contents of all selected
  10479. ClusterTrustBundles will be unified and deduplicated.
  10480. type: string
  10481. required:
  10482. - path
  10483. type: object
  10484. configMap:
  10485. description: configMap information about
  10486. the configMap data to project
  10487. properties:
  10488. items:
  10489. description: |-
  10490. items if unspecified, each key-value pair in the Data field of the referenced
  10491. ConfigMap will be projected into the volume as a file whose name is the
  10492. key and content is the value. If specified, the listed keys will be
  10493. projected into the specified paths, and unlisted keys will not be
  10494. present. If a key is specified which is not present in the ConfigMap,
  10495. the volume setup will error unless it is marked optional. Paths must be
  10496. relative and may not contain the '..' path or start with '..'.
  10497. items:
  10498. description: Maps a string key to
  10499. a path within a volume.
  10500. properties:
  10501. key:
  10502. description: key is the key
  10503. to project.
  10504. type: string
  10505. mode:
  10506. description: |-
  10507. mode is Optional: mode bits used to set permissions on this file.
  10508. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  10509. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  10510. If not specified, the volume defaultMode will be used.
  10511. This might be in conflict with other options that affect the file
  10512. mode, like fsGroup, and the result can be other mode bits set.
  10513. format: int32
  10514. type: integer
  10515. path:
  10516. description: |-
  10517. path is the relative path of the file to map the key to.
  10518. May not be an absolute path.
  10519. May not contain the path element '..'.
  10520. May not start with the string '..'.
  10521. type: string
  10522. required:
  10523. - key
  10524. - path
  10525. type: object
  10526. type: array
  10527. x-kubernetes-list-type: atomic
  10528. name:
  10529. default: ""
  10530. description: |-
  10531. Name of the referent.
  10532. This field is effectively required, but due to backwards compatibility is
  10533. allowed to be empty. Instances of this type with an empty value here are
  10534. almost certainly wrong.
  10535. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10536. type: string
  10537. optional:
  10538. description: optional specify whether
  10539. the ConfigMap or its keys must be
  10540. defined
  10541. type: boolean
  10542. type: object
  10543. x-kubernetes-map-type: atomic
  10544. downwardAPI:
  10545. description: downwardAPI information about
  10546. the downwardAPI data to project
  10547. properties:
  10548. items:
  10549. description: Items is a list of DownwardAPIVolume
  10550. file
  10551. items:
  10552. description: DownwardAPIVolumeFile
  10553. represents information to create
  10554. the file containing the pod field
  10555. properties:
  10556. fieldRef:
  10557. description: 'Required: Selects
  10558. a field of the pod: only annotations,
  10559. labels, name, namespace and
  10560. uid are supported.'
  10561. properties:
  10562. apiVersion:
  10563. description: Version of
  10564. the schema the FieldPath
  10565. is written in terms of,
  10566. defaults to "v1".
  10567. type: string
  10568. fieldPath:
  10569. description: Path of the
  10570. field to select in the
  10571. specified API version.
  10572. type: string
  10573. required:
  10574. - fieldPath
  10575. type: object
  10576. x-kubernetes-map-type: atomic
  10577. mode:
  10578. description: |-
  10579. Optional: mode bits used to set permissions on this file, must be an octal value
  10580. between 0000 and 0777 or a decimal value between 0 and 511.
  10581. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  10582. If not specified, the volume defaultMode will be used.
  10583. This might be in conflict with other options that affect the file
  10584. mode, like fsGroup, and the result can be other mode bits set.
  10585. format: int32
  10586. type: integer
  10587. path:
  10588. description: 'Required: Path
  10589. is the relative path name
  10590. of the file to be created.
  10591. Must not be absolute or contain
  10592. the ''..'' path. Must be utf-8
  10593. encoded. The first item of
  10594. the relative path must not
  10595. start with ''..'''
  10596. type: string
  10597. resourceFieldRef:
  10598. description: |-
  10599. Selects a resource of the container: only resources limits and requests
  10600. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  10601. properties:
  10602. containerName:
  10603. description: 'Container
  10604. name: required for volumes,
  10605. optional for env vars'
  10606. type: string
  10607. divisor:
  10608. anyOf:
  10609. - type: integer
  10610. - type: string
  10611. description: Specifies the
  10612. output format of the exposed
  10613. resources, defaults to
  10614. "1"
  10615. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10616. x-kubernetes-int-or-string: true
  10617. resource:
  10618. description: 'Required:
  10619. resource to select'
  10620. type: string
  10621. required:
  10622. - resource
  10623. type: object
  10624. x-kubernetes-map-type: atomic
  10625. required:
  10626. - path
  10627. type: object
  10628. type: array
  10629. x-kubernetes-list-type: atomic
  10630. type: object
  10631. podCertificate:
  10632. description: |-
  10633. Projects an auto-rotating credential bundle (private key and certificate
  10634. chain) that the pod can use either as a TLS client or server.
  10635. Kubelet generates a private key and uses it to send a
  10636. PodCertificateRequest to the named signer. Once the signer approves the
  10637. request and issues a certificate chain, Kubelet writes the key and
  10638. certificate chain to the pod filesystem. The pod does not start until
  10639. certificates have been issued for each podCertificate projected volume
  10640. source in its spec.
  10641. Kubelet will begin trying to rotate the certificate at the time indicated
  10642. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  10643. timestamp.
  10644. Kubelet can write a single file, indicated by the credentialBundlePath
  10645. field, or separate files, indicated by the keyPath and
  10646. certificateChainPath fields.
  10647. The credential bundle is a single file in PEM format. The first PEM
  10648. entry is the private key (in PKCS#8 format), and the remaining PEM
  10649. entries are the certificate chain issued by the signer (typically,
  10650. signers will return their certificate chain in leaf-to-root order).
  10651. Prefer using the credential bundle format, since your application code
  10652. can read it atomically. If you use keyPath and certificateChainPath,
  10653. your application must make two separate file reads. If these coincide
  10654. with a certificate rotation, it is possible that the private key and leaf
  10655. certificate you read may not correspond to each other. Your application
  10656. will need to check for this condition, and re-read until they are
  10657. consistent.
  10658. The named signer controls chooses the format of the certificate it
  10659. issues; consult the signer implementation's documentation to learn how to
  10660. use the certificates it issues.
  10661. properties:
  10662. certificateChainPath:
  10663. description: |-
  10664. Write the certificate chain at this path in the projected volume.
  10665. Most applications should use credentialBundlePath. When using keyPath
  10666. and certificateChainPath, your application needs to check that the key
  10667. and leaf certificate are consistent, because it is possible to read the
  10668. files mid-rotation.
  10669. type: string
  10670. credentialBundlePath:
  10671. description: |-
  10672. Write the credential bundle at this path in the projected volume.
  10673. The credential bundle is a single file that contains multiple PEM blocks.
  10674. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  10675. key.
  10676. The remaining blocks are CERTIFICATE blocks, containing the issued
  10677. certificate chain from the signer (leaf and any intermediates).
  10678. Using credentialBundlePath lets your Pod's application code make a single
  10679. atomic read that retrieves a consistent key and certificate chain. If you
  10680. project them to separate files, your application code will need to
  10681. additionally check that the leaf certificate was issued to the key.
  10682. type: string
  10683. keyPath:
  10684. description: |-
  10685. Write the key at this path in the projected volume.
  10686. Most applications should use credentialBundlePath. When using keyPath
  10687. and certificateChainPath, your application needs to check that the key
  10688. and leaf certificate are consistent, because it is possible to read the
  10689. files mid-rotation.
  10690. type: string
  10691. keyType:
  10692. description: |-
  10693. The type of keypair Kubelet will generate for the pod.
  10694. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  10695. "ECDSAP521", and "ED25519".
  10696. type: string
  10697. maxExpirationSeconds:
  10698. description: |-
  10699. maxExpirationSeconds is the maximum lifetime permitted for the
  10700. certificate.
  10701. Kubelet copies this value verbatim into the PodCertificateRequests it
  10702. generates for this projection.
  10703. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  10704. will reject values shorter than 3600 (1 hour). The maximum allowable
  10705. value is 7862400 (91 days).
  10706. The signer implementation is then free to issue a certificate with any
  10707. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  10708. seconds (1 hour). This constraint is enforced by kube-apiserver.
  10709. `kubernetes.io` signers will never issue certificates with a lifetime
  10710. longer than 24 hours.
  10711. format: int32
  10712. type: integer
  10713. signerName:
  10714. description: Kubelet's generated CSRs
  10715. will be addressed to this signer.
  10716. type: string
  10717. userAnnotations:
  10718. additionalProperties:
  10719. type: string
  10720. description: |-
  10721. userAnnotations allow pod authors to pass additional information to
  10722. the signer implementation. Kubernetes does not restrict or validate this
  10723. metadata in any way.
  10724. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
  10725. the PodCertificateRequest objects that Kubelet creates.
  10726. Entries are subject to the same validation as object metadata annotations,
  10727. with the addition that all keys must be domain-prefixed. No restrictions
  10728. are placed on values, except an overall size limitation on the entire field.
  10729. Signers should document the keys and values they support. Signers should
  10730. deny requests that contain keys they do not recognize.
  10731. type: object
  10732. required:
  10733. - keyType
  10734. - signerName
  10735. type: object
  10736. secret:
  10737. description: secret information about
  10738. the secret data to project
  10739. properties:
  10740. items:
  10741. description: |-
  10742. items if unspecified, each key-value pair in the Data field of the referenced
  10743. Secret will be projected into the volume as a file whose name is the
  10744. key and content is the value. If specified, the listed keys will be
  10745. projected into the specified paths, and unlisted keys will not be
  10746. present. If a key is specified which is not present in the Secret,
  10747. the volume setup will error unless it is marked optional. Paths must be
  10748. relative and may not contain the '..' path or start with '..'.
  10749. items:
  10750. description: Maps a string key to
  10751. a path within a volume.
  10752. properties:
  10753. key:
  10754. description: key is the key
  10755. to project.
  10756. type: string
  10757. mode:
  10758. description: |-
  10759. mode is Optional: mode bits used to set permissions on this file.
  10760. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  10761. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  10762. If not specified, the volume defaultMode will be used.
  10763. This might be in conflict with other options that affect the file
  10764. mode, like fsGroup, and the result can be other mode bits set.
  10765. format: int32
  10766. type: integer
  10767. path:
  10768. description: |-
  10769. path is the relative path of the file to map the key to.
  10770. May not be an absolute path.
  10771. May not contain the path element '..'.
  10772. May not start with the string '..'.
  10773. type: string
  10774. required:
  10775. - key
  10776. - path
  10777. type: object
  10778. type: array
  10779. x-kubernetes-list-type: atomic
  10780. name:
  10781. default: ""
  10782. description: |-
  10783. Name of the referent.
  10784. This field is effectively required, but due to backwards compatibility is
  10785. allowed to be empty. Instances of this type with an empty value here are
  10786. almost certainly wrong.
  10787. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10788. type: string
  10789. optional:
  10790. description: optional field specify
  10791. whether the Secret or its key must
  10792. be defined
  10793. type: boolean
  10794. type: object
  10795. x-kubernetes-map-type: atomic
  10796. serviceAccountToken:
  10797. description: serviceAccountToken is information
  10798. about the serviceAccountToken data to
  10799. project
  10800. properties:
  10801. audience:
  10802. description: |-
  10803. audience is the intended audience of the token. A recipient of a token
  10804. must identify itself with an identifier specified in the audience of the
  10805. token, and otherwise should reject the token. The audience defaults to the
  10806. identifier of the apiserver.
  10807. type: string
  10808. expirationSeconds:
  10809. description: |-
  10810. expirationSeconds is the requested duration of validity of the service
  10811. account token. As the token approaches expiration, the kubelet volume
  10812. plugin will proactively rotate the service account token. The kubelet will
  10813. start trying to rotate the token if the token is older than 80 percent of
  10814. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  10815. and must be at least 10 minutes.
  10816. format: int64
  10817. type: integer
  10818. path:
  10819. description: |-
  10820. path is the path relative to the mount point of the file to project the
  10821. token into.
  10822. type: string
  10823. required:
  10824. - path
  10825. type: object
  10826. type: object
  10827. type: array
  10828. x-kubernetes-list-type: atomic
  10829. type: object
  10830. quobyte:
  10831. description: |-
  10832. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  10833. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  10834. properties:
  10835. group:
  10836. description: |-
  10837. group to map volume access to
  10838. Default is no group
  10839. type: string
  10840. readOnly:
  10841. description: |-
  10842. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  10843. Defaults to false.
  10844. type: boolean
  10845. registry:
  10846. description: |-
  10847. registry represents a single or multiple Quobyte Registry services
  10848. specified as a string as host:port pair (multiple entries are separated with commas)
  10849. which acts as the central registry for volumes
  10850. type: string
  10851. tenant:
  10852. description: |-
  10853. tenant owning the given Quobyte volume in the Backend
  10854. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  10855. type: string
  10856. user:
  10857. description: |-
  10858. user to map volume access to
  10859. Defaults to serivceaccount user
  10860. type: string
  10861. volume:
  10862. description: volume is a string that references
  10863. an already created Quobyte volume by name.
  10864. type: string
  10865. required:
  10866. - registry
  10867. - volume
  10868. type: object
  10869. rbd:
  10870. description: |-
  10871. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  10872. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  10873. properties:
  10874. fsType:
  10875. description: |-
  10876. fsType is the filesystem type of the volume that you want to mount.
  10877. Tip: Ensure that the filesystem type is supported by the host operating system.
  10878. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  10879. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  10880. type: string
  10881. image:
  10882. description: |-
  10883. image is the rados image name.
  10884. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10885. type: string
  10886. keyring:
  10887. default: /etc/ceph/keyring
  10888. description: |-
  10889. keyring is the path to key ring for RBDUser.
  10890. Default is /etc/ceph/keyring.
  10891. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10892. type: string
  10893. monitors:
  10894. description: |-
  10895. monitors is a collection of Ceph monitors.
  10896. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10897. items:
  10898. type: string
  10899. type: array
  10900. x-kubernetes-list-type: atomic
  10901. pool:
  10902. default: rbd
  10903. description: |-
  10904. pool is the rados pool name.
  10905. Default is rbd.
  10906. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10907. type: string
  10908. readOnly:
  10909. description: |-
  10910. readOnly here will force the ReadOnly setting in VolumeMounts.
  10911. Defaults to false.
  10912. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10913. type: boolean
  10914. secretRef:
  10915. description: |-
  10916. secretRef is name of the authentication secret for RBDUser. If provided
  10917. overrides keyring.
  10918. Default is nil.
  10919. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10920. properties:
  10921. name:
  10922. default: ""
  10923. description: |-
  10924. Name of the referent.
  10925. This field is effectively required, but due to backwards compatibility is
  10926. allowed to be empty. Instances of this type with an empty value here are
  10927. almost certainly wrong.
  10928. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10929. type: string
  10930. type: object
  10931. x-kubernetes-map-type: atomic
  10932. user:
  10933. default: admin
  10934. description: |-
  10935. user is the rados user name.
  10936. Default is admin.
  10937. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  10938. type: string
  10939. required:
  10940. - image
  10941. - monitors
  10942. type: object
  10943. scaleIO:
  10944. description: |-
  10945. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  10946. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  10947. properties:
  10948. fsType:
  10949. default: xfs
  10950. description: |-
  10951. fsType is the filesystem type to mount.
  10952. Must be a filesystem type supported by the host operating system.
  10953. Ex. "ext4", "xfs", "ntfs".
  10954. Default is "xfs".
  10955. type: string
  10956. gateway:
  10957. description: gateway is the host address of
  10958. the ScaleIO API Gateway.
  10959. type: string
  10960. protectionDomain:
  10961. description: protectionDomain is the name of
  10962. the ScaleIO Protection Domain for the configured
  10963. storage.
  10964. type: string
  10965. readOnly:
  10966. description: |-
  10967. readOnly Defaults to false (read/write). ReadOnly here will force
  10968. the ReadOnly setting in VolumeMounts.
  10969. type: boolean
  10970. secretRef:
  10971. description: |-
  10972. secretRef references to the secret for ScaleIO user and other
  10973. sensitive information. If this is not provided, Login operation will fail.
  10974. properties:
  10975. name:
  10976. default: ""
  10977. description: |-
  10978. Name of the referent.
  10979. This field is effectively required, but due to backwards compatibility is
  10980. allowed to be empty. Instances of this type with an empty value here are
  10981. almost certainly wrong.
  10982. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10983. type: string
  10984. type: object
  10985. x-kubernetes-map-type: atomic
  10986. sslEnabled:
  10987. description: sslEnabled Flag enable/disable
  10988. SSL communication with Gateway, default false
  10989. type: boolean
  10990. storageMode:
  10991. default: ThinProvisioned
  10992. description: |-
  10993. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  10994. Default is ThinProvisioned.
  10995. type: string
  10996. storagePool:
  10997. description: storagePool is the ScaleIO Storage
  10998. Pool associated with the protection domain.
  10999. type: string
  11000. system:
  11001. description: system is the name of the storage
  11002. system as configured in ScaleIO.
  11003. type: string
  11004. volumeName:
  11005. description: |-
  11006. volumeName is the name of a volume already created in the ScaleIO system
  11007. that is associated with this volume source.
  11008. type: string
  11009. required:
  11010. - gateway
  11011. - secretRef
  11012. - system
  11013. type: object
  11014. secret:
  11015. description: |-
  11016. secret represents a secret that should populate this volume.
  11017. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  11018. properties:
  11019. defaultMode:
  11020. description: |-
  11021. defaultMode is Optional: mode bits used to set permissions on created files by default.
  11022. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  11023. YAML accepts both octal and decimal values, JSON requires decimal values
  11024. for mode bits. Defaults to 0644.
  11025. Directories within the path are not affected by this setting.
  11026. This might be in conflict with other options that affect the file
  11027. mode, like fsGroup, and the result can be other mode bits set.
  11028. format: int32
  11029. type: integer
  11030. items:
  11031. description: |-
  11032. items If unspecified, each key-value pair in the Data field of the referenced
  11033. Secret will be projected into the volume as a file whose name is the
  11034. key and content is the value. If specified, the listed keys will be
  11035. projected into the specified paths, and unlisted keys will not be
  11036. present. If a key is specified which is not present in the Secret,
  11037. the volume setup will error unless it is marked optional. Paths must be
  11038. relative and may not contain the '..' path or start with '..'.
  11039. items:
  11040. description: Maps a string key to a path within
  11041. a volume.
  11042. properties:
  11043. key:
  11044. description: key is the key to project.
  11045. type: string
  11046. mode:
  11047. description: |-
  11048. mode is Optional: mode bits used to set permissions on this file.
  11049. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  11050. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  11051. If not specified, the volume defaultMode will be used.
  11052. This might be in conflict with other options that affect the file
  11053. mode, like fsGroup, and the result can be other mode bits set.
  11054. format: int32
  11055. type: integer
  11056. path:
  11057. description: |-
  11058. path is the relative path of the file to map the key to.
  11059. May not be an absolute path.
  11060. May not contain the path element '..'.
  11061. May not start with the string '..'.
  11062. type: string
  11063. required:
  11064. - key
  11065. - path
  11066. type: object
  11067. type: array
  11068. x-kubernetes-list-type: atomic
  11069. optional:
  11070. description: optional field specify whether
  11071. the Secret or its keys must be defined
  11072. type: boolean
  11073. secretName:
  11074. description: |-
  11075. secretName is the name of the secret in the pod's namespace to use.
  11076. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  11077. type: string
  11078. type: object
  11079. storageos:
  11080. description: |-
  11081. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  11082. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  11083. properties:
  11084. fsType:
  11085. description: |-
  11086. fsType is the filesystem type to mount.
  11087. Must be a filesystem type supported by the host operating system.
  11088. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  11089. type: string
  11090. readOnly:
  11091. description: |-
  11092. readOnly defaults to false (read/write). ReadOnly here will force
  11093. the ReadOnly setting in VolumeMounts.
  11094. type: boolean
  11095. secretRef:
  11096. description: |-
  11097. secretRef specifies the secret to use for obtaining the StorageOS API
  11098. credentials. If not specified, default values will be attempted.
  11099. properties:
  11100. name:
  11101. default: ""
  11102. description: |-
  11103. Name of the referent.
  11104. This field is effectively required, but due to backwards compatibility is
  11105. allowed to be empty. Instances of this type with an empty value here are
  11106. almost certainly wrong.
  11107. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  11108. type: string
  11109. type: object
  11110. x-kubernetes-map-type: atomic
  11111. volumeName:
  11112. description: |-
  11113. volumeName is the human-readable name of the StorageOS volume. Volume
  11114. names are only unique within a namespace.
  11115. type: string
  11116. volumeNamespace:
  11117. description: |-
  11118. volumeNamespace specifies the scope of the volume within StorageOS. If no
  11119. namespace is specified then the Pod's namespace will be used. This allows the
  11120. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  11121. Set VolumeName to any name to override the default behaviour.
  11122. Set to "default" if you are not using namespaces within StorageOS.
  11123. Namespaces that do not pre-exist within StorageOS will be created.
  11124. type: string
  11125. type: object
  11126. vsphereVolume:
  11127. description: |-
  11128. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  11129. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  11130. are redirected to the csi.vsphere.vmware.com CSI driver.
  11131. properties:
  11132. fsType:
  11133. description: |-
  11134. fsType is filesystem type to mount.
  11135. Must be a filesystem type supported by the host operating system.
  11136. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  11137. type: string
  11138. storagePolicyID:
  11139. description: storagePolicyID is the storage
  11140. Policy Based Management (SPBM) profile ID
  11141. associated with the StoragePolicyName.
  11142. type: string
  11143. storagePolicyName:
  11144. description: storagePolicyName is the storage
  11145. Policy Based Management (SPBM) profile name.
  11146. type: string
  11147. volumePath:
  11148. description: volumePath is the path that identifies
  11149. vSphere volume vmdk
  11150. type: string
  11151. required:
  11152. - volumePath
  11153. type: object
  11154. required:
  11155. - name
  11156. type: object
  11157. type: array
  11158. type: object
  11159. required:
  11160. - name
  11161. type: object
  11162. type: object
  11163. observability:
  11164. description: observability defines the configuration overrides for
  11165. the stack's observability components.
  11166. properties:
  11167. enabled:
  11168. description: enabled indicates whether the component should be
  11169. deployed for the stack.
  11170. type: boolean
  11171. template:
  11172. description: template holds the configuration overrides for the
  11173. component.
  11174. properties:
  11175. metadata:
  11176. description: metadata is a standard object metadata.
  11177. type: object
  11178. name:
  11179. description: name selects a built-in preset.
  11180. type: string
  11181. spec:
  11182. description: spec holds the pod-level configuration for the
  11183. workload.
  11184. properties:
  11185. affinity:
  11186. description: affinity provides fine-grained node and pod
  11187. (anti-)affinity rules.
  11188. properties:
  11189. nodeAffinity:
  11190. description: Describes node affinity scheduling rules
  11191. for the pod.
  11192. properties:
  11193. preferredDuringSchedulingIgnoredDuringExecution:
  11194. description: |-
  11195. The scheduler will prefer to schedule pods to nodes that satisfy
  11196. the affinity expressions specified by this field, but it may choose
  11197. a node that violates one or more of the expressions. The node that is
  11198. most preferred is the one with the greatest sum of weights, i.e.
  11199. for each node that meets all of the scheduling requirements (resource
  11200. request, requiredDuringScheduling affinity expressions, etc.),
  11201. compute a sum by iterating through the elements of this field and adding
  11202. "weight" to the sum if the node matches the corresponding matchExpressions; the
  11203. node(s) with the highest sum are the most preferred.
  11204. items:
  11205. description: |-
  11206. An empty preferred scheduling term matches all objects with implicit weight 0
  11207. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  11208. properties:
  11209. preference:
  11210. description: A node selector term, associated
  11211. with the corresponding weight.
  11212. properties:
  11213. matchExpressions:
  11214. description: A list of node selector
  11215. requirements by node's labels.
  11216. items:
  11217. description: |-
  11218. A node selector requirement is a selector that contains values, a key, and an operator
  11219. that relates the key and values.
  11220. properties:
  11221. key:
  11222. description: The label key that
  11223. the selector applies to.
  11224. type: string
  11225. operator:
  11226. description: |-
  11227. Represents a key's relationship to a set of values.
  11228. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11229. type: string
  11230. values:
  11231. description: |-
  11232. An array of string values. If the operator is In or NotIn,
  11233. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11234. the values array must be empty. If the operator is Gt or Lt, the values
  11235. array must have a single element, which will be interpreted as an integer.
  11236. This array is replaced during a strategic merge patch.
  11237. items:
  11238. type: string
  11239. type: array
  11240. x-kubernetes-list-type: atomic
  11241. required:
  11242. - key
  11243. - operator
  11244. type: object
  11245. type: array
  11246. x-kubernetes-list-type: atomic
  11247. matchFields:
  11248. description: A list of node selector
  11249. requirements by node's fields.
  11250. items:
  11251. description: |-
  11252. A node selector requirement is a selector that contains values, a key, and an operator
  11253. that relates the key and values.
  11254. properties:
  11255. key:
  11256. description: The label key that
  11257. the selector applies to.
  11258. type: string
  11259. operator:
  11260. description: |-
  11261. Represents a key's relationship to a set of values.
  11262. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11263. type: string
  11264. values:
  11265. description: |-
  11266. An array of string values. If the operator is In or NotIn,
  11267. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11268. the values array must be empty. If the operator is Gt or Lt, the values
  11269. array must have a single element, which will be interpreted as an integer.
  11270. This array is replaced during a strategic merge patch.
  11271. items:
  11272. type: string
  11273. type: array
  11274. x-kubernetes-list-type: atomic
  11275. required:
  11276. - key
  11277. - operator
  11278. type: object
  11279. type: array
  11280. x-kubernetes-list-type: atomic
  11281. type: object
  11282. x-kubernetes-map-type: atomic
  11283. weight:
  11284. description: Weight associated with matching
  11285. the corresponding nodeSelectorTerm, in
  11286. the range 1-100.
  11287. format: int32
  11288. type: integer
  11289. required:
  11290. - preference
  11291. - weight
  11292. type: object
  11293. type: array
  11294. x-kubernetes-list-type: atomic
  11295. requiredDuringSchedulingIgnoredDuringExecution:
  11296. description: |-
  11297. If the affinity requirements specified by this field are not met at
  11298. scheduling time, the pod will not be scheduled onto the node.
  11299. If the affinity requirements specified by this field cease to be met
  11300. at some point during pod execution (e.g. due to an update), the system
  11301. may or may not try to eventually evict the pod from its node.
  11302. properties:
  11303. nodeSelectorTerms:
  11304. description: Required. A list of node selector
  11305. terms. The terms are ORed.
  11306. items:
  11307. description: |-
  11308. A null or empty node selector term matches no objects. The requirements of
  11309. them are ANDed.
  11310. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  11311. properties:
  11312. matchExpressions:
  11313. description: A list of node selector
  11314. requirements by node's labels.
  11315. items:
  11316. description: |-
  11317. A node selector requirement is a selector that contains values, a key, and an operator
  11318. that relates the key and values.
  11319. properties:
  11320. key:
  11321. description: The label key that
  11322. the selector applies to.
  11323. type: string
  11324. operator:
  11325. description: |-
  11326. Represents a key's relationship to a set of values.
  11327. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11328. type: string
  11329. values:
  11330. description: |-
  11331. An array of string values. If the operator is In or NotIn,
  11332. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11333. the values array must be empty. If the operator is Gt or Lt, the values
  11334. array must have a single element, which will be interpreted as an integer.
  11335. This array is replaced during a strategic merge patch.
  11336. items:
  11337. type: string
  11338. type: array
  11339. x-kubernetes-list-type: atomic
  11340. required:
  11341. - key
  11342. - operator
  11343. type: object
  11344. type: array
  11345. x-kubernetes-list-type: atomic
  11346. matchFields:
  11347. description: A list of node selector
  11348. requirements by node's fields.
  11349. items:
  11350. description: |-
  11351. A node selector requirement is a selector that contains values, a key, and an operator
  11352. that relates the key and values.
  11353. properties:
  11354. key:
  11355. description: The label key that
  11356. the selector applies to.
  11357. type: string
  11358. operator:
  11359. description: |-
  11360. Represents a key's relationship to a set of values.
  11361. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  11362. type: string
  11363. values:
  11364. description: |-
  11365. An array of string values. If the operator is In or NotIn,
  11366. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11367. the values array must be empty. If the operator is Gt or Lt, the values
  11368. array must have a single element, which will be interpreted as an integer.
  11369. This array is replaced during a strategic merge patch.
  11370. items:
  11371. type: string
  11372. type: array
  11373. x-kubernetes-list-type: atomic
  11374. required:
  11375. - key
  11376. - operator
  11377. type: object
  11378. type: array
  11379. x-kubernetes-list-type: atomic
  11380. type: object
  11381. x-kubernetes-map-type: atomic
  11382. type: array
  11383. x-kubernetes-list-type: atomic
  11384. required:
  11385. - nodeSelectorTerms
  11386. type: object
  11387. x-kubernetes-map-type: atomic
  11388. type: object
  11389. podAffinity:
  11390. description: Describes pod affinity scheduling rules
  11391. (e.g. co-locate this pod in the same node, zone,
  11392. etc. as some other pod(s)).
  11393. properties:
  11394. preferredDuringSchedulingIgnoredDuringExecution:
  11395. description: |-
  11396. The scheduler will prefer to schedule pods to nodes that satisfy
  11397. the affinity expressions specified by this field, but it may choose
  11398. a node that violates one or more of the expressions. The node that is
  11399. most preferred is the one with the greatest sum of weights, i.e.
  11400. for each node that meets all of the scheduling requirements (resource
  11401. request, requiredDuringScheduling affinity expressions, etc.),
  11402. compute a sum by iterating through the elements of this field and adding
  11403. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  11404. node(s) with the highest sum are the most preferred.
  11405. items:
  11406. description: The weights of all of the matched
  11407. WeightedPodAffinityTerm fields are added per-node
  11408. to find the most preferred node(s)
  11409. properties:
  11410. podAffinityTerm:
  11411. description: Required. A pod affinity term,
  11412. associated with the corresponding weight.
  11413. properties:
  11414. labelSelector:
  11415. description: |-
  11416. A label query over a set of resources, in this case pods.
  11417. If it's null, this PodAffinityTerm matches with no Pods.
  11418. properties:
  11419. matchExpressions:
  11420. description: matchExpressions is
  11421. a list of label selector requirements.
  11422. The requirements are ANDed.
  11423. items:
  11424. description: |-
  11425. A label selector requirement is a selector that contains values, a key, and an operator that
  11426. relates the key and values.
  11427. properties:
  11428. key:
  11429. description: key is the label
  11430. key that the selector applies
  11431. to.
  11432. type: string
  11433. operator:
  11434. description: |-
  11435. operator represents a key's relationship to a set of values.
  11436. Valid operators are In, NotIn, Exists and DoesNotExist.
  11437. type: string
  11438. values:
  11439. description: |-
  11440. values is an array of string values. If the operator is In or NotIn,
  11441. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11442. the values array must be empty. This array is replaced during a strategic
  11443. merge patch.
  11444. items:
  11445. type: string
  11446. type: array
  11447. x-kubernetes-list-type: atomic
  11448. required:
  11449. - key
  11450. - operator
  11451. type: object
  11452. type: array
  11453. x-kubernetes-list-type: atomic
  11454. matchLabels:
  11455. additionalProperties:
  11456. type: string
  11457. description: |-
  11458. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11459. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11460. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11461. type: object
  11462. type: object
  11463. x-kubernetes-map-type: atomic
  11464. matchLabelKeys:
  11465. description: |-
  11466. MatchLabelKeys is a set of pod label keys to select which pods will
  11467. be taken into consideration. The keys are used to lookup values from the
  11468. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  11469. to select the group of existing pods which pods will be taken into consideration
  11470. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11471. pod labels will be ignored. The default value is empty.
  11472. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  11473. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  11474. items:
  11475. type: string
  11476. type: array
  11477. x-kubernetes-list-type: atomic
  11478. mismatchLabelKeys:
  11479. description: |-
  11480. MismatchLabelKeys is a set of pod label keys to select which pods will
  11481. be taken into consideration. The keys are used to lookup values from the
  11482. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  11483. to select the group of existing pods which pods will be taken into consideration
  11484. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11485. pod labels will be ignored. The default value is empty.
  11486. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  11487. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  11488. items:
  11489. type: string
  11490. type: array
  11491. x-kubernetes-list-type: atomic
  11492. namespaceSelector:
  11493. description: |-
  11494. A label query over the set of namespaces that the term applies to.
  11495. The term is applied to the union of the namespaces selected by this field
  11496. and the ones listed in the namespaces field.
  11497. null selector and null or empty namespaces list means "this pod's namespace".
  11498. An empty selector ({}) matches all namespaces.
  11499. properties:
  11500. matchExpressions:
  11501. description: matchExpressions is
  11502. a list of label selector requirements.
  11503. The requirements are ANDed.
  11504. items:
  11505. description: |-
  11506. A label selector requirement is a selector that contains values, a key, and an operator that
  11507. relates the key and values.
  11508. properties:
  11509. key:
  11510. description: key is the label
  11511. key that the selector applies
  11512. to.
  11513. type: string
  11514. operator:
  11515. description: |-
  11516. operator represents a key's relationship to a set of values.
  11517. Valid operators are In, NotIn, Exists and DoesNotExist.
  11518. type: string
  11519. values:
  11520. description: |-
  11521. values is an array of string values. If the operator is In or NotIn,
  11522. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11523. the values array must be empty. This array is replaced during a strategic
  11524. merge patch.
  11525. items:
  11526. type: string
  11527. type: array
  11528. x-kubernetes-list-type: atomic
  11529. required:
  11530. - key
  11531. - operator
  11532. type: object
  11533. type: array
  11534. x-kubernetes-list-type: atomic
  11535. matchLabels:
  11536. additionalProperties:
  11537. type: string
  11538. description: |-
  11539. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11540. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11541. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11542. type: object
  11543. type: object
  11544. x-kubernetes-map-type: atomic
  11545. namespaces:
  11546. description: |-
  11547. namespaces specifies a static list of namespace names that the term applies to.
  11548. The term is applied to the union of the namespaces listed in this field
  11549. and the ones selected by namespaceSelector.
  11550. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  11551. items:
  11552. type: string
  11553. type: array
  11554. x-kubernetes-list-type: atomic
  11555. topologyKey:
  11556. description: |-
  11557. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  11558. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  11559. whose value of the label with key topologyKey matches that of any node on which any of the
  11560. selected pods is running.
  11561. Empty topologyKey is not allowed.
  11562. type: string
  11563. required:
  11564. - topologyKey
  11565. type: object
  11566. weight:
  11567. description: |-
  11568. weight associated with matching the corresponding podAffinityTerm,
  11569. in the range 1-100.
  11570. format: int32
  11571. type: integer
  11572. required:
  11573. - podAffinityTerm
  11574. - weight
  11575. type: object
  11576. type: array
  11577. x-kubernetes-list-type: atomic
  11578. requiredDuringSchedulingIgnoredDuringExecution:
  11579. description: |-
  11580. If the affinity requirements specified by this field are not met at
  11581. scheduling time, the pod will not be scheduled onto the node.
  11582. If the affinity requirements specified by this field cease to be met
  11583. at some point during pod execution (e.g. due to a pod label update), the
  11584. system may or may not try to eventually evict the pod from its node.
  11585. When there are multiple elements, the lists of nodes corresponding to each
  11586. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  11587. items:
  11588. description: |-
  11589. Defines a set of pods (namely those matching the labelSelector
  11590. relative to the given namespace(s)) that this pod should be
  11591. co-located (affinity) or not co-located (anti-affinity) with,
  11592. where co-located is defined as running on a node whose value of
  11593. the label with key <topologyKey> matches that of any node on which
  11594. a pod of the set of pods is running
  11595. properties:
  11596. labelSelector:
  11597. description: |-
  11598. A label query over a set of resources, in this case pods.
  11599. If it's null, this PodAffinityTerm matches with no Pods.
  11600. properties:
  11601. matchExpressions:
  11602. description: matchExpressions is a list
  11603. of label selector requirements. The
  11604. requirements are ANDed.
  11605. items:
  11606. description: |-
  11607. A label selector requirement is a selector that contains values, a key, and an operator that
  11608. relates the key and values.
  11609. properties:
  11610. key:
  11611. description: key is the label
  11612. key that the selector applies
  11613. to.
  11614. type: string
  11615. operator:
  11616. description: |-
  11617. operator represents a key's relationship to a set of values.
  11618. Valid operators are In, NotIn, Exists and DoesNotExist.
  11619. type: string
  11620. values:
  11621. description: |-
  11622. values is an array of string values. If the operator is In or NotIn,
  11623. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11624. the values array must be empty. This array is replaced during a strategic
  11625. merge patch.
  11626. items:
  11627. type: string
  11628. type: array
  11629. x-kubernetes-list-type: atomic
  11630. required:
  11631. - key
  11632. - operator
  11633. type: object
  11634. type: array
  11635. x-kubernetes-list-type: atomic
  11636. matchLabels:
  11637. additionalProperties:
  11638. type: string
  11639. description: |-
  11640. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11641. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11642. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11643. type: object
  11644. type: object
  11645. x-kubernetes-map-type: atomic
  11646. matchLabelKeys:
  11647. description: |-
  11648. MatchLabelKeys is a set of pod label keys to select which pods will
  11649. be taken into consideration. The keys are used to lookup values from the
  11650. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  11651. to select the group of existing pods which pods will be taken into consideration
  11652. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11653. pod labels will be ignored. The default value is empty.
  11654. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  11655. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  11656. items:
  11657. type: string
  11658. type: array
  11659. x-kubernetes-list-type: atomic
  11660. mismatchLabelKeys:
  11661. description: |-
  11662. MismatchLabelKeys is a set of pod label keys to select which pods will
  11663. be taken into consideration. The keys are used to lookup values from the
  11664. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  11665. to select the group of existing pods which pods will be taken into consideration
  11666. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11667. pod labels will be ignored. The default value is empty.
  11668. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  11669. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  11670. items:
  11671. type: string
  11672. type: array
  11673. x-kubernetes-list-type: atomic
  11674. namespaceSelector:
  11675. description: |-
  11676. A label query over the set of namespaces that the term applies to.
  11677. The term is applied to the union of the namespaces selected by this field
  11678. and the ones listed in the namespaces field.
  11679. null selector and null or empty namespaces list means "this pod's namespace".
  11680. An empty selector ({}) matches all namespaces.
  11681. properties:
  11682. matchExpressions:
  11683. description: matchExpressions is a list
  11684. of label selector requirements. The
  11685. requirements are ANDed.
  11686. items:
  11687. description: |-
  11688. A label selector requirement is a selector that contains values, a key, and an operator that
  11689. relates the key and values.
  11690. properties:
  11691. key:
  11692. description: key is the label
  11693. key that the selector applies
  11694. to.
  11695. type: string
  11696. operator:
  11697. description: |-
  11698. operator represents a key's relationship to a set of values.
  11699. Valid operators are In, NotIn, Exists and DoesNotExist.
  11700. type: string
  11701. values:
  11702. description: |-
  11703. values is an array of string values. If the operator is In or NotIn,
  11704. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11705. the values array must be empty. This array is replaced during a strategic
  11706. merge patch.
  11707. items:
  11708. type: string
  11709. type: array
  11710. x-kubernetes-list-type: atomic
  11711. required:
  11712. - key
  11713. - operator
  11714. type: object
  11715. type: array
  11716. x-kubernetes-list-type: atomic
  11717. matchLabels:
  11718. additionalProperties:
  11719. type: string
  11720. description: |-
  11721. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11722. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11723. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11724. type: object
  11725. type: object
  11726. x-kubernetes-map-type: atomic
  11727. namespaces:
  11728. description: |-
  11729. namespaces specifies a static list of namespace names that the term applies to.
  11730. The term is applied to the union of the namespaces listed in this field
  11731. and the ones selected by namespaceSelector.
  11732. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  11733. items:
  11734. type: string
  11735. type: array
  11736. x-kubernetes-list-type: atomic
  11737. topologyKey:
  11738. description: |-
  11739. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  11740. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  11741. whose value of the label with key topologyKey matches that of any node on which any of the
  11742. selected pods is running.
  11743. Empty topologyKey is not allowed.
  11744. type: string
  11745. required:
  11746. - topologyKey
  11747. type: object
  11748. type: array
  11749. x-kubernetes-list-type: atomic
  11750. type: object
  11751. podAntiAffinity:
  11752. description: Describes pod anti-affinity scheduling
  11753. rules (e.g. avoid putting this pod in the same node,
  11754. zone, etc. as some other pod(s)).
  11755. properties:
  11756. preferredDuringSchedulingIgnoredDuringExecution:
  11757. description: |-
  11758. The scheduler will prefer to schedule pods to nodes that satisfy
  11759. the anti-affinity expressions specified by this field, but it may choose
  11760. a node that violates one or more of the expressions. The node that is
  11761. most preferred is the one with the greatest sum of weights, i.e.
  11762. for each node that meets all of the scheduling requirements (resource
  11763. request, requiredDuringScheduling anti-affinity expressions, etc.),
  11764. compute a sum by iterating through the elements of this field and subtracting
  11765. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  11766. node(s) with the highest sum are the most preferred.
  11767. items:
  11768. description: The weights of all of the matched
  11769. WeightedPodAffinityTerm fields are added per-node
  11770. to find the most preferred node(s)
  11771. properties:
  11772. podAffinityTerm:
  11773. description: Required. A pod affinity term,
  11774. associated with the corresponding weight.
  11775. properties:
  11776. labelSelector:
  11777. description: |-
  11778. A label query over a set of resources, in this case pods.
  11779. If it's null, this PodAffinityTerm matches with no Pods.
  11780. properties:
  11781. matchExpressions:
  11782. description: matchExpressions is
  11783. a list of label selector requirements.
  11784. The requirements are ANDed.
  11785. items:
  11786. description: |-
  11787. A label selector requirement is a selector that contains values, a key, and an operator that
  11788. relates the key and values.
  11789. properties:
  11790. key:
  11791. description: key is the label
  11792. key that the selector applies
  11793. to.
  11794. type: string
  11795. operator:
  11796. description: |-
  11797. operator represents a key's relationship to a set of values.
  11798. Valid operators are In, NotIn, Exists and DoesNotExist.
  11799. type: string
  11800. values:
  11801. description: |-
  11802. values is an array of string values. If the operator is In or NotIn,
  11803. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11804. the values array must be empty. This array is replaced during a strategic
  11805. merge patch.
  11806. items:
  11807. type: string
  11808. type: array
  11809. x-kubernetes-list-type: atomic
  11810. required:
  11811. - key
  11812. - operator
  11813. type: object
  11814. type: array
  11815. x-kubernetes-list-type: atomic
  11816. matchLabels:
  11817. additionalProperties:
  11818. type: string
  11819. description: |-
  11820. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11821. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11822. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11823. type: object
  11824. type: object
  11825. x-kubernetes-map-type: atomic
  11826. matchLabelKeys:
  11827. description: |-
  11828. MatchLabelKeys is a set of pod label keys to select which pods will
  11829. be taken into consideration. The keys are used to lookup values from the
  11830. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  11831. to select the group of existing pods which pods will be taken into consideration
  11832. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11833. pod labels will be ignored. The default value is empty.
  11834. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  11835. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  11836. items:
  11837. type: string
  11838. type: array
  11839. x-kubernetes-list-type: atomic
  11840. mismatchLabelKeys:
  11841. description: |-
  11842. MismatchLabelKeys is a set of pod label keys to select which pods will
  11843. be taken into consideration. The keys are used to lookup values from the
  11844. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  11845. to select the group of existing pods which pods will be taken into consideration
  11846. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  11847. pod labels will be ignored. The default value is empty.
  11848. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  11849. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  11850. items:
  11851. type: string
  11852. type: array
  11853. x-kubernetes-list-type: atomic
  11854. namespaceSelector:
  11855. description: |-
  11856. A label query over the set of namespaces that the term applies to.
  11857. The term is applied to the union of the namespaces selected by this field
  11858. and the ones listed in the namespaces field.
  11859. null selector and null or empty namespaces list means "this pod's namespace".
  11860. An empty selector ({}) matches all namespaces.
  11861. properties:
  11862. matchExpressions:
  11863. description: matchExpressions is
  11864. a list of label selector requirements.
  11865. The requirements are ANDed.
  11866. items:
  11867. description: |-
  11868. A label selector requirement is a selector that contains values, a key, and an operator that
  11869. relates the key and values.
  11870. properties:
  11871. key:
  11872. description: key is the label
  11873. key that the selector applies
  11874. to.
  11875. type: string
  11876. operator:
  11877. description: |-
  11878. operator represents a key's relationship to a set of values.
  11879. Valid operators are In, NotIn, Exists and DoesNotExist.
  11880. type: string
  11881. values:
  11882. description: |-
  11883. values is an array of string values. If the operator is In or NotIn,
  11884. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11885. the values array must be empty. This array is replaced during a strategic
  11886. merge patch.
  11887. items:
  11888. type: string
  11889. type: array
  11890. x-kubernetes-list-type: atomic
  11891. required:
  11892. - key
  11893. - operator
  11894. type: object
  11895. type: array
  11896. x-kubernetes-list-type: atomic
  11897. matchLabels:
  11898. additionalProperties:
  11899. type: string
  11900. description: |-
  11901. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  11902. map is equivalent to an element of matchExpressions, whose key field is "key", the
  11903. operator is "In", and the values array contains only "value". The requirements are ANDed.
  11904. type: object
  11905. type: object
  11906. x-kubernetes-map-type: atomic
  11907. namespaces:
  11908. description: |-
  11909. namespaces specifies a static list of namespace names that the term applies to.
  11910. The term is applied to the union of the namespaces listed in this field
  11911. and the ones selected by namespaceSelector.
  11912. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  11913. items:
  11914. type: string
  11915. type: array
  11916. x-kubernetes-list-type: atomic
  11917. topologyKey:
  11918. description: |-
  11919. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  11920. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  11921. whose value of the label with key topologyKey matches that of any node on which any of the
  11922. selected pods is running.
  11923. Empty topologyKey is not allowed.
  11924. type: string
  11925. required:
  11926. - topologyKey
  11927. type: object
  11928. weight:
  11929. description: |-
  11930. weight associated with matching the corresponding podAffinityTerm,
  11931. in the range 1-100.
  11932. format: int32
  11933. type: integer
  11934. required:
  11935. - podAffinityTerm
  11936. - weight
  11937. type: object
  11938. type: array
  11939. x-kubernetes-list-type: atomic
  11940. requiredDuringSchedulingIgnoredDuringExecution:
  11941. description: |-
  11942. If the anti-affinity requirements specified by this field are not met at
  11943. scheduling time, the pod will not be scheduled onto the node.
  11944. If the anti-affinity requirements specified by this field cease to be met
  11945. at some point during pod execution (e.g. due to a pod label update), the
  11946. system may or may not try to eventually evict the pod from its node.
  11947. When there are multiple elements, the lists of nodes corresponding to each
  11948. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  11949. items:
  11950. description: |-
  11951. Defines a set of pods (namely those matching the labelSelector
  11952. relative to the given namespace(s)) that this pod should be
  11953. co-located (affinity) or not co-located (anti-affinity) with,
  11954. where co-located is defined as running on a node whose value of
  11955. the label with key <topologyKey> matches that of any node on which
  11956. a pod of the set of pods is running
  11957. properties:
  11958. labelSelector:
  11959. description: |-
  11960. A label query over a set of resources, in this case pods.
  11961. If it's null, this PodAffinityTerm matches with no Pods.
  11962. properties:
  11963. matchExpressions:
  11964. description: matchExpressions is a list
  11965. of label selector requirements. The
  11966. requirements are ANDed.
  11967. items:
  11968. description: |-
  11969. A label selector requirement is a selector that contains values, a key, and an operator that
  11970. relates the key and values.
  11971. properties:
  11972. key:
  11973. description: key is the label
  11974. key that the selector applies
  11975. to.
  11976. type: string
  11977. operator:
  11978. description: |-
  11979. operator represents a key's relationship to a set of values.
  11980. Valid operators are In, NotIn, Exists and DoesNotExist.
  11981. type: string
  11982. values:
  11983. description: |-
  11984. values is an array of string values. If the operator is In or NotIn,
  11985. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  11986. the values array must be empty. This array is replaced during a strategic
  11987. merge patch.
  11988. items:
  11989. type: string
  11990. type: array
  11991. x-kubernetes-list-type: atomic
  11992. required:
  11993. - key
  11994. - operator
  11995. type: object
  11996. type: array
  11997. x-kubernetes-list-type: atomic
  11998. matchLabels:
  11999. additionalProperties:
  12000. type: string
  12001. description: |-
  12002. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  12003. map is equivalent to an element of matchExpressions, whose key field is "key", the
  12004. operator is "In", and the values array contains only "value". The requirements are ANDed.
  12005. type: object
  12006. type: object
  12007. x-kubernetes-map-type: atomic
  12008. matchLabelKeys:
  12009. description: |-
  12010. MatchLabelKeys is a set of pod label keys to select which pods will
  12011. be taken into consideration. The keys are used to lookup values from the
  12012. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  12013. to select the group of existing pods which pods will be taken into consideration
  12014. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  12015. pod labels will be ignored. The default value is empty.
  12016. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  12017. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  12018. items:
  12019. type: string
  12020. type: array
  12021. x-kubernetes-list-type: atomic
  12022. mismatchLabelKeys:
  12023. description: |-
  12024. MismatchLabelKeys is a set of pod label keys to select which pods will
  12025. be taken into consideration. The keys are used to lookup values from the
  12026. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  12027. to select the group of existing pods which pods will be taken into consideration
  12028. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  12029. pod labels will be ignored. The default value is empty.
  12030. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  12031. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  12032. items:
  12033. type: string
  12034. type: array
  12035. x-kubernetes-list-type: atomic
  12036. namespaceSelector:
  12037. description: |-
  12038. A label query over the set of namespaces that the term applies to.
  12039. The term is applied to the union of the namespaces selected by this field
  12040. and the ones listed in the namespaces field.
  12041. null selector and null or empty namespaces list means "this pod's namespace".
  12042. An empty selector ({}) matches all namespaces.
  12043. properties:
  12044. matchExpressions:
  12045. description: matchExpressions is a list
  12046. of label selector requirements. The
  12047. requirements are ANDed.
  12048. items:
  12049. description: |-
  12050. A label selector requirement is a selector that contains values, a key, and an operator that
  12051. relates the key and values.
  12052. properties:
  12053. key:
  12054. description: key is the label
  12055. key that the selector applies
  12056. to.
  12057. type: string
  12058. operator:
  12059. description: |-
  12060. operator represents a key's relationship to a set of values.
  12061. Valid operators are In, NotIn, Exists and DoesNotExist.
  12062. type: string
  12063. values:
  12064. description: |-
  12065. values is an array of string values. If the operator is In or NotIn,
  12066. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  12067. the values array must be empty. This array is replaced during a strategic
  12068. merge patch.
  12069. items:
  12070. type: string
  12071. type: array
  12072. x-kubernetes-list-type: atomic
  12073. required:
  12074. - key
  12075. - operator
  12076. type: object
  12077. type: array
  12078. x-kubernetes-list-type: atomic
  12079. matchLabels:
  12080. additionalProperties:
  12081. type: string
  12082. description: |-
  12083. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  12084. map is equivalent to an element of matchExpressions, whose key field is "key", the
  12085. operator is "In", and the values array contains only "value". The requirements are ANDed.
  12086. type: object
  12087. type: object
  12088. x-kubernetes-map-type: atomic
  12089. namespaces:
  12090. description: |-
  12091. namespaces specifies a static list of namespace names that the term applies to.
  12092. The term is applied to the union of the namespaces listed in this field
  12093. and the ones selected by namespaceSelector.
  12094. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12095. items:
  12096. type: string
  12097. type: array
  12098. x-kubernetes-list-type: atomic
  12099. topologyKey:
  12100. description: |-
  12101. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  12102. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  12103. whose value of the label with key topologyKey matches that of any node on which any of the
  12104. selected pods is running.
  12105. Empty topologyKey is not allowed.
  12106. type: string
  12107. required:
  12108. - topologyKey
  12109. type: object
  12110. type: array
  12111. x-kubernetes-list-type: atomic
  12112. type: object
  12113. type: object
  12114. nodeSelector:
  12115. additionalProperties:
  12116. type: string
  12117. description: nodeSelector pins pods to nodes that match
  12118. all the specified labels.
  12119. type: object
  12120. resources:
  12121. description: resources sets per-container resource requests
  12122. and limits.
  12123. properties:
  12124. claims:
  12125. description: |-
  12126. Claims lists the names of resources, defined in spec.resourceClaims,
  12127. that are used by this container.
  12128. This field depends on the
  12129. DynamicResourceAllocation feature gate.
  12130. This field is immutable. It can only be set for containers.
  12131. items:
  12132. description: ResourceClaim references one entry
  12133. in PodSpec.ResourceClaims.
  12134. properties:
  12135. name:
  12136. description: |-
  12137. Name must match the name of one entry in pod.spec.resourceClaims of
  12138. the Pod where this field is used. It makes that resource available
  12139. inside a container.
  12140. type: string
  12141. request:
  12142. description: |-
  12143. Request is the name chosen for a request in the referenced claim.
  12144. If empty, everything from the claim is made available, otherwise
  12145. only the result of this request.
  12146. type: string
  12147. required:
  12148. - name
  12149. type: object
  12150. type: array
  12151. x-kubernetes-list-map-keys:
  12152. - name
  12153. x-kubernetes-list-type: map
  12154. limits:
  12155. additionalProperties:
  12156. anyOf:
  12157. - type: integer
  12158. - type: string
  12159. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12160. x-kubernetes-int-or-string: true
  12161. description: |-
  12162. Limits describes the maximum amount of compute resources allowed.
  12163. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12164. type: object
  12165. requests:
  12166. additionalProperties:
  12167. anyOf:
  12168. - type: integer
  12169. - type: string
  12170. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12171. x-kubernetes-int-or-string: true
  12172. description: |-
  12173. Requests describes the minimum amount of compute resources required.
  12174. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  12175. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  12176. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12177. type: object
  12178. type: object
  12179. runtime:
  12180. description: runtime describes the container runtime to
  12181. use for the workload.
  12182. properties:
  12183. args:
  12184. description: args specifies or overrides the preset's
  12185. container command.
  12186. items:
  12187. type: string
  12188. type: array
  12189. command:
  12190. description: command specifies or overrides the preset's
  12191. container entrypoint.
  12192. items:
  12193. type: string
  12194. type: array
  12195. conditionalArgs:
  12196. description: conditionalArgs are appended to the preset
  12197. command conditionally.
  12198. items:
  12199. properties:
  12200. args:
  12201. description: args are appended to the preset
  12202. args.
  12203. items:
  12204. type: string
  12205. type: array
  12206. when:
  12207. description: when the value is not empty after
  12208. variable substitution, the args are appended
  12209. to the preset args.
  12210. type: string
  12211. required:
  12212. - args
  12213. - when
  12214. type: object
  12215. type: array
  12216. env:
  12217. description: env holds environment variables injected
  12218. into the container.
  12219. items:
  12220. description: EnvVar represents an environment variable
  12221. present in a Container.
  12222. properties:
  12223. name:
  12224. description: |-
  12225. Name of the environment variable.
  12226. May consist of any printable ASCII characters except '='.
  12227. type: string
  12228. value:
  12229. description: |-
  12230. Variable references $(VAR_NAME) are expanded
  12231. using the previously defined environment variables in the container and
  12232. any service environment variables. If a variable cannot be resolved,
  12233. the reference in the input string will be unchanged. Double $$ are reduced
  12234. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  12235. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  12236. Escaped references will never be expanded, regardless of whether the variable
  12237. exists or not.
  12238. Defaults to "".
  12239. type: string
  12240. valueFrom:
  12241. description: Source for the environment variable's
  12242. value. Cannot be used if value is not empty.
  12243. properties:
  12244. configMapKeyRef:
  12245. description: Selects a key of a ConfigMap.
  12246. properties:
  12247. key:
  12248. description: The key to select.
  12249. type: string
  12250. name:
  12251. default: ""
  12252. description: |-
  12253. Name of the referent.
  12254. This field is effectively required, but due to backwards compatibility is
  12255. allowed to be empty. Instances of this type with an empty value here are
  12256. almost certainly wrong.
  12257. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  12258. type: string
  12259. optional:
  12260. description: Specify whether the ConfigMap
  12261. or its key must be defined
  12262. type: boolean
  12263. required:
  12264. - key
  12265. type: object
  12266. x-kubernetes-map-type: atomic
  12267. fieldRef:
  12268. description: |-
  12269. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  12270. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  12271. properties:
  12272. apiVersion:
  12273. description: Version of the schema the
  12274. FieldPath is written in terms of,
  12275. defaults to "v1".
  12276. type: string
  12277. fieldPath:
  12278. description: Path of the field to select
  12279. in the specified API version.
  12280. type: string
  12281. required:
  12282. - fieldPath
  12283. type: object
  12284. x-kubernetes-map-type: atomic
  12285. fileKeyRef:
  12286. description: |-
  12287. FileKeyRef selects a key of the env file.
  12288. Requires the EnvFiles feature gate to be enabled.
  12289. properties:
  12290. key:
  12291. description: |-
  12292. The key within the env file. An invalid key will prevent the pod from starting.
  12293. The keys defined within a source may consist of any printable ASCII characters except '='.
  12294. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  12295. type: string
  12296. optional:
  12297. default: false
  12298. description: |-
  12299. Specify whether the file or its key must be defined. If the file or key
  12300. does not exist, then the env var is not published.
  12301. If optional is set to true and the specified key does not exist,
  12302. the environment variable will not be set in the Pod's containers.
  12303. If optional is set to false and the specified key does not exist,
  12304. an error will be returned during Pod creation.
  12305. type: boolean
  12306. path:
  12307. description: |-
  12308. The path within the volume from which to select the file.
  12309. Must be relative and may not contain the '..' path or start with '..'.
  12310. type: string
  12311. volumeName:
  12312. description: The name of the volume
  12313. mount containing the env file.
  12314. type: string
  12315. required:
  12316. - key
  12317. - path
  12318. - volumeName
  12319. type: object
  12320. x-kubernetes-map-type: atomic
  12321. resourceFieldRef:
  12322. description: |-
  12323. Selects a resource of the container: only resources limits and requests
  12324. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  12325. properties:
  12326. containerName:
  12327. description: 'Container name: required
  12328. for volumes, optional for env vars'
  12329. type: string
  12330. divisor:
  12331. anyOf:
  12332. - type: integer
  12333. - type: string
  12334. description: Specifies the output format
  12335. of the exposed resources, defaults
  12336. to "1"
  12337. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12338. x-kubernetes-int-or-string: true
  12339. resource:
  12340. description: 'Required: resource to
  12341. select'
  12342. type: string
  12343. required:
  12344. - resource
  12345. type: object
  12346. x-kubernetes-map-type: atomic
  12347. secretKeyRef:
  12348. description: Selects a key of a secret in
  12349. the pod's namespace
  12350. properties:
  12351. key:
  12352. description: The key of the secret to
  12353. select from. Must be a valid secret
  12354. key.
  12355. type: string
  12356. name:
  12357. default: ""
  12358. description: |-
  12359. Name of the referent.
  12360. This field is effectively required, but due to backwards compatibility is
  12361. allowed to be empty. Instances of this type with an empty value here are
  12362. almost certainly wrong.
  12363. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  12364. type: string
  12365. optional:
  12366. description: Specify whether the Secret
  12367. or its key must be defined
  12368. type: boolean
  12369. required:
  12370. - key
  12371. type: object
  12372. x-kubernetes-map-type: atomic
  12373. type: object
  12374. required:
  12375. - name
  12376. type: object
  12377. type: array
  12378. envFrom:
  12379. description: envFrom references ConfigMaps or Secrets
  12380. whose key-value pairs are injected as environment
  12381. variables.
  12382. items:
  12383. description: EnvFromSource represents the source
  12384. of a set of ConfigMaps or Secrets
  12385. properties:
  12386. configMapRef:
  12387. description: The ConfigMap to select from
  12388. properties:
  12389. name:
  12390. default: ""
  12391. description: |-
  12392. Name of the referent.
  12393. This field is effectively required, but due to backwards compatibility is
  12394. allowed to be empty. Instances of this type with an empty value here are
  12395. almost certainly wrong.
  12396. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  12397. type: string
  12398. optional:
  12399. description: Specify whether the ConfigMap
  12400. must be defined
  12401. type: boolean
  12402. type: object
  12403. x-kubernetes-map-type: atomic
  12404. prefix:
  12405. description: |-
  12406. Optional text to prepend to the name of each environment variable.
  12407. May consist of any printable ASCII characters except '='.
  12408. type: string
  12409. secretRef:
  12410. description: The Secret to select from
  12411. properties:
  12412. name:
  12413. default: ""
  12414. description: |-
  12415. Name of the referent.
  12416. This field is effectively required, but due to backwards compatibility is
  12417. allowed to be empty. Instances of this type with an empty value here are
  12418. almost certainly wrong.
  12419. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  12420. type: string
  12421. optional:
  12422. description: Specify whether the Secret
  12423. must be defined
  12424. type: boolean
  12425. type: object
  12426. x-kubernetes-map-type: atomic
  12427. type: object
  12428. type: array
  12429. extraArgs:
  12430. description: extraArgs are appended to the preset
  12431. command.
  12432. items:
  12433. type: string
  12434. type: array
  12435. image:
  12436. description: |-
  12437. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  12438. or pull from a private registry mirror.
  12439. type: string
  12440. name:
  12441. description: name selects a built-in runtime preset.
  12442. type: string
  12443. port:
  12444. description: port specifies or overrides the container
  12445. port the runtime listens on.
  12446. format: int32
  12447. type: integer
  12448. volumeMounts:
  12449. description: volumeMounts defines where pod volumes
  12450. are mounted inside the container.
  12451. items:
  12452. description: VolumeMount describes a mounting of
  12453. a Volume within a container.
  12454. properties:
  12455. mountPath:
  12456. description: |-
  12457. Path within the container at which the volume should be mounted. Must
  12458. not contain ':'.
  12459. type: string
  12460. mountPropagation:
  12461. description: |-
  12462. mountPropagation determines how mounts are propagated from the host
  12463. to container and the other way around.
  12464. When not set, MountPropagationNone is used.
  12465. This field is beta in 1.10.
  12466. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  12467. (which defaults to None).
  12468. type: string
  12469. name:
  12470. description: This must match the Name of a Volume.
  12471. type: string
  12472. readOnly:
  12473. description: |-
  12474. Mounted read-only if true, read-write otherwise (false or unspecified).
  12475. Defaults to false.
  12476. type: boolean
  12477. recursiveReadOnly:
  12478. description: |-
  12479. RecursiveReadOnly specifies whether read-only mounts should be handled
  12480. recursively.
  12481. If ReadOnly is false, this field has no meaning and must be unspecified.
  12482. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  12483. recursively read-only. If this field is set to IfPossible, the mount is made
  12484. recursively read-only, if it is supported by the container runtime. If this
  12485. field is set to Enabled, the mount is made recursively read-only if it is
  12486. supported by the container runtime, otherwise the pod will not be started and
  12487. an error will be generated to indicate the reason.
  12488. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  12489. None (or be unspecified, which defaults to None).
  12490. If this field is not specified, it is treated as an equivalent of Disabled.
  12491. type: string
  12492. subPath:
  12493. description: |-
  12494. Path within the volume from which the container's volume should be mounted.
  12495. Defaults to "" (volume's root).
  12496. type: string
  12497. subPathExpr:
  12498. description: |-
  12499. Expanded path within the volume from which the container's volume should be mounted.
  12500. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  12501. Defaults to "" (volume's root).
  12502. SubPathExpr and SubPath are mutually exclusive.
  12503. type: string
  12504. required:
  12505. - mountPath
  12506. - name
  12507. type: object
  12508. type: array
  12509. type: object
  12510. securityContext:
  12511. description: |-
  12512. securityContext sets pod-level security attributes such as runAsUser,
  12513. runAsGroup, fsGroup, and sysctls.
  12514. properties:
  12515. appArmorProfile:
  12516. description: |-
  12517. appArmorProfile is the AppArmor options to use by the containers in this pod.
  12518. Note that this field cannot be set when spec.os.name is windows.
  12519. properties:
  12520. localhostProfile:
  12521. description: |-
  12522. localhostProfile indicates a profile loaded on the node that should be used.
  12523. The profile must be preconfigured on the node to work.
  12524. Must match the loaded name of the profile.
  12525. Must be set if and only if type is "Localhost".
  12526. type: string
  12527. type:
  12528. description: |-
  12529. type indicates which kind of AppArmor profile will be applied.
  12530. Valid options are:
  12531. Localhost - a profile pre-loaded on the node.
  12532. RuntimeDefault - the container runtime's default profile.
  12533. Unconfined - no AppArmor enforcement.
  12534. type: string
  12535. required:
  12536. - type
  12537. type: object
  12538. fsGroup:
  12539. description: |-
  12540. A special supplemental group that applies to all containers in a pod.
  12541. Some volume types allow the Kubelet to change the ownership of that volume
  12542. to be owned by the pod:
  12543. 1. The owning GID will be the FSGroup
  12544. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  12545. 3. The permission bits are OR'd with rw-rw----
  12546. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  12547. Note that this field cannot be set when spec.os.name is windows.
  12548. format: int64
  12549. type: integer
  12550. fsGroupChangePolicy:
  12551. description: |-
  12552. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  12553. before being exposed inside Pod. This field will only apply to
  12554. volume types which support fsGroup based ownership(and permissions).
  12555. It will have no effect on ephemeral volume types such as: secret, configmaps
  12556. and emptydir.
  12557. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  12558. Note that this field cannot be set when spec.os.name is windows.
  12559. type: string
  12560. runAsGroup:
  12561. description: |-
  12562. The GID to run the entrypoint of the container process.
  12563. Uses runtime default if unset.
  12564. May also be set in SecurityContext. If set in both SecurityContext and
  12565. PodSecurityContext, the value specified in SecurityContext takes precedence
  12566. for that container.
  12567. Note that this field cannot be set when spec.os.name is windows.
  12568. format: int64
  12569. type: integer
  12570. runAsNonRoot:
  12571. description: |-
  12572. Indicates that the container must run as a non-root user.
  12573. If true, the Kubelet will validate the image at runtime to ensure that it
  12574. does not run as UID 0 (root) and fail to start the container if it does.
  12575. If unset or false, no such validation will be performed.
  12576. May also be set in SecurityContext. If set in both SecurityContext and
  12577. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12578. type: boolean
  12579. runAsUser:
  12580. description: |-
  12581. The UID to run the entrypoint of the container process.
  12582. Defaults to user specified in image metadata if unspecified.
  12583. May also be set in SecurityContext. If set in both SecurityContext and
  12584. PodSecurityContext, the value specified in SecurityContext takes precedence
  12585. for that container.
  12586. Note that this field cannot be set when spec.os.name is windows.
  12587. format: int64
  12588. type: integer
  12589. seLinuxChangePolicy:
  12590. description: |-
  12591. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  12592. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  12593. Valid values are "MountOption" and "Recursive".
  12594. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  12595. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  12596. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  12597. This requires all Pods that share the same volume to use the same SELinux label.
  12598. It is not possible to share the same volume among privileged and unprivileged Pods.
  12599. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  12600. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  12601. CSIDriver instance. Other volumes are always re-labelled recursively.
  12602. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  12603. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  12604. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  12605. and "Recursive" for all other volumes.
  12606. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  12607. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  12608. Note that this field cannot be set when spec.os.name is windows.
  12609. type: string
  12610. seLinuxOptions:
  12611. description: |-
  12612. The SELinux context to be applied to all containers.
  12613. If unspecified, the container runtime will allocate a random SELinux context for each
  12614. container. May also be set in SecurityContext. If set in
  12615. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  12616. takes precedence for that container.
  12617. Note that this field cannot be set when spec.os.name is windows.
  12618. properties:
  12619. level:
  12620. description: Level is SELinux level label that
  12621. applies to the container.
  12622. type: string
  12623. role:
  12624. description: Role is a SELinux role label that
  12625. applies to the container.
  12626. type: string
  12627. type:
  12628. description: Type is a SELinux type label that
  12629. applies to the container.
  12630. type: string
  12631. user:
  12632. description: User is a SELinux user label that
  12633. applies to the container.
  12634. type: string
  12635. type: object
  12636. seccompProfile:
  12637. description: |-
  12638. The seccomp options to use by the containers in this pod.
  12639. Note that this field cannot be set when spec.os.name is windows.
  12640. properties:
  12641. localhostProfile:
  12642. description: |-
  12643. localhostProfile indicates a profile defined in a file on the node should be used.
  12644. The profile must be preconfigured on the node to work.
  12645. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  12646. Must be set if type is "Localhost". Must NOT be set for any other type.
  12647. type: string
  12648. type:
  12649. description: |-
  12650. type indicates which kind of seccomp profile will be applied.
  12651. Valid options are:
  12652. Localhost - a profile defined in a file on the node should be used.
  12653. RuntimeDefault - the container runtime default profile should be used.
  12654. Unconfined - no profile should be applied.
  12655. type: string
  12656. required:
  12657. - type
  12658. type: object
  12659. supplementalGroups:
  12660. description: |-
  12661. A list of groups applied to the first process run in each container, in
  12662. addition to the container's primary GID and fsGroup (if specified). If
  12663. the SupplementalGroupsPolicy feature is enabled, the
  12664. supplementalGroupsPolicy field determines whether these are in addition
  12665. to or instead of any group memberships defined in the container image.
  12666. If unspecified, no additional groups are added, though group memberships
  12667. defined in the container image may still be used, depending on the
  12668. supplementalGroupsPolicy field.
  12669. Note that this field cannot be set when spec.os.name is windows.
  12670. items:
  12671. format: int64
  12672. type: integer
  12673. type: array
  12674. x-kubernetes-list-type: atomic
  12675. supplementalGroupsPolicy:
  12676. description: |-
  12677. Defines how supplemental groups of the first container processes are calculated.
  12678. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  12679. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  12680. and the container runtime must implement support for this feature.
  12681. Note that this field cannot be set when spec.os.name is windows.
  12682. type: string
  12683. sysctls:
  12684. description: |-
  12685. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  12686. sysctls (by the container runtime) might fail to launch.
  12687. Note that this field cannot be set when spec.os.name is windows.
  12688. items:
  12689. description: Sysctl defines a kernel parameter to
  12690. be set
  12691. properties:
  12692. name:
  12693. description: Name of a property to set
  12694. type: string
  12695. value:
  12696. description: Value of a property to set
  12697. type: string
  12698. required:
  12699. - name
  12700. - value
  12701. type: object
  12702. type: array
  12703. x-kubernetes-list-type: atomic
  12704. windowsOptions:
  12705. description: |-
  12706. The Windows specific settings applied to all containers.
  12707. If unspecified, the options within a container's SecurityContext will be used.
  12708. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  12709. Note that this field cannot be set when spec.os.name is linux.
  12710. properties:
  12711. gmsaCredentialSpec:
  12712. description: |-
  12713. GMSACredentialSpec is where the GMSA admission webhook
  12714. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  12715. GMSA credential spec named by the GMSACredentialSpecName field.
  12716. type: string
  12717. gmsaCredentialSpecName:
  12718. description: GMSACredentialSpecName is the name
  12719. of the GMSA credential spec to use.
  12720. type: string
  12721. hostProcess:
  12722. description: |-
  12723. HostProcess determines if a container should be run as a 'Host Process' container.
  12724. All of a Pod's containers must have the same effective HostProcess value
  12725. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  12726. In addition, if HostProcess is true then HostNetwork must also be set to true.
  12727. type: boolean
  12728. runAsUserName:
  12729. description: |-
  12730. The UserName in Windows to run the entrypoint of the container process.
  12731. Defaults to the user specified in image metadata if unspecified.
  12732. May also be set in PodSecurityContext. If set in both SecurityContext and
  12733. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12734. type: string
  12735. type: object
  12736. type: object
  12737. tolerations:
  12738. description: tolerations allow pods to be scheduled onto
  12739. nodes with matching taints.
  12740. items:
  12741. description: |-
  12742. The pod this Toleration is attached to tolerates any taint that matches
  12743. the triple <key,value,effect> using the matching operator <operator>.
  12744. properties:
  12745. effect:
  12746. description: |-
  12747. Effect indicates the taint effect to match. Empty means match all taint effects.
  12748. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  12749. type: string
  12750. key:
  12751. description: |-
  12752. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  12753. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  12754. type: string
  12755. operator:
  12756. description: |-
  12757. Operator represents a key's relationship to the value.
  12758. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
  12759. Exists is equivalent to wildcard for value, so that a pod can
  12760. tolerate all taints of a particular category.
  12761. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
  12762. type: string
  12763. tolerationSeconds:
  12764. description: |-
  12765. TolerationSeconds represents the period of time the toleration (which must be
  12766. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  12767. it is not set, which means tolerate the taint forever (do not evict). Zero and
  12768. negative values will be treated as 0 (evict immediately) by the system.
  12769. format: int64
  12770. type: integer
  12771. value:
  12772. description: |-
  12773. Value is the taint value the toleration matches to.
  12774. If the operator is Exists, the value should be empty, otherwise just a regular string.
  12775. type: string
  12776. type: object
  12777. type: array
  12778. topologySpreadConstraints:
  12779. description: |-
  12780. topologySpreadConstraints controls how pods are spread across failure
  12781. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  12782. items:
  12783. description: TopologySpreadConstraint specifies how
  12784. to spread matching pods among the given topology.
  12785. properties:
  12786. labelSelector:
  12787. description: |-
  12788. LabelSelector is used to find matching pods.
  12789. Pods that match this label selector are counted to determine the number of pods
  12790. in their corresponding topology domain.
  12791. properties:
  12792. matchExpressions:
  12793. description: matchExpressions is a list of label
  12794. selector requirements. The requirements are
  12795. ANDed.
  12796. items:
  12797. description: |-
  12798. A label selector requirement is a selector that contains values, a key, and an operator that
  12799. relates the key and values.
  12800. properties:
  12801. key:
  12802. description: key is the label key that
  12803. the selector applies to.
  12804. type: string
  12805. operator:
  12806. description: |-
  12807. operator represents a key's relationship to a set of values.
  12808. Valid operators are In, NotIn, Exists and DoesNotExist.
  12809. type: string
  12810. values:
  12811. description: |-
  12812. values is an array of string values. If the operator is In or NotIn,
  12813. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  12814. the values array must be empty. This array is replaced during a strategic
  12815. merge patch.
  12816. items:
  12817. type: string
  12818. type: array
  12819. x-kubernetes-list-type: atomic
  12820. required:
  12821. - key
  12822. - operator
  12823. type: object
  12824. type: array
  12825. x-kubernetes-list-type: atomic
  12826. matchLabels:
  12827. additionalProperties:
  12828. type: string
  12829. description: |-
  12830. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  12831. map is equivalent to an element of matchExpressions, whose key field is "key", the
  12832. operator is "In", and the values array contains only "value". The requirements are ANDed.
  12833. type: object
  12834. type: object
  12835. x-kubernetes-map-type: atomic
  12836. matchLabelKeys:
  12837. description: |-
  12838. MatchLabelKeys is a set of pod label keys to select the pods over which
  12839. spreading will be calculated. The keys are used to lookup values from the
  12840. incoming pod labels, those key-value labels are ANDed with labelSelector
  12841. to select the group of existing pods over which spreading will be calculated
  12842. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  12843. MatchLabelKeys cannot be set when LabelSelector isn't set.
  12844. Keys that don't exist in the incoming pod labels will
  12845. be ignored. A null or empty list means only match against labelSelector.
  12846. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  12847. items:
  12848. type: string
  12849. type: array
  12850. x-kubernetes-list-type: atomic
  12851. maxSkew:
  12852. description: |-
  12853. MaxSkew describes the degree to which pods may be unevenly distributed.
  12854. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  12855. between the number of matching pods in the target topology and the global minimum.
  12856. The global minimum is the minimum number of matching pods in an eligible domain
  12857. or zero if the number of eligible domains is less than MinDomains.
  12858. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  12859. labelSelector spread as 2/2/1:
  12860. In this case, the global minimum is 1.
  12861. | zone1 | zone2 | zone3 |
  12862. | P P | P P | P |
  12863. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  12864. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  12865. violate MaxSkew(1).
  12866. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  12867. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  12868. to topologies that satisfy it.
  12869. It's a required field. Default value is 1 and 0 is not allowed.
  12870. format: int32
  12871. type: integer
  12872. minDomains:
  12873. description: |-
  12874. MinDomains indicates a minimum number of eligible domains.
  12875. When the number of eligible domains with matching topology keys is less than minDomains,
  12876. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  12877. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  12878. this value has no effect on scheduling.
  12879. As a result, when the number of eligible domains is less than minDomains,
  12880. scheduler won't schedule more than maxSkew Pods to those domains.
  12881. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  12882. Valid values are integers greater than 0.
  12883. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  12884. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  12885. labelSelector spread as 2/2/2:
  12886. | zone1 | zone2 | zone3 |
  12887. | P P | P P | P P |
  12888. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  12889. In this situation, new pod with the same labelSelector cannot be scheduled,
  12890. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  12891. it will violate MaxSkew.
  12892. format: int32
  12893. type: integer
  12894. nodeAffinityPolicy:
  12895. description: |-
  12896. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  12897. when calculating pod topology spread skew. Options are:
  12898. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  12899. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  12900. If this value is nil, the behavior is equivalent to the Honor policy.
  12901. type: string
  12902. nodeTaintsPolicy:
  12903. description: |-
  12904. NodeTaintsPolicy indicates how we will treat node taints when calculating
  12905. pod topology spread skew. Options are:
  12906. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  12907. has a toleration, are included.
  12908. - Ignore: node taints are ignored. All nodes are included.
  12909. If this value is nil, the behavior is equivalent to the Ignore policy.
  12910. type: string
  12911. topologyKey:
  12912. description: |-
  12913. TopologyKey is the key of node labels. Nodes that have a label with this key
  12914. and identical values are considered to be in the same topology.
  12915. We consider each <key, value> as a "bucket", and try to put balanced number
  12916. of pods into each bucket.
  12917. We define a domain as a particular instance of a topology.
  12918. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  12919. nodeAffinityPolicy and nodeTaintsPolicy.
  12920. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  12921. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  12922. It's a required field.
  12923. type: string
  12924. whenUnsatisfiable:
  12925. description: |-
  12926. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  12927. the spread constraint.
  12928. - DoNotSchedule (default) tells the scheduler not to schedule it.
  12929. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  12930. but giving higher precedence to topologies that would help reduce the
  12931. skew.
  12932. A constraint is considered "Unsatisfiable" for an incoming pod
  12933. if and only if every possible node assignment for that pod would violate
  12934. "MaxSkew" on some topology.
  12935. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  12936. labelSelector spread as 3/1/1:
  12937. | zone1 | zone2 | zone3 |
  12938. | P P P | P | P |
  12939. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  12940. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  12941. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  12942. won't make it *more* imbalanced.
  12943. It's a required field.
  12944. type: string
  12945. required:
  12946. - maxSkew
  12947. - topologyKey
  12948. - whenUnsatisfiable
  12949. type: object
  12950. type: array
  12951. volumes:
  12952. description: volumes defines additional pod volumes available
  12953. to the runtime container.
  12954. items:
  12955. description: Volume represents a named volume in a pod
  12956. that may be accessed by any container in the pod.
  12957. properties:
  12958. awsElasticBlockStore:
  12959. description: |-
  12960. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  12961. kubelet's host machine and then exposed to the pod.
  12962. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  12963. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  12964. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  12965. properties:
  12966. fsType:
  12967. description: |-
  12968. fsType is the filesystem type of the volume that you want to mount.
  12969. Tip: Ensure that the filesystem type is supported by the host operating system.
  12970. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  12971. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  12972. type: string
  12973. partition:
  12974. description: |-
  12975. partition is the partition in the volume that you want to mount.
  12976. If omitted, the default is to mount by volume name.
  12977. Examples: For volume /dev/sda1, you specify the partition as "1".
  12978. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  12979. format: int32
  12980. type: integer
  12981. readOnly:
  12982. description: |-
  12983. readOnly value true will force the readOnly setting in VolumeMounts.
  12984. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  12985. type: boolean
  12986. volumeID:
  12987. description: |-
  12988. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  12989. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  12990. type: string
  12991. required:
  12992. - volumeID
  12993. type: object
  12994. azureDisk:
  12995. description: |-
  12996. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  12997. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  12998. are redirected to the disk.csi.azure.com CSI driver.
  12999. properties:
  13000. cachingMode:
  13001. description: 'cachingMode is the Host Caching
  13002. mode: None, Read Only, Read Write.'
  13003. type: string
  13004. diskName:
  13005. description: diskName is the Name of the data
  13006. disk in the blob storage
  13007. type: string
  13008. diskURI:
  13009. description: diskURI is the URI of data disk
  13010. in the blob storage
  13011. type: string
  13012. fsType:
  13013. default: ext4
  13014. description: |-
  13015. fsType is Filesystem type to mount.
  13016. Must be a filesystem type supported by the host operating system.
  13017. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  13018. type: string
  13019. kind:
  13020. description: 'kind expected values are Shared:
  13021. multiple blob disks per storage account Dedicated:
  13022. single blob disk per storage account Managed:
  13023. azure managed data disk (only in managed availability
  13024. set). defaults to shared'
  13025. type: string
  13026. readOnly:
  13027. default: false
  13028. description: |-
  13029. readOnly Defaults to false (read/write). ReadOnly here will force
  13030. the ReadOnly setting in VolumeMounts.
  13031. type: boolean
  13032. required:
  13033. - diskName
  13034. - diskURI
  13035. type: object
  13036. azureFile:
  13037. description: |-
  13038. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  13039. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  13040. are redirected to the file.csi.azure.com CSI driver.
  13041. properties:
  13042. readOnly:
  13043. description: |-
  13044. readOnly defaults to false (read/write). ReadOnly here will force
  13045. the ReadOnly setting in VolumeMounts.
  13046. type: boolean
  13047. secretName:
  13048. description: secretName is the name of secret
  13049. that contains Azure Storage Account Name and
  13050. Key
  13051. type: string
  13052. shareName:
  13053. description: shareName is the azure share Name
  13054. type: string
  13055. required:
  13056. - secretName
  13057. - shareName
  13058. type: object
  13059. cephfs:
  13060. description: |-
  13061. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  13062. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  13063. properties:
  13064. monitors:
  13065. description: |-
  13066. monitors is Required: Monitors is a collection of Ceph monitors
  13067. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  13068. items:
  13069. type: string
  13070. type: array
  13071. x-kubernetes-list-type: atomic
  13072. path:
  13073. description: 'path is Optional: Used as the
  13074. mounted root, rather than the full Ceph tree,
  13075. default is /'
  13076. type: string
  13077. readOnly:
  13078. description: |-
  13079. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  13080. the ReadOnly setting in VolumeMounts.
  13081. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  13082. type: boolean
  13083. secretFile:
  13084. description: |-
  13085. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  13086. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  13087. type: string
  13088. secretRef:
  13089. description: |-
  13090. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  13091. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  13092. properties:
  13093. name:
  13094. default: ""
  13095. description: |-
  13096. Name of the referent.
  13097. This field is effectively required, but due to backwards compatibility is
  13098. allowed to be empty. Instances of this type with an empty value here are
  13099. almost certainly wrong.
  13100. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13101. type: string
  13102. type: object
  13103. x-kubernetes-map-type: atomic
  13104. user:
  13105. description: |-
  13106. user is optional: User is the rados user name, default is admin
  13107. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  13108. type: string
  13109. required:
  13110. - monitors
  13111. type: object
  13112. cinder:
  13113. description: |-
  13114. cinder represents a cinder volume attached and mounted on kubelets host machine.
  13115. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  13116. are redirected to the cinder.csi.openstack.org CSI driver.
  13117. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  13118. properties:
  13119. fsType:
  13120. description: |-
  13121. fsType is the filesystem type to mount.
  13122. Must be a filesystem type supported by the host operating system.
  13123. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  13124. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  13125. type: string
  13126. readOnly:
  13127. description: |-
  13128. readOnly defaults to false (read/write). ReadOnly here will force
  13129. the ReadOnly setting in VolumeMounts.
  13130. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  13131. type: boolean
  13132. secretRef:
  13133. description: |-
  13134. secretRef is optional: points to a secret object containing parameters used to connect
  13135. to OpenStack.
  13136. properties:
  13137. name:
  13138. default: ""
  13139. description: |-
  13140. Name of the referent.
  13141. This field is effectively required, but due to backwards compatibility is
  13142. allowed to be empty. Instances of this type with an empty value here are
  13143. almost certainly wrong.
  13144. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13145. type: string
  13146. type: object
  13147. x-kubernetes-map-type: atomic
  13148. volumeID:
  13149. description: |-
  13150. volumeID used to identify the volume in cinder.
  13151. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  13152. type: string
  13153. required:
  13154. - volumeID
  13155. type: object
  13156. configMap:
  13157. description: configMap represents a configMap that
  13158. should populate this volume
  13159. properties:
  13160. defaultMode:
  13161. description: |-
  13162. defaultMode is optional: mode bits used to set permissions on created files by default.
  13163. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  13164. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  13165. Defaults to 0644.
  13166. Directories within the path are not affected by this setting.
  13167. This might be in conflict with other options that affect the file
  13168. mode, like fsGroup, and the result can be other mode bits set.
  13169. format: int32
  13170. type: integer
  13171. items:
  13172. description: |-
  13173. items if unspecified, each key-value pair in the Data field of the referenced
  13174. ConfigMap will be projected into the volume as a file whose name is the
  13175. key and content is the value. If specified, the listed keys will be
  13176. projected into the specified paths, and unlisted keys will not be
  13177. present. If a key is specified which is not present in the ConfigMap,
  13178. the volume setup will error unless it is marked optional. Paths must be
  13179. relative and may not contain the '..' path or start with '..'.
  13180. items:
  13181. description: Maps a string key to a path within
  13182. a volume.
  13183. properties:
  13184. key:
  13185. description: key is the key to project.
  13186. type: string
  13187. mode:
  13188. description: |-
  13189. mode is Optional: mode bits used to set permissions on this file.
  13190. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  13191. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  13192. If not specified, the volume defaultMode will be used.
  13193. This might be in conflict with other options that affect the file
  13194. mode, like fsGroup, and the result can be other mode bits set.
  13195. format: int32
  13196. type: integer
  13197. path:
  13198. description: |-
  13199. path is the relative path of the file to map the key to.
  13200. May not be an absolute path.
  13201. May not contain the path element '..'.
  13202. May not start with the string '..'.
  13203. type: string
  13204. required:
  13205. - key
  13206. - path
  13207. type: object
  13208. type: array
  13209. x-kubernetes-list-type: atomic
  13210. name:
  13211. default: ""
  13212. description: |-
  13213. Name of the referent.
  13214. This field is effectively required, but due to backwards compatibility is
  13215. allowed to be empty. Instances of this type with an empty value here are
  13216. almost certainly wrong.
  13217. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13218. type: string
  13219. optional:
  13220. description: optional specify whether the ConfigMap
  13221. or its keys must be defined
  13222. type: boolean
  13223. type: object
  13224. x-kubernetes-map-type: atomic
  13225. csi:
  13226. description: csi (Container Storage Interface) represents
  13227. ephemeral storage that is handled by certain external
  13228. CSI drivers.
  13229. properties:
  13230. driver:
  13231. description: |-
  13232. driver is the name of the CSI driver that handles this volume.
  13233. Consult with your admin for the correct name as registered in the cluster.
  13234. type: string
  13235. fsType:
  13236. description: |-
  13237. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  13238. If not provided, the empty value is passed to the associated CSI driver
  13239. which will determine the default filesystem to apply.
  13240. type: string
  13241. nodePublishSecretRef:
  13242. description: |-
  13243. nodePublishSecretRef is a reference to the secret object containing
  13244. sensitive information to pass to the CSI driver to complete the CSI
  13245. NodePublishVolume and NodeUnpublishVolume calls.
  13246. This field is optional, and may be empty if no secret is required. If the
  13247. secret object contains more than one secret, all secret references are passed.
  13248. properties:
  13249. name:
  13250. default: ""
  13251. description: |-
  13252. Name of the referent.
  13253. This field is effectively required, but due to backwards compatibility is
  13254. allowed to be empty. Instances of this type with an empty value here are
  13255. almost certainly wrong.
  13256. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13257. type: string
  13258. type: object
  13259. x-kubernetes-map-type: atomic
  13260. readOnly:
  13261. description: |-
  13262. readOnly specifies a read-only configuration for the volume.
  13263. Defaults to false (read/write).
  13264. type: boolean
  13265. volumeAttributes:
  13266. additionalProperties:
  13267. type: string
  13268. description: |-
  13269. volumeAttributes stores driver-specific properties that are passed to the CSI
  13270. driver. Consult your driver's documentation for supported values.
  13271. type: object
  13272. required:
  13273. - driver
  13274. type: object
  13275. downwardAPI:
  13276. description: downwardAPI represents downward API
  13277. about the pod that should populate this volume
  13278. properties:
  13279. defaultMode:
  13280. description: |-
  13281. Optional: mode bits to use on created files by default. Must be a
  13282. Optional: mode bits used to set permissions on created files by default.
  13283. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  13284. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  13285. Defaults to 0644.
  13286. Directories within the path are not affected by this setting.
  13287. This might be in conflict with other options that affect the file
  13288. mode, like fsGroup, and the result can be other mode bits set.
  13289. format: int32
  13290. type: integer
  13291. items:
  13292. description: Items is a list of downward API
  13293. volume file
  13294. items:
  13295. description: DownwardAPIVolumeFile represents
  13296. information to create the file containing
  13297. the pod field
  13298. properties:
  13299. fieldRef:
  13300. description: 'Required: Selects a field
  13301. of the pod: only annotations, labels,
  13302. name, namespace and uid are supported.'
  13303. properties:
  13304. apiVersion:
  13305. description: Version of the schema
  13306. the FieldPath is written in terms
  13307. of, defaults to "v1".
  13308. type: string
  13309. fieldPath:
  13310. description: Path of the field to
  13311. select in the specified API version.
  13312. type: string
  13313. required:
  13314. - fieldPath
  13315. type: object
  13316. x-kubernetes-map-type: atomic
  13317. mode:
  13318. description: |-
  13319. Optional: mode bits used to set permissions on this file, must be an octal value
  13320. between 0000 and 0777 or a decimal value between 0 and 511.
  13321. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  13322. If not specified, the volume defaultMode will be used.
  13323. This might be in conflict with other options that affect the file
  13324. mode, like fsGroup, and the result can be other mode bits set.
  13325. format: int32
  13326. type: integer
  13327. path:
  13328. description: 'Required: Path is the relative
  13329. path name of the file to be created.
  13330. Must not be absolute or contain the
  13331. ''..'' path. Must be utf-8 encoded.
  13332. The first item of the relative path
  13333. must not start with ''..'''
  13334. type: string
  13335. resourceFieldRef:
  13336. description: |-
  13337. Selects a resource of the container: only resources limits and requests
  13338. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  13339. properties:
  13340. containerName:
  13341. description: 'Container name: required
  13342. for volumes, optional for env vars'
  13343. type: string
  13344. divisor:
  13345. anyOf:
  13346. - type: integer
  13347. - type: string
  13348. description: Specifies the output
  13349. format of the exposed resources,
  13350. defaults to "1"
  13351. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13352. x-kubernetes-int-or-string: true
  13353. resource:
  13354. description: 'Required: resource to
  13355. select'
  13356. type: string
  13357. required:
  13358. - resource
  13359. type: object
  13360. x-kubernetes-map-type: atomic
  13361. required:
  13362. - path
  13363. type: object
  13364. type: array
  13365. x-kubernetes-list-type: atomic
  13366. type: object
  13367. emptyDir:
  13368. description: |-
  13369. emptyDir represents a temporary directory that shares a pod's lifetime.
  13370. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  13371. properties:
  13372. medium:
  13373. description: |-
  13374. medium represents what type of storage medium should back this directory.
  13375. The default is "" which means to use the node's default medium.
  13376. Must be an empty string (default) or Memory.
  13377. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  13378. type: string
  13379. sizeLimit:
  13380. anyOf:
  13381. - type: integer
  13382. - type: string
  13383. description: |-
  13384. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  13385. The size limit is also applicable for memory medium.
  13386. The maximum usage on memory medium EmptyDir would be the minimum value between
  13387. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  13388. The default is nil which means that the limit is undefined.
  13389. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  13390. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13391. x-kubernetes-int-or-string: true
  13392. type: object
  13393. ephemeral:
  13394. description: |-
  13395. ephemeral represents a volume that is handled by a cluster storage driver.
  13396. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  13397. and deleted when the pod is removed.
  13398. Use this if:
  13399. a) the volume is only needed while the pod runs,
  13400. b) features of normal volumes like restoring from snapshot or capacity
  13401. tracking are needed,
  13402. c) the storage driver is specified through a storage class, and
  13403. d) the storage driver supports dynamic volume provisioning through
  13404. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  13405. information on the connection between this volume type
  13406. and PersistentVolumeClaim).
  13407. Use PersistentVolumeClaim or one of the vendor-specific
  13408. APIs for volumes that persist for longer than the lifecycle
  13409. of an individual pod.
  13410. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  13411. be used that way - see the documentation of the driver for
  13412. more information.
  13413. A pod can use both types of ephemeral volumes and
  13414. persistent volumes at the same time.
  13415. properties:
  13416. volumeClaimTemplate:
  13417. description: |-
  13418. Will be used to create a stand-alone PVC to provision the volume.
  13419. The pod in which this EphemeralVolumeSource is embedded will be the
  13420. owner of the PVC, i.e. the PVC will be deleted together with the
  13421. pod. The name of the PVC will be `<pod name>-<volume name>` where
  13422. `<volume name>` is the name from the `PodSpec.Volumes` array
  13423. entry. Pod validation will reject the pod if the concatenated name
  13424. is not valid for a PVC (for example, too long).
  13425. An existing PVC with that name that is not owned by the pod
  13426. will *not* be used for the pod to avoid using an unrelated
  13427. volume by mistake. Starting the pod is then blocked until
  13428. the unrelated PVC is removed. If such a pre-created PVC is
  13429. meant to be used by the pod, the PVC has to updated with an
  13430. owner reference to the pod once the pod exists. Normally
  13431. this should not be necessary, but it may be useful when
  13432. manually reconstructing a broken cluster.
  13433. This field is read-only and no changes will be made by Kubernetes
  13434. to the PVC after it has been created.
  13435. Required, must not be nil.
  13436. properties:
  13437. metadata:
  13438. description: |-
  13439. May contain labels and annotations that will be copied into the PVC
  13440. when creating it. No other fields are allowed and will be rejected during
  13441. validation.
  13442. type: object
  13443. spec:
  13444. description: |-
  13445. The specification for the PersistentVolumeClaim. The entire content is
  13446. copied unchanged into the PVC that gets created from this
  13447. template. The same fields as in a PersistentVolumeClaim
  13448. are also valid here.
  13449. properties:
  13450. accessModes:
  13451. description: |-
  13452. accessModes contains the desired access modes the volume should have.
  13453. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  13454. items:
  13455. type: string
  13456. type: array
  13457. x-kubernetes-list-type: atomic
  13458. dataSource:
  13459. description: |-
  13460. dataSource field can be used to specify either:
  13461. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  13462. * An existing PVC (PersistentVolumeClaim)
  13463. If the provisioner or an external controller can support the specified data source,
  13464. it will create a new volume based on the contents of the specified data source.
  13465. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  13466. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  13467. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  13468. properties:
  13469. apiGroup:
  13470. description: |-
  13471. APIGroup is the group for the resource being referenced.
  13472. If APIGroup is not specified, the specified Kind must be in the core API group.
  13473. For any other third-party types, APIGroup is required.
  13474. type: string
  13475. kind:
  13476. description: Kind is the type of
  13477. resource being referenced
  13478. type: string
  13479. name:
  13480. description: Name is the name of
  13481. resource being referenced
  13482. type: string
  13483. required:
  13484. - kind
  13485. - name
  13486. type: object
  13487. x-kubernetes-map-type: atomic
  13488. dataSourceRef:
  13489. description: |-
  13490. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  13491. volume is desired. This may be any object from a non-empty API group (non
  13492. core object) or a PersistentVolumeClaim object.
  13493. When this field is specified, volume binding will only succeed if the type of
  13494. the specified object matches some installed volume populator or dynamic
  13495. provisioner.
  13496. This field will replace the functionality of the dataSource field and as such
  13497. if both fields are non-empty, they must have the same value. For backwards
  13498. compatibility, when namespace isn't specified in dataSourceRef,
  13499. both fields (dataSource and dataSourceRef) will be set to the same
  13500. value automatically if one of them is empty and the other is non-empty.
  13501. When namespace is specified in dataSourceRef,
  13502. dataSource isn't set to the same value and must be empty.
  13503. There are three important differences between dataSource and dataSourceRef:
  13504. * While dataSource only allows two specific types of objects, dataSourceRef
  13505. allows any non-core object, as well as PersistentVolumeClaim objects.
  13506. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  13507. preserves all values, and generates an error if a disallowed value is
  13508. specified.
  13509. * While dataSource only allows local objects, dataSourceRef allows objects
  13510. in any namespaces.
  13511. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  13512. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  13513. properties:
  13514. apiGroup:
  13515. description: |-
  13516. APIGroup is the group for the resource being referenced.
  13517. If APIGroup is not specified, the specified Kind must be in the core API group.
  13518. For any other third-party types, APIGroup is required.
  13519. type: string
  13520. kind:
  13521. description: Kind is the type of
  13522. resource being referenced
  13523. type: string
  13524. name:
  13525. description: Name is the name of
  13526. resource being referenced
  13527. type: string
  13528. namespace:
  13529. description: |-
  13530. Namespace is the namespace of resource being referenced
  13531. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  13532. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  13533. type: string
  13534. required:
  13535. - kind
  13536. - name
  13537. type: object
  13538. resources:
  13539. description: |-
  13540. resources represents the minimum resources the volume should have.
  13541. Users are allowed to specify resource requirements
  13542. that are lower than previous value but must still be higher than capacity recorded in the
  13543. status field of the claim.
  13544. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  13545. properties:
  13546. limits:
  13547. additionalProperties:
  13548. anyOf:
  13549. - type: integer
  13550. - type: string
  13551. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13552. x-kubernetes-int-or-string: true
  13553. description: |-
  13554. Limits describes the maximum amount of compute resources allowed.
  13555. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  13556. type: object
  13557. requests:
  13558. additionalProperties:
  13559. anyOf:
  13560. - type: integer
  13561. - type: string
  13562. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13563. x-kubernetes-int-or-string: true
  13564. description: |-
  13565. Requests describes the minimum amount of compute resources required.
  13566. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  13567. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  13568. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  13569. type: object
  13570. type: object
  13571. selector:
  13572. description: selector is a label query
  13573. over volumes to consider for binding.
  13574. properties:
  13575. matchExpressions:
  13576. description: matchExpressions is
  13577. a list of label selector requirements.
  13578. The requirements are ANDed.
  13579. items:
  13580. description: |-
  13581. A label selector requirement is a selector that contains values, a key, and an operator that
  13582. relates the key and values.
  13583. properties:
  13584. key:
  13585. description: key is the label
  13586. key that the selector applies
  13587. to.
  13588. type: string
  13589. operator:
  13590. description: |-
  13591. operator represents a key's relationship to a set of values.
  13592. Valid operators are In, NotIn, Exists and DoesNotExist.
  13593. type: string
  13594. values:
  13595. description: |-
  13596. values is an array of string values. If the operator is In or NotIn,
  13597. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  13598. the values array must be empty. This array is replaced during a strategic
  13599. merge patch.
  13600. items:
  13601. type: string
  13602. type: array
  13603. x-kubernetes-list-type: atomic
  13604. required:
  13605. - key
  13606. - operator
  13607. type: object
  13608. type: array
  13609. x-kubernetes-list-type: atomic
  13610. matchLabels:
  13611. additionalProperties:
  13612. type: string
  13613. description: |-
  13614. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  13615. map is equivalent to an element of matchExpressions, whose key field is "key", the
  13616. operator is "In", and the values array contains only "value". The requirements are ANDed.
  13617. type: object
  13618. type: object
  13619. x-kubernetes-map-type: atomic
  13620. storageClassName:
  13621. description: |-
  13622. storageClassName is the name of the StorageClass required by the claim.
  13623. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  13624. type: string
  13625. volumeAttributesClassName:
  13626. description: |-
  13627. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  13628. If specified, the CSI driver will create or update the volume with the attributes defined
  13629. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  13630. it can be changed after the claim is created. An empty string or nil value indicates that no
  13631. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  13632. this field can be reset to its previous value (including nil) to cancel the modification.
  13633. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  13634. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  13635. exists.
  13636. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  13637. type: string
  13638. volumeMode:
  13639. description: |-
  13640. volumeMode defines what type of volume is required by the claim.
  13641. Value of Filesystem is implied when not included in claim spec.
  13642. type: string
  13643. volumeName:
  13644. description: volumeName is the binding
  13645. reference to the PersistentVolume
  13646. backing this claim.
  13647. type: string
  13648. type: object
  13649. required:
  13650. - spec
  13651. type: object
  13652. type: object
  13653. fc:
  13654. description: fc represents a Fibre Channel resource
  13655. that is attached to a kubelet's host machine and
  13656. then exposed to the pod.
  13657. properties:
  13658. fsType:
  13659. description: |-
  13660. fsType is the filesystem type to mount.
  13661. Must be a filesystem type supported by the host operating system.
  13662. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  13663. type: string
  13664. lun:
  13665. description: 'lun is Optional: FC target lun
  13666. number'
  13667. format: int32
  13668. type: integer
  13669. readOnly:
  13670. description: |-
  13671. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  13672. the ReadOnly setting in VolumeMounts.
  13673. type: boolean
  13674. targetWWNs:
  13675. description: 'targetWWNs is Optional: FC target
  13676. worldwide names (WWNs)'
  13677. items:
  13678. type: string
  13679. type: array
  13680. x-kubernetes-list-type: atomic
  13681. wwids:
  13682. description: |-
  13683. wwids Optional: FC volume world wide identifiers (wwids)
  13684. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  13685. items:
  13686. type: string
  13687. type: array
  13688. x-kubernetes-list-type: atomic
  13689. type: object
  13690. flexVolume:
  13691. description: |-
  13692. flexVolume represents a generic volume resource that is
  13693. provisioned/attached using an exec based plugin.
  13694. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  13695. properties:
  13696. driver:
  13697. description: driver is the name of the driver
  13698. to use for this volume.
  13699. type: string
  13700. fsType:
  13701. description: |-
  13702. fsType is the filesystem type to mount.
  13703. Must be a filesystem type supported by the host operating system.
  13704. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  13705. type: string
  13706. options:
  13707. additionalProperties:
  13708. type: string
  13709. description: 'options is Optional: this field
  13710. holds extra command options if any.'
  13711. type: object
  13712. readOnly:
  13713. description: |-
  13714. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  13715. the ReadOnly setting in VolumeMounts.
  13716. type: boolean
  13717. secretRef:
  13718. description: |-
  13719. secretRef is Optional: secretRef is reference to the secret object containing
  13720. sensitive information to pass to the plugin scripts. This may be
  13721. empty if no secret object is specified. If the secret object
  13722. contains more than one secret, all secrets are passed to the plugin
  13723. scripts.
  13724. properties:
  13725. name:
  13726. default: ""
  13727. description: |-
  13728. Name of the referent.
  13729. This field is effectively required, but due to backwards compatibility is
  13730. allowed to be empty. Instances of this type with an empty value here are
  13731. almost certainly wrong.
  13732. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13733. type: string
  13734. type: object
  13735. x-kubernetes-map-type: atomic
  13736. required:
  13737. - driver
  13738. type: object
  13739. flocker:
  13740. description: |-
  13741. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  13742. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  13743. properties:
  13744. datasetName:
  13745. description: |-
  13746. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  13747. should be considered as deprecated
  13748. type: string
  13749. datasetUUID:
  13750. description: datasetUUID is the UUID of the
  13751. dataset. This is unique identifier of a Flocker
  13752. dataset
  13753. type: string
  13754. type: object
  13755. gcePersistentDisk:
  13756. description: |-
  13757. gcePersistentDisk represents a GCE Disk resource that is attached to a
  13758. kubelet's host machine and then exposed to the pod.
  13759. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  13760. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  13761. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  13762. properties:
  13763. fsType:
  13764. description: |-
  13765. fsType is filesystem type of the volume that you want to mount.
  13766. Tip: Ensure that the filesystem type is supported by the host operating system.
  13767. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  13768. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  13769. type: string
  13770. partition:
  13771. description: |-
  13772. partition is the partition in the volume that you want to mount.
  13773. If omitted, the default is to mount by volume name.
  13774. Examples: For volume /dev/sda1, you specify the partition as "1".
  13775. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  13776. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  13777. format: int32
  13778. type: integer
  13779. pdName:
  13780. description: |-
  13781. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  13782. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  13783. type: string
  13784. readOnly:
  13785. description: |-
  13786. readOnly here will force the ReadOnly setting in VolumeMounts.
  13787. Defaults to false.
  13788. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  13789. type: boolean
  13790. required:
  13791. - pdName
  13792. type: object
  13793. gitRepo:
  13794. description: |-
  13795. gitRepo represents a git repository at a particular revision.
  13796. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  13797. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  13798. into the Pod's container.
  13799. properties:
  13800. directory:
  13801. description: |-
  13802. directory is the target directory name.
  13803. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  13804. git repository. Otherwise, if specified, the volume will contain the git repository in
  13805. the subdirectory with the given name.
  13806. type: string
  13807. repository:
  13808. description: repository is the URL
  13809. type: string
  13810. revision:
  13811. description: revision is the commit hash for
  13812. the specified revision.
  13813. type: string
  13814. required:
  13815. - repository
  13816. type: object
  13817. glusterfs:
  13818. description: |-
  13819. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  13820. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  13821. properties:
  13822. endpoints:
  13823. description: endpoints is the endpoint name
  13824. that details Glusterfs topology.
  13825. type: string
  13826. path:
  13827. description: |-
  13828. path is the Glusterfs volume path.
  13829. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  13830. type: string
  13831. readOnly:
  13832. description: |-
  13833. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  13834. Defaults to false.
  13835. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  13836. type: boolean
  13837. required:
  13838. - endpoints
  13839. - path
  13840. type: object
  13841. hostPath:
  13842. description: |-
  13843. hostPath represents a pre-existing file or directory on the host
  13844. machine that is directly exposed to the container. This is generally
  13845. used for system agents or other privileged things that are allowed
  13846. to see the host machine. Most containers will NOT need this.
  13847. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  13848. properties:
  13849. path:
  13850. description: |-
  13851. path of the directory on the host.
  13852. If the path is a symlink, it will follow the link to the real path.
  13853. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  13854. type: string
  13855. type:
  13856. description: |-
  13857. type for HostPath Volume
  13858. Defaults to ""
  13859. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  13860. type: string
  13861. required:
  13862. - path
  13863. type: object
  13864. image:
  13865. description: |-
  13866. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  13867. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  13868. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  13869. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  13870. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  13871. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  13872. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  13873. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  13874. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  13875. The volume will be mounted read-only (ro) and non-executable files (noexec).
  13876. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  13877. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  13878. properties:
  13879. pullPolicy:
  13880. description: |-
  13881. Policy for pulling OCI objects. Possible values are:
  13882. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  13883. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  13884. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  13885. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  13886. type: string
  13887. reference:
  13888. description: |-
  13889. Required: Image or artifact reference to be used.
  13890. Behaves in the same way as pod.spec.containers[*].image.
  13891. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  13892. More info: https://kubernetes.io/docs/concepts/containers/images
  13893. This field is optional to allow higher level config management to default or override
  13894. container images in workload controllers like Deployments and StatefulSets.
  13895. type: string
  13896. type: object
  13897. iscsi:
  13898. description: |-
  13899. iscsi represents an ISCSI Disk resource that is attached to a
  13900. kubelet's host machine and then exposed to the pod.
  13901. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  13902. properties:
  13903. chapAuthDiscovery:
  13904. description: chapAuthDiscovery defines whether
  13905. support iSCSI Discovery CHAP authentication
  13906. type: boolean
  13907. chapAuthSession:
  13908. description: chapAuthSession defines whether
  13909. support iSCSI Session CHAP authentication
  13910. type: boolean
  13911. fsType:
  13912. description: |-
  13913. fsType is the filesystem type of the volume that you want to mount.
  13914. Tip: Ensure that the filesystem type is supported by the host operating system.
  13915. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  13916. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  13917. type: string
  13918. initiatorName:
  13919. description: |-
  13920. initiatorName is the custom iSCSI Initiator Name.
  13921. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  13922. <target portal>:<volume name> will be created for the connection.
  13923. type: string
  13924. iqn:
  13925. description: iqn is the target iSCSI Qualified
  13926. Name.
  13927. type: string
  13928. iscsiInterface:
  13929. default: default
  13930. description: |-
  13931. iscsiInterface is the interface Name that uses an iSCSI transport.
  13932. Defaults to 'default' (tcp).
  13933. type: string
  13934. lun:
  13935. description: lun represents iSCSI Target Lun
  13936. number.
  13937. format: int32
  13938. type: integer
  13939. portals:
  13940. description: |-
  13941. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  13942. is other than default (typically TCP ports 860 and 3260).
  13943. items:
  13944. type: string
  13945. type: array
  13946. x-kubernetes-list-type: atomic
  13947. readOnly:
  13948. description: |-
  13949. readOnly here will force the ReadOnly setting in VolumeMounts.
  13950. Defaults to false.
  13951. type: boolean
  13952. secretRef:
  13953. description: secretRef is the CHAP Secret for
  13954. iSCSI target and initiator authentication
  13955. properties:
  13956. name:
  13957. default: ""
  13958. description: |-
  13959. Name of the referent.
  13960. This field is effectively required, but due to backwards compatibility is
  13961. allowed to be empty. Instances of this type with an empty value here are
  13962. almost certainly wrong.
  13963. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13964. type: string
  13965. type: object
  13966. x-kubernetes-map-type: atomic
  13967. targetPortal:
  13968. description: |-
  13969. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  13970. is other than default (typically TCP ports 860 and 3260).
  13971. type: string
  13972. required:
  13973. - iqn
  13974. - lun
  13975. - targetPortal
  13976. type: object
  13977. name:
  13978. description: |-
  13979. name of the volume.
  13980. Must be a DNS_LABEL and unique within the pod.
  13981. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13982. type: string
  13983. nfs:
  13984. description: |-
  13985. nfs represents an NFS mount on the host that shares a pod's lifetime
  13986. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  13987. properties:
  13988. path:
  13989. description: |-
  13990. path that is exported by the NFS server.
  13991. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  13992. type: string
  13993. readOnly:
  13994. description: |-
  13995. readOnly here will force the NFS export to be mounted with read-only permissions.
  13996. Defaults to false.
  13997. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  13998. type: boolean
  13999. server:
  14000. description: |-
  14001. server is the hostname or IP address of the NFS server.
  14002. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  14003. type: string
  14004. required:
  14005. - path
  14006. - server
  14007. type: object
  14008. persistentVolumeClaim:
  14009. description: |-
  14010. persistentVolumeClaimVolumeSource represents a reference to a
  14011. PersistentVolumeClaim in the same namespace.
  14012. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  14013. properties:
  14014. claimName:
  14015. description: |-
  14016. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  14017. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  14018. type: string
  14019. readOnly:
  14020. description: |-
  14021. readOnly Will force the ReadOnly setting in VolumeMounts.
  14022. Default false.
  14023. type: boolean
  14024. required:
  14025. - claimName
  14026. type: object
  14027. photonPersistentDisk:
  14028. description: |-
  14029. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  14030. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  14031. properties:
  14032. fsType:
  14033. description: |-
  14034. fsType is the filesystem type to mount.
  14035. Must be a filesystem type supported by the host operating system.
  14036. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  14037. type: string
  14038. pdID:
  14039. description: pdID is the ID that identifies
  14040. Photon Controller persistent disk
  14041. type: string
  14042. required:
  14043. - pdID
  14044. type: object
  14045. portworxVolume:
  14046. description: |-
  14047. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  14048. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  14049. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  14050. is on.
  14051. properties:
  14052. fsType:
  14053. description: |-
  14054. fSType represents the filesystem type to mount
  14055. Must be a filesystem type supported by the host operating system.
  14056. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  14057. type: string
  14058. readOnly:
  14059. description: |-
  14060. readOnly defaults to false (read/write). ReadOnly here will force
  14061. the ReadOnly setting in VolumeMounts.
  14062. type: boolean
  14063. volumeID:
  14064. description: volumeID uniquely identifies a
  14065. Portworx volume
  14066. type: string
  14067. required:
  14068. - volumeID
  14069. type: object
  14070. projected:
  14071. description: projected items for all in one resources
  14072. secrets, configmaps, and downward API
  14073. properties:
  14074. defaultMode:
  14075. description: |-
  14076. defaultMode are the mode bits used to set permissions on created files by default.
  14077. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  14078. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  14079. Directories within the path are not affected by this setting.
  14080. This might be in conflict with other options that affect the file
  14081. mode, like fsGroup, and the result can be other mode bits set.
  14082. format: int32
  14083. type: integer
  14084. sources:
  14085. description: |-
  14086. sources is the list of volume projections. Each entry in this list
  14087. handles one source.
  14088. items:
  14089. description: |-
  14090. Projection that may be projected along with other supported volume types.
  14091. Exactly one of these fields must be set.
  14092. properties:
  14093. clusterTrustBundle:
  14094. description: |-
  14095. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  14096. of ClusterTrustBundle objects in an auto-updating file.
  14097. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  14098. ClusterTrustBundle objects can either be selected by name, or by the
  14099. combination of signer name and a label selector.
  14100. Kubelet performs aggressive normalization of the PEM contents written
  14101. into the pod filesystem. Esoteric PEM features such as inter-block
  14102. comments and block headers are stripped. Certificates are deduplicated.
  14103. The ordering of certificates within the file is arbitrary, and Kubelet
  14104. may change the order over time.
  14105. properties:
  14106. labelSelector:
  14107. description: |-
  14108. Select all ClusterTrustBundles that match this label selector. Only has
  14109. effect if signerName is set. Mutually-exclusive with name. If unset,
  14110. interpreted as "match nothing". If set but empty, interpreted as "match
  14111. everything".
  14112. properties:
  14113. matchExpressions:
  14114. description: matchExpressions
  14115. is a list of label selector
  14116. requirements. The requirements
  14117. are ANDed.
  14118. items:
  14119. description: |-
  14120. A label selector requirement is a selector that contains values, a key, and an operator that
  14121. relates the key and values.
  14122. properties:
  14123. key:
  14124. description: key is the
  14125. label key that the selector
  14126. applies to.
  14127. type: string
  14128. operator:
  14129. description: |-
  14130. operator represents a key's relationship to a set of values.
  14131. Valid operators are In, NotIn, Exists and DoesNotExist.
  14132. type: string
  14133. values:
  14134. description: |-
  14135. values is an array of string values. If the operator is In or NotIn,
  14136. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  14137. the values array must be empty. This array is replaced during a strategic
  14138. merge patch.
  14139. items:
  14140. type: string
  14141. type: array
  14142. x-kubernetes-list-type: atomic
  14143. required:
  14144. - key
  14145. - operator
  14146. type: object
  14147. type: array
  14148. x-kubernetes-list-type: atomic
  14149. matchLabels:
  14150. additionalProperties:
  14151. type: string
  14152. description: |-
  14153. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  14154. map is equivalent to an element of matchExpressions, whose key field is "key", the
  14155. operator is "In", and the values array contains only "value". The requirements are ANDed.
  14156. type: object
  14157. type: object
  14158. x-kubernetes-map-type: atomic
  14159. name:
  14160. description: |-
  14161. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  14162. with signerName and labelSelector.
  14163. type: string
  14164. optional:
  14165. description: |-
  14166. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  14167. aren't available. If using name, then the named ClusterTrustBundle is
  14168. allowed not to exist. If using signerName, then the combination of
  14169. signerName and labelSelector is allowed to match zero
  14170. ClusterTrustBundles.
  14171. type: boolean
  14172. path:
  14173. description: Relative path from the
  14174. volume root to write the bundle.
  14175. type: string
  14176. signerName:
  14177. description: |-
  14178. Select all ClusterTrustBundles that match this signer name.
  14179. Mutually-exclusive with name. The contents of all selected
  14180. ClusterTrustBundles will be unified and deduplicated.
  14181. type: string
  14182. required:
  14183. - path
  14184. type: object
  14185. configMap:
  14186. description: configMap information about
  14187. the configMap data to project
  14188. properties:
  14189. items:
  14190. description: |-
  14191. items if unspecified, each key-value pair in the Data field of the referenced
  14192. ConfigMap will be projected into the volume as a file whose name is the
  14193. key and content is the value. If specified, the listed keys will be
  14194. projected into the specified paths, and unlisted keys will not be
  14195. present. If a key is specified which is not present in the ConfigMap,
  14196. the volume setup will error unless it is marked optional. Paths must be
  14197. relative and may not contain the '..' path or start with '..'.
  14198. items:
  14199. description: Maps a string key to
  14200. a path within a volume.
  14201. properties:
  14202. key:
  14203. description: key is the key
  14204. to project.
  14205. type: string
  14206. mode:
  14207. description: |-
  14208. mode is Optional: mode bits used to set permissions on this file.
  14209. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  14210. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  14211. If not specified, the volume defaultMode will be used.
  14212. This might be in conflict with other options that affect the file
  14213. mode, like fsGroup, and the result can be other mode bits set.
  14214. format: int32
  14215. type: integer
  14216. path:
  14217. description: |-
  14218. path is the relative path of the file to map the key to.
  14219. May not be an absolute path.
  14220. May not contain the path element '..'.
  14221. May not start with the string '..'.
  14222. type: string
  14223. required:
  14224. - key
  14225. - path
  14226. type: object
  14227. type: array
  14228. x-kubernetes-list-type: atomic
  14229. name:
  14230. default: ""
  14231. description: |-
  14232. Name of the referent.
  14233. This field is effectively required, but due to backwards compatibility is
  14234. allowed to be empty. Instances of this type with an empty value here are
  14235. almost certainly wrong.
  14236. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  14237. type: string
  14238. optional:
  14239. description: optional specify whether
  14240. the ConfigMap or its keys must be
  14241. defined
  14242. type: boolean
  14243. type: object
  14244. x-kubernetes-map-type: atomic
  14245. downwardAPI:
  14246. description: downwardAPI information about
  14247. the downwardAPI data to project
  14248. properties:
  14249. items:
  14250. description: Items is a list of DownwardAPIVolume
  14251. file
  14252. items:
  14253. description: DownwardAPIVolumeFile
  14254. represents information to create
  14255. the file containing the pod field
  14256. properties:
  14257. fieldRef:
  14258. description: 'Required: Selects
  14259. a field of the pod: only annotations,
  14260. labels, name, namespace and
  14261. uid are supported.'
  14262. properties:
  14263. apiVersion:
  14264. description: Version of
  14265. the schema the FieldPath
  14266. is written in terms of,
  14267. defaults to "v1".
  14268. type: string
  14269. fieldPath:
  14270. description: Path of the
  14271. field to select in the
  14272. specified API version.
  14273. type: string
  14274. required:
  14275. - fieldPath
  14276. type: object
  14277. x-kubernetes-map-type: atomic
  14278. mode:
  14279. description: |-
  14280. Optional: mode bits used to set permissions on this file, must be an octal value
  14281. between 0000 and 0777 or a decimal value between 0 and 511.
  14282. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  14283. If not specified, the volume defaultMode will be used.
  14284. This might be in conflict with other options that affect the file
  14285. mode, like fsGroup, and the result can be other mode bits set.
  14286. format: int32
  14287. type: integer
  14288. path:
  14289. description: 'Required: Path
  14290. is the relative path name
  14291. of the file to be created.
  14292. Must not be absolute or contain
  14293. the ''..'' path. Must be utf-8
  14294. encoded. The first item of
  14295. the relative path must not
  14296. start with ''..'''
  14297. type: string
  14298. resourceFieldRef:
  14299. description: |-
  14300. Selects a resource of the container: only resources limits and requests
  14301. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  14302. properties:
  14303. containerName:
  14304. description: 'Container
  14305. name: required for volumes,
  14306. optional for env vars'
  14307. type: string
  14308. divisor:
  14309. anyOf:
  14310. - type: integer
  14311. - type: string
  14312. description: Specifies the
  14313. output format of the exposed
  14314. resources, defaults to
  14315. "1"
  14316. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14317. x-kubernetes-int-or-string: true
  14318. resource:
  14319. description: 'Required:
  14320. resource to select'
  14321. type: string
  14322. required:
  14323. - resource
  14324. type: object
  14325. x-kubernetes-map-type: atomic
  14326. required:
  14327. - path
  14328. type: object
  14329. type: array
  14330. x-kubernetes-list-type: atomic
  14331. type: object
  14332. podCertificate:
  14333. description: |-
  14334. Projects an auto-rotating credential bundle (private key and certificate
  14335. chain) that the pod can use either as a TLS client or server.
  14336. Kubelet generates a private key and uses it to send a
  14337. PodCertificateRequest to the named signer. Once the signer approves the
  14338. request and issues a certificate chain, Kubelet writes the key and
  14339. certificate chain to the pod filesystem. The pod does not start until
  14340. certificates have been issued for each podCertificate projected volume
  14341. source in its spec.
  14342. Kubelet will begin trying to rotate the certificate at the time indicated
  14343. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  14344. timestamp.
  14345. Kubelet can write a single file, indicated by the credentialBundlePath
  14346. field, or separate files, indicated by the keyPath and
  14347. certificateChainPath fields.
  14348. The credential bundle is a single file in PEM format. The first PEM
  14349. entry is the private key (in PKCS#8 format), and the remaining PEM
  14350. entries are the certificate chain issued by the signer (typically,
  14351. signers will return their certificate chain in leaf-to-root order).
  14352. Prefer using the credential bundle format, since your application code
  14353. can read it atomically. If you use keyPath and certificateChainPath,
  14354. your application must make two separate file reads. If these coincide
  14355. with a certificate rotation, it is possible that the private key and leaf
  14356. certificate you read may not correspond to each other. Your application
  14357. will need to check for this condition, and re-read until they are
  14358. consistent.
  14359. The named signer controls chooses the format of the certificate it
  14360. issues; consult the signer implementation's documentation to learn how to
  14361. use the certificates it issues.
  14362. properties:
  14363. certificateChainPath:
  14364. description: |-
  14365. Write the certificate chain at this path in the projected volume.
  14366. Most applications should use credentialBundlePath. When using keyPath
  14367. and certificateChainPath, your application needs to check that the key
  14368. and leaf certificate are consistent, because it is possible to read the
  14369. files mid-rotation.
  14370. type: string
  14371. credentialBundlePath:
  14372. description: |-
  14373. Write the credential bundle at this path in the projected volume.
  14374. The credential bundle is a single file that contains multiple PEM blocks.
  14375. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  14376. key.
  14377. The remaining blocks are CERTIFICATE blocks, containing the issued
  14378. certificate chain from the signer (leaf and any intermediates).
  14379. Using credentialBundlePath lets your Pod's application code make a single
  14380. atomic read that retrieves a consistent key and certificate chain. If you
  14381. project them to separate files, your application code will need to
  14382. additionally check that the leaf certificate was issued to the key.
  14383. type: string
  14384. keyPath:
  14385. description: |-
  14386. Write the key at this path in the projected volume.
  14387. Most applications should use credentialBundlePath. When using keyPath
  14388. and certificateChainPath, your application needs to check that the key
  14389. and leaf certificate are consistent, because it is possible to read the
  14390. files mid-rotation.
  14391. type: string
  14392. keyType:
  14393. description: |-
  14394. The type of keypair Kubelet will generate for the pod.
  14395. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  14396. "ECDSAP521", and "ED25519".
  14397. type: string
  14398. maxExpirationSeconds:
  14399. description: |-
  14400. maxExpirationSeconds is the maximum lifetime permitted for the
  14401. certificate.
  14402. Kubelet copies this value verbatim into the PodCertificateRequests it
  14403. generates for this projection.
  14404. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  14405. will reject values shorter than 3600 (1 hour). The maximum allowable
  14406. value is 7862400 (91 days).
  14407. The signer implementation is then free to issue a certificate with any
  14408. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  14409. seconds (1 hour). This constraint is enforced by kube-apiserver.
  14410. `kubernetes.io` signers will never issue certificates with a lifetime
  14411. longer than 24 hours.
  14412. format: int32
  14413. type: integer
  14414. signerName:
  14415. description: Kubelet's generated CSRs
  14416. will be addressed to this signer.
  14417. type: string
  14418. userAnnotations:
  14419. additionalProperties:
  14420. type: string
  14421. description: |-
  14422. userAnnotations allow pod authors to pass additional information to
  14423. the signer implementation. Kubernetes does not restrict or validate this
  14424. metadata in any way.
  14425. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
  14426. the PodCertificateRequest objects that Kubelet creates.
  14427. Entries are subject to the same validation as object metadata annotations,
  14428. with the addition that all keys must be domain-prefixed. No restrictions
  14429. are placed on values, except an overall size limitation on the entire field.
  14430. Signers should document the keys and values they support. Signers should
  14431. deny requests that contain keys they do not recognize.
  14432. type: object
  14433. required:
  14434. - keyType
  14435. - signerName
  14436. type: object
  14437. secret:
  14438. description: secret information about
  14439. the secret data to project
  14440. properties:
  14441. items:
  14442. description: |-
  14443. items if unspecified, each key-value pair in the Data field of the referenced
  14444. Secret will be projected into the volume as a file whose name is the
  14445. key and content is the value. If specified, the listed keys will be
  14446. projected into the specified paths, and unlisted keys will not be
  14447. present. If a key is specified which is not present in the Secret,
  14448. the volume setup will error unless it is marked optional. Paths must be
  14449. relative and may not contain the '..' path or start with '..'.
  14450. items:
  14451. description: Maps a string key to
  14452. a path within a volume.
  14453. properties:
  14454. key:
  14455. description: key is the key
  14456. to project.
  14457. type: string
  14458. mode:
  14459. description: |-
  14460. mode is Optional: mode bits used to set permissions on this file.
  14461. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  14462. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  14463. If not specified, the volume defaultMode will be used.
  14464. This might be in conflict with other options that affect the file
  14465. mode, like fsGroup, and the result can be other mode bits set.
  14466. format: int32
  14467. type: integer
  14468. path:
  14469. description: |-
  14470. path is the relative path of the file to map the key to.
  14471. May not be an absolute path.
  14472. May not contain the path element '..'.
  14473. May not start with the string '..'.
  14474. type: string
  14475. required:
  14476. - key
  14477. - path
  14478. type: object
  14479. type: array
  14480. x-kubernetes-list-type: atomic
  14481. name:
  14482. default: ""
  14483. description: |-
  14484. Name of the referent.
  14485. This field is effectively required, but due to backwards compatibility is
  14486. allowed to be empty. Instances of this type with an empty value here are
  14487. almost certainly wrong.
  14488. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  14489. type: string
  14490. optional:
  14491. description: optional field specify
  14492. whether the Secret or its key must
  14493. be defined
  14494. type: boolean
  14495. type: object
  14496. x-kubernetes-map-type: atomic
  14497. serviceAccountToken:
  14498. description: serviceAccountToken is information
  14499. about the serviceAccountToken data to
  14500. project
  14501. properties:
  14502. audience:
  14503. description: |-
  14504. audience is the intended audience of the token. A recipient of a token
  14505. must identify itself with an identifier specified in the audience of the
  14506. token, and otherwise should reject the token. The audience defaults to the
  14507. identifier of the apiserver.
  14508. type: string
  14509. expirationSeconds:
  14510. description: |-
  14511. expirationSeconds is the requested duration of validity of the service
  14512. account token. As the token approaches expiration, the kubelet volume
  14513. plugin will proactively rotate the service account token. The kubelet will
  14514. start trying to rotate the token if the token is older than 80 percent of
  14515. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  14516. and must be at least 10 minutes.
  14517. format: int64
  14518. type: integer
  14519. path:
  14520. description: |-
  14521. path is the path relative to the mount point of the file to project the
  14522. token into.
  14523. type: string
  14524. required:
  14525. - path
  14526. type: object
  14527. type: object
  14528. type: array
  14529. x-kubernetes-list-type: atomic
  14530. type: object
  14531. quobyte:
  14532. description: |-
  14533. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  14534. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  14535. properties:
  14536. group:
  14537. description: |-
  14538. group to map volume access to
  14539. Default is no group
  14540. type: string
  14541. readOnly:
  14542. description: |-
  14543. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  14544. Defaults to false.
  14545. type: boolean
  14546. registry:
  14547. description: |-
  14548. registry represents a single or multiple Quobyte Registry services
  14549. specified as a string as host:port pair (multiple entries are separated with commas)
  14550. which acts as the central registry for volumes
  14551. type: string
  14552. tenant:
  14553. description: |-
  14554. tenant owning the given Quobyte volume in the Backend
  14555. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  14556. type: string
  14557. user:
  14558. description: |-
  14559. user to map volume access to
  14560. Defaults to serivceaccount user
  14561. type: string
  14562. volume:
  14563. description: volume is a string that references
  14564. an already created Quobyte volume by name.
  14565. type: string
  14566. required:
  14567. - registry
  14568. - volume
  14569. type: object
  14570. rbd:
  14571. description: |-
  14572. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  14573. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  14574. properties:
  14575. fsType:
  14576. description: |-
  14577. fsType is the filesystem type of the volume that you want to mount.
  14578. Tip: Ensure that the filesystem type is supported by the host operating system.
  14579. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  14580. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  14581. type: string
  14582. image:
  14583. description: |-
  14584. image is the rados image name.
  14585. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14586. type: string
  14587. keyring:
  14588. default: /etc/ceph/keyring
  14589. description: |-
  14590. keyring is the path to key ring for RBDUser.
  14591. Default is /etc/ceph/keyring.
  14592. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14593. type: string
  14594. monitors:
  14595. description: |-
  14596. monitors is a collection of Ceph monitors.
  14597. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14598. items:
  14599. type: string
  14600. type: array
  14601. x-kubernetes-list-type: atomic
  14602. pool:
  14603. default: rbd
  14604. description: |-
  14605. pool is the rados pool name.
  14606. Default is rbd.
  14607. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14608. type: string
  14609. readOnly:
  14610. description: |-
  14611. readOnly here will force the ReadOnly setting in VolumeMounts.
  14612. Defaults to false.
  14613. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14614. type: boolean
  14615. secretRef:
  14616. description: |-
  14617. secretRef is name of the authentication secret for RBDUser. If provided
  14618. overrides keyring.
  14619. Default is nil.
  14620. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14621. properties:
  14622. name:
  14623. default: ""
  14624. description: |-
  14625. Name of the referent.
  14626. This field is effectively required, but due to backwards compatibility is
  14627. allowed to be empty. Instances of this type with an empty value here are
  14628. almost certainly wrong.
  14629. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  14630. type: string
  14631. type: object
  14632. x-kubernetes-map-type: atomic
  14633. user:
  14634. default: admin
  14635. description: |-
  14636. user is the rados user name.
  14637. Default is admin.
  14638. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  14639. type: string
  14640. required:
  14641. - image
  14642. - monitors
  14643. type: object
  14644. scaleIO:
  14645. description: |-
  14646. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  14647. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  14648. properties:
  14649. fsType:
  14650. default: xfs
  14651. description: |-
  14652. fsType is the filesystem type to mount.
  14653. Must be a filesystem type supported by the host operating system.
  14654. Ex. "ext4", "xfs", "ntfs".
  14655. Default is "xfs".
  14656. type: string
  14657. gateway:
  14658. description: gateway is the host address of
  14659. the ScaleIO API Gateway.
  14660. type: string
  14661. protectionDomain:
  14662. description: protectionDomain is the name of
  14663. the ScaleIO Protection Domain for the configured
  14664. storage.
  14665. type: string
  14666. readOnly:
  14667. description: |-
  14668. readOnly Defaults to false (read/write). ReadOnly here will force
  14669. the ReadOnly setting in VolumeMounts.
  14670. type: boolean
  14671. secretRef:
  14672. description: |-
  14673. secretRef references to the secret for ScaleIO user and other
  14674. sensitive information. If this is not provided, Login operation will fail.
  14675. properties:
  14676. name:
  14677. default: ""
  14678. description: |-
  14679. Name of the referent.
  14680. This field is effectively required, but due to backwards compatibility is
  14681. allowed to be empty. Instances of this type with an empty value here are
  14682. almost certainly wrong.
  14683. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  14684. type: string
  14685. type: object
  14686. x-kubernetes-map-type: atomic
  14687. sslEnabled:
  14688. description: sslEnabled Flag enable/disable
  14689. SSL communication with Gateway, default false
  14690. type: boolean
  14691. storageMode:
  14692. default: ThinProvisioned
  14693. description: |-
  14694. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  14695. Default is ThinProvisioned.
  14696. type: string
  14697. storagePool:
  14698. description: storagePool is the ScaleIO Storage
  14699. Pool associated with the protection domain.
  14700. type: string
  14701. system:
  14702. description: system is the name of the storage
  14703. system as configured in ScaleIO.
  14704. type: string
  14705. volumeName:
  14706. description: |-
  14707. volumeName is the name of a volume already created in the ScaleIO system
  14708. that is associated with this volume source.
  14709. type: string
  14710. required:
  14711. - gateway
  14712. - secretRef
  14713. - system
  14714. type: object
  14715. secret:
  14716. description: |-
  14717. secret represents a secret that should populate this volume.
  14718. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  14719. properties:
  14720. defaultMode:
  14721. description: |-
  14722. defaultMode is Optional: mode bits used to set permissions on created files by default.
  14723. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  14724. YAML accepts both octal and decimal values, JSON requires decimal values
  14725. for mode bits. Defaults to 0644.
  14726. Directories within the path are not affected by this setting.
  14727. This might be in conflict with other options that affect the file
  14728. mode, like fsGroup, and the result can be other mode bits set.
  14729. format: int32
  14730. type: integer
  14731. items:
  14732. description: |-
  14733. items If unspecified, each key-value pair in the Data field of the referenced
  14734. Secret will be projected into the volume as a file whose name is the
  14735. key and content is the value. If specified, the listed keys will be
  14736. projected into the specified paths, and unlisted keys will not be
  14737. present. If a key is specified which is not present in the Secret,
  14738. the volume setup will error unless it is marked optional. Paths must be
  14739. relative and may not contain the '..' path or start with '..'.
  14740. items:
  14741. description: Maps a string key to a path within
  14742. a volume.
  14743. properties:
  14744. key:
  14745. description: key is the key to project.
  14746. type: string
  14747. mode:
  14748. description: |-
  14749. mode is Optional: mode bits used to set permissions on this file.
  14750. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  14751. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  14752. If not specified, the volume defaultMode will be used.
  14753. This might be in conflict with other options that affect the file
  14754. mode, like fsGroup, and the result can be other mode bits set.
  14755. format: int32
  14756. type: integer
  14757. path:
  14758. description: |-
  14759. path is the relative path of the file to map the key to.
  14760. May not be an absolute path.
  14761. May not contain the path element '..'.
  14762. May not start with the string '..'.
  14763. type: string
  14764. required:
  14765. - key
  14766. - path
  14767. type: object
  14768. type: array
  14769. x-kubernetes-list-type: atomic
  14770. optional:
  14771. description: optional field specify whether
  14772. the Secret or its keys must be defined
  14773. type: boolean
  14774. secretName:
  14775. description: |-
  14776. secretName is the name of the secret in the pod's namespace to use.
  14777. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  14778. type: string
  14779. type: object
  14780. storageos:
  14781. description: |-
  14782. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  14783. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  14784. properties:
  14785. fsType:
  14786. description: |-
  14787. fsType is the filesystem type to mount.
  14788. Must be a filesystem type supported by the host operating system.
  14789. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  14790. type: string
  14791. readOnly:
  14792. description: |-
  14793. readOnly defaults to false (read/write). ReadOnly here will force
  14794. the ReadOnly setting in VolumeMounts.
  14795. type: boolean
  14796. secretRef:
  14797. description: |-
  14798. secretRef specifies the secret to use for obtaining the StorageOS API
  14799. credentials. If not specified, default values will be attempted.
  14800. properties:
  14801. name:
  14802. default: ""
  14803. description: |-
  14804. Name of the referent.
  14805. This field is effectively required, but due to backwards compatibility is
  14806. allowed to be empty. Instances of this type with an empty value here are
  14807. almost certainly wrong.
  14808. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  14809. type: string
  14810. type: object
  14811. x-kubernetes-map-type: atomic
  14812. volumeName:
  14813. description: |-
  14814. volumeName is the human-readable name of the StorageOS volume. Volume
  14815. names are only unique within a namespace.
  14816. type: string
  14817. volumeNamespace:
  14818. description: |-
  14819. volumeNamespace specifies the scope of the volume within StorageOS. If no
  14820. namespace is specified then the Pod's namespace will be used. This allows the
  14821. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  14822. Set VolumeName to any name to override the default behaviour.
  14823. Set to "default" if you are not using namespaces within StorageOS.
  14824. Namespaces that do not pre-exist within StorageOS will be created.
  14825. type: string
  14826. type: object
  14827. vsphereVolume:
  14828. description: |-
  14829. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  14830. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  14831. are redirected to the csi.vsphere.vmware.com CSI driver.
  14832. properties:
  14833. fsType:
  14834. description: |-
  14835. fsType is filesystem type to mount.
  14836. Must be a filesystem type supported by the host operating system.
  14837. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  14838. type: string
  14839. storagePolicyID:
  14840. description: storagePolicyID is the storage
  14841. Policy Based Management (SPBM) profile ID
  14842. associated with the StoragePolicyName.
  14843. type: string
  14844. storagePolicyName:
  14845. description: storagePolicyName is the storage
  14846. Policy Based Management (SPBM) profile name.
  14847. type: string
  14848. volumePath:
  14849. description: volumePath is the path that identifies
  14850. vSphere volume vmdk
  14851. type: string
  14852. required:
  14853. - volumePath
  14854. type: object
  14855. required:
  14856. - name
  14857. type: object
  14858. type: array
  14859. type: object
  14860. required:
  14861. - name
  14862. type: object
  14863. type: object
  14864. sharedVolumes:
  14865. description: sharedVolumes defines volumes that are shared across
  14866. all components of the stack.
  14867. items:
  14868. type: string
  14869. type: array
  14870. vectorStore:
  14871. description: vectorStore defines the configuration overrides for the
  14872. stack's vector store component.
  14873. properties:
  14874. enabled:
  14875. description: enabled indicates whether the component should be
  14876. deployed for the stack.
  14877. type: boolean
  14878. template:
  14879. description: template holds the configuration overrides for the
  14880. component.
  14881. properties:
  14882. metadata:
  14883. description: metadata is a standard object metadata.
  14884. type: object
  14885. name:
  14886. description: name selects a built-in preset.
  14887. type: string
  14888. spec:
  14889. description: spec holds the pod-level configuration for the
  14890. workload.
  14891. properties:
  14892. affinity:
  14893. description: affinity provides fine-grained node and pod
  14894. (anti-)affinity rules.
  14895. properties:
  14896. nodeAffinity:
  14897. description: Describes node affinity scheduling rules
  14898. for the pod.
  14899. properties:
  14900. preferredDuringSchedulingIgnoredDuringExecution:
  14901. description: |-
  14902. The scheduler will prefer to schedule pods to nodes that satisfy
  14903. the affinity expressions specified by this field, but it may choose
  14904. a node that violates one or more of the expressions. The node that is
  14905. most preferred is the one with the greatest sum of weights, i.e.
  14906. for each node that meets all of the scheduling requirements (resource
  14907. request, requiredDuringScheduling affinity expressions, etc.),
  14908. compute a sum by iterating through the elements of this field and adding
  14909. "weight" to the sum if the node matches the corresponding matchExpressions; the
  14910. node(s) with the highest sum are the most preferred.
  14911. items:
  14912. description: |-
  14913. An empty preferred scheduling term matches all objects with implicit weight 0
  14914. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  14915. properties:
  14916. preference:
  14917. description: A node selector term, associated
  14918. with the corresponding weight.
  14919. properties:
  14920. matchExpressions:
  14921. description: A list of node selector
  14922. requirements by node's labels.
  14923. items:
  14924. description: |-
  14925. A node selector requirement is a selector that contains values, a key, and an operator
  14926. that relates the key and values.
  14927. properties:
  14928. key:
  14929. description: The label key that
  14930. the selector applies to.
  14931. type: string
  14932. operator:
  14933. description: |-
  14934. Represents a key's relationship to a set of values.
  14935. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  14936. type: string
  14937. values:
  14938. description: |-
  14939. An array of string values. If the operator is In or NotIn,
  14940. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  14941. the values array must be empty. If the operator is Gt or Lt, the values
  14942. array must have a single element, which will be interpreted as an integer.
  14943. This array is replaced during a strategic merge patch.
  14944. items:
  14945. type: string
  14946. type: array
  14947. x-kubernetes-list-type: atomic
  14948. required:
  14949. - key
  14950. - operator
  14951. type: object
  14952. type: array
  14953. x-kubernetes-list-type: atomic
  14954. matchFields:
  14955. description: A list of node selector
  14956. requirements by node's fields.
  14957. items:
  14958. description: |-
  14959. A node selector requirement is a selector that contains values, a key, and an operator
  14960. that relates the key and values.
  14961. properties:
  14962. key:
  14963. description: The label key that
  14964. the selector applies to.
  14965. type: string
  14966. operator:
  14967. description: |-
  14968. Represents a key's relationship to a set of values.
  14969. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  14970. type: string
  14971. values:
  14972. description: |-
  14973. An array of string values. If the operator is In or NotIn,
  14974. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  14975. the values array must be empty. If the operator is Gt or Lt, the values
  14976. array must have a single element, which will be interpreted as an integer.
  14977. This array is replaced during a strategic merge patch.
  14978. items:
  14979. type: string
  14980. type: array
  14981. x-kubernetes-list-type: atomic
  14982. required:
  14983. - key
  14984. - operator
  14985. type: object
  14986. type: array
  14987. x-kubernetes-list-type: atomic
  14988. type: object
  14989. x-kubernetes-map-type: atomic
  14990. weight:
  14991. description: Weight associated with matching
  14992. the corresponding nodeSelectorTerm, in
  14993. the range 1-100.
  14994. format: int32
  14995. type: integer
  14996. required:
  14997. - preference
  14998. - weight
  14999. type: object
  15000. type: array
  15001. x-kubernetes-list-type: atomic
  15002. requiredDuringSchedulingIgnoredDuringExecution:
  15003. description: |-
  15004. If the affinity requirements specified by this field are not met at
  15005. scheduling time, the pod will not be scheduled onto the node.
  15006. If the affinity requirements specified by this field cease to be met
  15007. at some point during pod execution (e.g. due to an update), the system
  15008. may or may not try to eventually evict the pod from its node.
  15009. properties:
  15010. nodeSelectorTerms:
  15011. description: Required. A list of node selector
  15012. terms. The terms are ORed.
  15013. items:
  15014. description: |-
  15015. A null or empty node selector term matches no objects. The requirements of
  15016. them are ANDed.
  15017. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  15018. properties:
  15019. matchExpressions:
  15020. description: A list of node selector
  15021. requirements by node's labels.
  15022. items:
  15023. description: |-
  15024. A node selector requirement is a selector that contains values, a key, and an operator
  15025. that relates the key and values.
  15026. properties:
  15027. key:
  15028. description: The label key that
  15029. the selector applies to.
  15030. type: string
  15031. operator:
  15032. description: |-
  15033. Represents a key's relationship to a set of values.
  15034. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  15035. type: string
  15036. values:
  15037. description: |-
  15038. An array of string values. If the operator is In or NotIn,
  15039. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15040. the values array must be empty. If the operator is Gt or Lt, the values
  15041. array must have a single element, which will be interpreted as an integer.
  15042. This array is replaced during a strategic merge patch.
  15043. items:
  15044. type: string
  15045. type: array
  15046. x-kubernetes-list-type: atomic
  15047. required:
  15048. - key
  15049. - operator
  15050. type: object
  15051. type: array
  15052. x-kubernetes-list-type: atomic
  15053. matchFields:
  15054. description: A list of node selector
  15055. requirements by node's fields.
  15056. items:
  15057. description: |-
  15058. A node selector requirement is a selector that contains values, a key, and an operator
  15059. that relates the key and values.
  15060. properties:
  15061. key:
  15062. description: The label key that
  15063. the selector applies to.
  15064. type: string
  15065. operator:
  15066. description: |-
  15067. Represents a key's relationship to a set of values.
  15068. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  15069. type: string
  15070. values:
  15071. description: |-
  15072. An array of string values. If the operator is In or NotIn,
  15073. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15074. the values array must be empty. If the operator is Gt or Lt, the values
  15075. array must have a single element, which will be interpreted as an integer.
  15076. This array is replaced during a strategic merge patch.
  15077. items:
  15078. type: string
  15079. type: array
  15080. x-kubernetes-list-type: atomic
  15081. required:
  15082. - key
  15083. - operator
  15084. type: object
  15085. type: array
  15086. x-kubernetes-list-type: atomic
  15087. type: object
  15088. x-kubernetes-map-type: atomic
  15089. type: array
  15090. x-kubernetes-list-type: atomic
  15091. required:
  15092. - nodeSelectorTerms
  15093. type: object
  15094. x-kubernetes-map-type: atomic
  15095. type: object
  15096. podAffinity:
  15097. description: Describes pod affinity scheduling rules
  15098. (e.g. co-locate this pod in the same node, zone,
  15099. etc. as some other pod(s)).
  15100. properties:
  15101. preferredDuringSchedulingIgnoredDuringExecution:
  15102. description: |-
  15103. The scheduler will prefer to schedule pods to nodes that satisfy
  15104. the affinity expressions specified by this field, but it may choose
  15105. a node that violates one or more of the expressions. The node that is
  15106. most preferred is the one with the greatest sum of weights, i.e.
  15107. for each node that meets all of the scheduling requirements (resource
  15108. request, requiredDuringScheduling affinity expressions, etc.),
  15109. compute a sum by iterating through the elements of this field and adding
  15110. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  15111. node(s) with the highest sum are the most preferred.
  15112. items:
  15113. description: The weights of all of the matched
  15114. WeightedPodAffinityTerm fields are added per-node
  15115. to find the most preferred node(s)
  15116. properties:
  15117. podAffinityTerm:
  15118. description: Required. A pod affinity term,
  15119. associated with the corresponding weight.
  15120. properties:
  15121. labelSelector:
  15122. description: |-
  15123. A label query over a set of resources, in this case pods.
  15124. If it's null, this PodAffinityTerm matches with no Pods.
  15125. properties:
  15126. matchExpressions:
  15127. description: matchExpressions is
  15128. a list of label selector requirements.
  15129. The requirements are ANDed.
  15130. items:
  15131. description: |-
  15132. A label selector requirement is a selector that contains values, a key, and an operator that
  15133. relates the key and values.
  15134. properties:
  15135. key:
  15136. description: key is the label
  15137. key that the selector applies
  15138. to.
  15139. type: string
  15140. operator:
  15141. description: |-
  15142. operator represents a key's relationship to a set of values.
  15143. Valid operators are In, NotIn, Exists and DoesNotExist.
  15144. type: string
  15145. values:
  15146. description: |-
  15147. values is an array of string values. If the operator is In or NotIn,
  15148. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15149. the values array must be empty. This array is replaced during a strategic
  15150. merge patch.
  15151. items:
  15152. type: string
  15153. type: array
  15154. x-kubernetes-list-type: atomic
  15155. required:
  15156. - key
  15157. - operator
  15158. type: object
  15159. type: array
  15160. x-kubernetes-list-type: atomic
  15161. matchLabels:
  15162. additionalProperties:
  15163. type: string
  15164. description: |-
  15165. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15166. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15167. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15168. type: object
  15169. type: object
  15170. x-kubernetes-map-type: atomic
  15171. matchLabelKeys:
  15172. description: |-
  15173. MatchLabelKeys is a set of pod label keys to select which pods will
  15174. be taken into consideration. The keys are used to lookup values from the
  15175. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  15176. to select the group of existing pods which pods will be taken into consideration
  15177. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15178. pod labels will be ignored. The default value is empty.
  15179. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  15180. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  15181. items:
  15182. type: string
  15183. type: array
  15184. x-kubernetes-list-type: atomic
  15185. mismatchLabelKeys:
  15186. description: |-
  15187. MismatchLabelKeys is a set of pod label keys to select which pods will
  15188. be taken into consideration. The keys are used to lookup values from the
  15189. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  15190. to select the group of existing pods which pods will be taken into consideration
  15191. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15192. pod labels will be ignored. The default value is empty.
  15193. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  15194. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  15195. items:
  15196. type: string
  15197. type: array
  15198. x-kubernetes-list-type: atomic
  15199. namespaceSelector:
  15200. description: |-
  15201. A label query over the set of namespaces that the term applies to.
  15202. The term is applied to the union of the namespaces selected by this field
  15203. and the ones listed in the namespaces field.
  15204. null selector and null or empty namespaces list means "this pod's namespace".
  15205. An empty selector ({}) matches all namespaces.
  15206. properties:
  15207. matchExpressions:
  15208. description: matchExpressions is
  15209. a list of label selector requirements.
  15210. The requirements are ANDed.
  15211. items:
  15212. description: |-
  15213. A label selector requirement is a selector that contains values, a key, and an operator that
  15214. relates the key and values.
  15215. properties:
  15216. key:
  15217. description: key is the label
  15218. key that the selector applies
  15219. to.
  15220. type: string
  15221. operator:
  15222. description: |-
  15223. operator represents a key's relationship to a set of values.
  15224. Valid operators are In, NotIn, Exists and DoesNotExist.
  15225. type: string
  15226. values:
  15227. description: |-
  15228. values is an array of string values. If the operator is In or NotIn,
  15229. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15230. the values array must be empty. This array is replaced during a strategic
  15231. merge patch.
  15232. items:
  15233. type: string
  15234. type: array
  15235. x-kubernetes-list-type: atomic
  15236. required:
  15237. - key
  15238. - operator
  15239. type: object
  15240. type: array
  15241. x-kubernetes-list-type: atomic
  15242. matchLabels:
  15243. additionalProperties:
  15244. type: string
  15245. description: |-
  15246. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15247. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15248. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15249. type: object
  15250. type: object
  15251. x-kubernetes-map-type: atomic
  15252. namespaces:
  15253. description: |-
  15254. namespaces specifies a static list of namespace names that the term applies to.
  15255. The term is applied to the union of the namespaces listed in this field
  15256. and the ones selected by namespaceSelector.
  15257. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  15258. items:
  15259. type: string
  15260. type: array
  15261. x-kubernetes-list-type: atomic
  15262. topologyKey:
  15263. description: |-
  15264. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  15265. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  15266. whose value of the label with key topologyKey matches that of any node on which any of the
  15267. selected pods is running.
  15268. Empty topologyKey is not allowed.
  15269. type: string
  15270. required:
  15271. - topologyKey
  15272. type: object
  15273. weight:
  15274. description: |-
  15275. weight associated with matching the corresponding podAffinityTerm,
  15276. in the range 1-100.
  15277. format: int32
  15278. type: integer
  15279. required:
  15280. - podAffinityTerm
  15281. - weight
  15282. type: object
  15283. type: array
  15284. x-kubernetes-list-type: atomic
  15285. requiredDuringSchedulingIgnoredDuringExecution:
  15286. description: |-
  15287. If the affinity requirements specified by this field are not met at
  15288. scheduling time, the pod will not be scheduled onto the node.
  15289. If the affinity requirements specified by this field cease to be met
  15290. at some point during pod execution (e.g. due to a pod label update), the
  15291. system may or may not try to eventually evict the pod from its node.
  15292. When there are multiple elements, the lists of nodes corresponding to each
  15293. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  15294. items:
  15295. description: |-
  15296. Defines a set of pods (namely those matching the labelSelector
  15297. relative to the given namespace(s)) that this pod should be
  15298. co-located (affinity) or not co-located (anti-affinity) with,
  15299. where co-located is defined as running on a node whose value of
  15300. the label with key <topologyKey> matches that of any node on which
  15301. a pod of the set of pods is running
  15302. properties:
  15303. labelSelector:
  15304. description: |-
  15305. A label query over a set of resources, in this case pods.
  15306. If it's null, this PodAffinityTerm matches with no Pods.
  15307. properties:
  15308. matchExpressions:
  15309. description: matchExpressions is a list
  15310. of label selector requirements. The
  15311. requirements are ANDed.
  15312. items:
  15313. description: |-
  15314. A label selector requirement is a selector that contains values, a key, and an operator that
  15315. relates the key and values.
  15316. properties:
  15317. key:
  15318. description: key is the label
  15319. key that the selector applies
  15320. to.
  15321. type: string
  15322. operator:
  15323. description: |-
  15324. operator represents a key's relationship to a set of values.
  15325. Valid operators are In, NotIn, Exists and DoesNotExist.
  15326. type: string
  15327. values:
  15328. description: |-
  15329. values is an array of string values. If the operator is In or NotIn,
  15330. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15331. the values array must be empty. This array is replaced during a strategic
  15332. merge patch.
  15333. items:
  15334. type: string
  15335. type: array
  15336. x-kubernetes-list-type: atomic
  15337. required:
  15338. - key
  15339. - operator
  15340. type: object
  15341. type: array
  15342. x-kubernetes-list-type: atomic
  15343. matchLabels:
  15344. additionalProperties:
  15345. type: string
  15346. description: |-
  15347. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15348. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15349. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15350. type: object
  15351. type: object
  15352. x-kubernetes-map-type: atomic
  15353. matchLabelKeys:
  15354. description: |-
  15355. MatchLabelKeys is a set of pod label keys to select which pods will
  15356. be taken into consideration. The keys are used to lookup values from the
  15357. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  15358. to select the group of existing pods which pods will be taken into consideration
  15359. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15360. pod labels will be ignored. The default value is empty.
  15361. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  15362. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  15363. items:
  15364. type: string
  15365. type: array
  15366. x-kubernetes-list-type: atomic
  15367. mismatchLabelKeys:
  15368. description: |-
  15369. MismatchLabelKeys is a set of pod label keys to select which pods will
  15370. be taken into consideration. The keys are used to lookup values from the
  15371. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  15372. to select the group of existing pods which pods will be taken into consideration
  15373. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15374. pod labels will be ignored. The default value is empty.
  15375. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  15376. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  15377. items:
  15378. type: string
  15379. type: array
  15380. x-kubernetes-list-type: atomic
  15381. namespaceSelector:
  15382. description: |-
  15383. A label query over the set of namespaces that the term applies to.
  15384. The term is applied to the union of the namespaces selected by this field
  15385. and the ones listed in the namespaces field.
  15386. null selector and null or empty namespaces list means "this pod's namespace".
  15387. An empty selector ({}) matches all namespaces.
  15388. properties:
  15389. matchExpressions:
  15390. description: matchExpressions is a list
  15391. of label selector requirements. The
  15392. requirements are ANDed.
  15393. items:
  15394. description: |-
  15395. A label selector requirement is a selector that contains values, a key, and an operator that
  15396. relates the key and values.
  15397. properties:
  15398. key:
  15399. description: key is the label
  15400. key that the selector applies
  15401. to.
  15402. type: string
  15403. operator:
  15404. description: |-
  15405. operator represents a key's relationship to a set of values.
  15406. Valid operators are In, NotIn, Exists and DoesNotExist.
  15407. type: string
  15408. values:
  15409. description: |-
  15410. values is an array of string values. If the operator is In or NotIn,
  15411. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15412. the values array must be empty. This array is replaced during a strategic
  15413. merge patch.
  15414. items:
  15415. type: string
  15416. type: array
  15417. x-kubernetes-list-type: atomic
  15418. required:
  15419. - key
  15420. - operator
  15421. type: object
  15422. type: array
  15423. x-kubernetes-list-type: atomic
  15424. matchLabels:
  15425. additionalProperties:
  15426. type: string
  15427. description: |-
  15428. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15429. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15430. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15431. type: object
  15432. type: object
  15433. x-kubernetes-map-type: atomic
  15434. namespaces:
  15435. description: |-
  15436. namespaces specifies a static list of namespace names that the term applies to.
  15437. The term is applied to the union of the namespaces listed in this field
  15438. and the ones selected by namespaceSelector.
  15439. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  15440. items:
  15441. type: string
  15442. type: array
  15443. x-kubernetes-list-type: atomic
  15444. topologyKey:
  15445. description: |-
  15446. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  15447. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  15448. whose value of the label with key topologyKey matches that of any node on which any of the
  15449. selected pods is running.
  15450. Empty topologyKey is not allowed.
  15451. type: string
  15452. required:
  15453. - topologyKey
  15454. type: object
  15455. type: array
  15456. x-kubernetes-list-type: atomic
  15457. type: object
  15458. podAntiAffinity:
  15459. description: Describes pod anti-affinity scheduling
  15460. rules (e.g. avoid putting this pod in the same node,
  15461. zone, etc. as some other pod(s)).
  15462. properties:
  15463. preferredDuringSchedulingIgnoredDuringExecution:
  15464. description: |-
  15465. The scheduler will prefer to schedule pods to nodes that satisfy
  15466. the anti-affinity expressions specified by this field, but it may choose
  15467. a node that violates one or more of the expressions. The node that is
  15468. most preferred is the one with the greatest sum of weights, i.e.
  15469. for each node that meets all of the scheduling requirements (resource
  15470. request, requiredDuringScheduling anti-affinity expressions, etc.),
  15471. compute a sum by iterating through the elements of this field and subtracting
  15472. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  15473. node(s) with the highest sum are the most preferred.
  15474. items:
  15475. description: The weights of all of the matched
  15476. WeightedPodAffinityTerm fields are added per-node
  15477. to find the most preferred node(s)
  15478. properties:
  15479. podAffinityTerm:
  15480. description: Required. A pod affinity term,
  15481. associated with the corresponding weight.
  15482. properties:
  15483. labelSelector:
  15484. description: |-
  15485. A label query over a set of resources, in this case pods.
  15486. If it's null, this PodAffinityTerm matches with no Pods.
  15487. properties:
  15488. matchExpressions:
  15489. description: matchExpressions is
  15490. a list of label selector requirements.
  15491. The requirements are ANDed.
  15492. items:
  15493. description: |-
  15494. A label selector requirement is a selector that contains values, a key, and an operator that
  15495. relates the key and values.
  15496. properties:
  15497. key:
  15498. description: key is the label
  15499. key that the selector applies
  15500. to.
  15501. type: string
  15502. operator:
  15503. description: |-
  15504. operator represents a key's relationship to a set of values.
  15505. Valid operators are In, NotIn, Exists and DoesNotExist.
  15506. type: string
  15507. values:
  15508. description: |-
  15509. values is an array of string values. If the operator is In or NotIn,
  15510. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15511. the values array must be empty. This array is replaced during a strategic
  15512. merge patch.
  15513. items:
  15514. type: string
  15515. type: array
  15516. x-kubernetes-list-type: atomic
  15517. required:
  15518. - key
  15519. - operator
  15520. type: object
  15521. type: array
  15522. x-kubernetes-list-type: atomic
  15523. matchLabels:
  15524. additionalProperties:
  15525. type: string
  15526. description: |-
  15527. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15528. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15529. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15530. type: object
  15531. type: object
  15532. x-kubernetes-map-type: atomic
  15533. matchLabelKeys:
  15534. description: |-
  15535. MatchLabelKeys is a set of pod label keys to select which pods will
  15536. be taken into consideration. The keys are used to lookup values from the
  15537. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  15538. to select the group of existing pods which pods will be taken into consideration
  15539. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15540. pod labels will be ignored. The default value is empty.
  15541. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  15542. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  15543. items:
  15544. type: string
  15545. type: array
  15546. x-kubernetes-list-type: atomic
  15547. mismatchLabelKeys:
  15548. description: |-
  15549. MismatchLabelKeys is a set of pod label keys to select which pods will
  15550. be taken into consideration. The keys are used to lookup values from the
  15551. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  15552. to select the group of existing pods which pods will be taken into consideration
  15553. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15554. pod labels will be ignored. The default value is empty.
  15555. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  15556. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  15557. items:
  15558. type: string
  15559. type: array
  15560. x-kubernetes-list-type: atomic
  15561. namespaceSelector:
  15562. description: |-
  15563. A label query over the set of namespaces that the term applies to.
  15564. The term is applied to the union of the namespaces selected by this field
  15565. and the ones listed in the namespaces field.
  15566. null selector and null or empty namespaces list means "this pod's namespace".
  15567. An empty selector ({}) matches all namespaces.
  15568. properties:
  15569. matchExpressions:
  15570. description: matchExpressions is
  15571. a list of label selector requirements.
  15572. The requirements are ANDed.
  15573. items:
  15574. description: |-
  15575. A label selector requirement is a selector that contains values, a key, and an operator that
  15576. relates the key and values.
  15577. properties:
  15578. key:
  15579. description: key is the label
  15580. key that the selector applies
  15581. to.
  15582. type: string
  15583. operator:
  15584. description: |-
  15585. operator represents a key's relationship to a set of values.
  15586. Valid operators are In, NotIn, Exists and DoesNotExist.
  15587. type: string
  15588. values:
  15589. description: |-
  15590. values is an array of string values. If the operator is In or NotIn,
  15591. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15592. the values array must be empty. This array is replaced during a strategic
  15593. merge patch.
  15594. items:
  15595. type: string
  15596. type: array
  15597. x-kubernetes-list-type: atomic
  15598. required:
  15599. - key
  15600. - operator
  15601. type: object
  15602. type: array
  15603. x-kubernetes-list-type: atomic
  15604. matchLabels:
  15605. additionalProperties:
  15606. type: string
  15607. description: |-
  15608. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15609. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15610. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15611. type: object
  15612. type: object
  15613. x-kubernetes-map-type: atomic
  15614. namespaces:
  15615. description: |-
  15616. namespaces specifies a static list of namespace names that the term applies to.
  15617. The term is applied to the union of the namespaces listed in this field
  15618. and the ones selected by namespaceSelector.
  15619. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  15620. items:
  15621. type: string
  15622. type: array
  15623. x-kubernetes-list-type: atomic
  15624. topologyKey:
  15625. description: |-
  15626. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  15627. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  15628. whose value of the label with key topologyKey matches that of any node on which any of the
  15629. selected pods is running.
  15630. Empty topologyKey is not allowed.
  15631. type: string
  15632. required:
  15633. - topologyKey
  15634. type: object
  15635. weight:
  15636. description: |-
  15637. weight associated with matching the corresponding podAffinityTerm,
  15638. in the range 1-100.
  15639. format: int32
  15640. type: integer
  15641. required:
  15642. - podAffinityTerm
  15643. - weight
  15644. type: object
  15645. type: array
  15646. x-kubernetes-list-type: atomic
  15647. requiredDuringSchedulingIgnoredDuringExecution:
  15648. description: |-
  15649. If the anti-affinity requirements specified by this field are not met at
  15650. scheduling time, the pod will not be scheduled onto the node.
  15651. If the anti-affinity requirements specified by this field cease to be met
  15652. at some point during pod execution (e.g. due to a pod label update), the
  15653. system may or may not try to eventually evict the pod from its node.
  15654. When there are multiple elements, the lists of nodes corresponding to each
  15655. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  15656. items:
  15657. description: |-
  15658. Defines a set of pods (namely those matching the labelSelector
  15659. relative to the given namespace(s)) that this pod should be
  15660. co-located (affinity) or not co-located (anti-affinity) with,
  15661. where co-located is defined as running on a node whose value of
  15662. the label with key <topologyKey> matches that of any node on which
  15663. a pod of the set of pods is running
  15664. properties:
  15665. labelSelector:
  15666. description: |-
  15667. A label query over a set of resources, in this case pods.
  15668. If it's null, this PodAffinityTerm matches with no Pods.
  15669. properties:
  15670. matchExpressions:
  15671. description: matchExpressions is a list
  15672. of label selector requirements. The
  15673. requirements are ANDed.
  15674. items:
  15675. description: |-
  15676. A label selector requirement is a selector that contains values, a key, and an operator that
  15677. relates the key and values.
  15678. properties:
  15679. key:
  15680. description: key is the label
  15681. key that the selector applies
  15682. to.
  15683. type: string
  15684. operator:
  15685. description: |-
  15686. operator represents a key's relationship to a set of values.
  15687. Valid operators are In, NotIn, Exists and DoesNotExist.
  15688. type: string
  15689. values:
  15690. description: |-
  15691. values is an array of string values. If the operator is In or NotIn,
  15692. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15693. the values array must be empty. This array is replaced during a strategic
  15694. merge patch.
  15695. items:
  15696. type: string
  15697. type: array
  15698. x-kubernetes-list-type: atomic
  15699. required:
  15700. - key
  15701. - operator
  15702. type: object
  15703. type: array
  15704. x-kubernetes-list-type: atomic
  15705. matchLabels:
  15706. additionalProperties:
  15707. type: string
  15708. description: |-
  15709. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15710. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15711. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15712. type: object
  15713. type: object
  15714. x-kubernetes-map-type: atomic
  15715. matchLabelKeys:
  15716. description: |-
  15717. MatchLabelKeys is a set of pod label keys to select which pods will
  15718. be taken into consideration. The keys are used to lookup values from the
  15719. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  15720. to select the group of existing pods which pods will be taken into consideration
  15721. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15722. pod labels will be ignored. The default value is empty.
  15723. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  15724. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  15725. items:
  15726. type: string
  15727. type: array
  15728. x-kubernetes-list-type: atomic
  15729. mismatchLabelKeys:
  15730. description: |-
  15731. MismatchLabelKeys is a set of pod label keys to select which pods will
  15732. be taken into consideration. The keys are used to lookup values from the
  15733. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  15734. to select the group of existing pods which pods will be taken into consideration
  15735. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  15736. pod labels will be ignored. The default value is empty.
  15737. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  15738. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  15739. items:
  15740. type: string
  15741. type: array
  15742. x-kubernetes-list-type: atomic
  15743. namespaceSelector:
  15744. description: |-
  15745. A label query over the set of namespaces that the term applies to.
  15746. The term is applied to the union of the namespaces selected by this field
  15747. and the ones listed in the namespaces field.
  15748. null selector and null or empty namespaces list means "this pod's namespace".
  15749. An empty selector ({}) matches all namespaces.
  15750. properties:
  15751. matchExpressions:
  15752. description: matchExpressions is a list
  15753. of label selector requirements. The
  15754. requirements are ANDed.
  15755. items:
  15756. description: |-
  15757. A label selector requirement is a selector that contains values, a key, and an operator that
  15758. relates the key and values.
  15759. properties:
  15760. key:
  15761. description: key is the label
  15762. key that the selector applies
  15763. to.
  15764. type: string
  15765. operator:
  15766. description: |-
  15767. operator represents a key's relationship to a set of values.
  15768. Valid operators are In, NotIn, Exists and DoesNotExist.
  15769. type: string
  15770. values:
  15771. description: |-
  15772. values is an array of string values. If the operator is In or NotIn,
  15773. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15774. the values array must be empty. This array is replaced during a strategic
  15775. merge patch.
  15776. items:
  15777. type: string
  15778. type: array
  15779. x-kubernetes-list-type: atomic
  15780. required:
  15781. - key
  15782. - operator
  15783. type: object
  15784. type: array
  15785. x-kubernetes-list-type: atomic
  15786. matchLabels:
  15787. additionalProperties:
  15788. type: string
  15789. description: |-
  15790. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15791. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15792. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15793. type: object
  15794. type: object
  15795. x-kubernetes-map-type: atomic
  15796. namespaces:
  15797. description: |-
  15798. namespaces specifies a static list of namespace names that the term applies to.
  15799. The term is applied to the union of the namespaces listed in this field
  15800. and the ones selected by namespaceSelector.
  15801. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  15802. items:
  15803. type: string
  15804. type: array
  15805. x-kubernetes-list-type: atomic
  15806. topologyKey:
  15807. description: |-
  15808. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  15809. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  15810. whose value of the label with key topologyKey matches that of any node on which any of the
  15811. selected pods is running.
  15812. Empty topologyKey is not allowed.
  15813. type: string
  15814. required:
  15815. - topologyKey
  15816. type: object
  15817. type: array
  15818. x-kubernetes-list-type: atomic
  15819. type: object
  15820. type: object
  15821. nodeSelector:
  15822. additionalProperties:
  15823. type: string
  15824. description: nodeSelector pins pods to nodes that match
  15825. all the specified labels.
  15826. type: object
  15827. resources:
  15828. description: resources sets per-container resource requests
  15829. and limits.
  15830. properties:
  15831. claims:
  15832. description: |-
  15833. Claims lists the names of resources, defined in spec.resourceClaims,
  15834. that are used by this container.
  15835. This field depends on the
  15836. DynamicResourceAllocation feature gate.
  15837. This field is immutable. It can only be set for containers.
  15838. items:
  15839. description: ResourceClaim references one entry
  15840. in PodSpec.ResourceClaims.
  15841. properties:
  15842. name:
  15843. description: |-
  15844. Name must match the name of one entry in pod.spec.resourceClaims of
  15845. the Pod where this field is used. It makes that resource available
  15846. inside a container.
  15847. type: string
  15848. request:
  15849. description: |-
  15850. Request is the name chosen for a request in the referenced claim.
  15851. If empty, everything from the claim is made available, otherwise
  15852. only the result of this request.
  15853. type: string
  15854. required:
  15855. - name
  15856. type: object
  15857. type: array
  15858. x-kubernetes-list-map-keys:
  15859. - name
  15860. x-kubernetes-list-type: map
  15861. limits:
  15862. additionalProperties:
  15863. anyOf:
  15864. - type: integer
  15865. - type: string
  15866. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  15867. x-kubernetes-int-or-string: true
  15868. description: |-
  15869. Limits describes the maximum amount of compute resources allowed.
  15870. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  15871. type: object
  15872. requests:
  15873. additionalProperties:
  15874. anyOf:
  15875. - type: integer
  15876. - type: string
  15877. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  15878. x-kubernetes-int-or-string: true
  15879. description: |-
  15880. Requests describes the minimum amount of compute resources required.
  15881. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  15882. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  15883. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  15884. type: object
  15885. type: object
  15886. runtime:
  15887. description: runtime describes the container runtime to
  15888. use for the workload.
  15889. properties:
  15890. args:
  15891. description: args specifies or overrides the preset's
  15892. container command.
  15893. items:
  15894. type: string
  15895. type: array
  15896. command:
  15897. description: command specifies or overrides the preset's
  15898. container entrypoint.
  15899. items:
  15900. type: string
  15901. type: array
  15902. conditionalArgs:
  15903. description: conditionalArgs are appended to the preset
  15904. command conditionally.
  15905. items:
  15906. properties:
  15907. args:
  15908. description: args are appended to the preset
  15909. args.
  15910. items:
  15911. type: string
  15912. type: array
  15913. when:
  15914. description: when the value is not empty after
  15915. variable substitution, the args are appended
  15916. to the preset args.
  15917. type: string
  15918. required:
  15919. - args
  15920. - when
  15921. type: object
  15922. type: array
  15923. env:
  15924. description: env holds environment variables injected
  15925. into the container.
  15926. items:
  15927. description: EnvVar represents an environment variable
  15928. present in a Container.
  15929. properties:
  15930. name:
  15931. description: |-
  15932. Name of the environment variable.
  15933. May consist of any printable ASCII characters except '='.
  15934. type: string
  15935. value:
  15936. description: |-
  15937. Variable references $(VAR_NAME) are expanded
  15938. using the previously defined environment variables in the container and
  15939. any service environment variables. If a variable cannot be resolved,
  15940. the reference in the input string will be unchanged. Double $$ are reduced
  15941. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  15942. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  15943. Escaped references will never be expanded, regardless of whether the variable
  15944. exists or not.
  15945. Defaults to "".
  15946. type: string
  15947. valueFrom:
  15948. description: Source for the environment variable's
  15949. value. Cannot be used if value is not empty.
  15950. properties:
  15951. configMapKeyRef:
  15952. description: Selects a key of a ConfigMap.
  15953. properties:
  15954. key:
  15955. description: The key to select.
  15956. type: string
  15957. name:
  15958. default: ""
  15959. description: |-
  15960. Name of the referent.
  15961. This field is effectively required, but due to backwards compatibility is
  15962. allowed to be empty. Instances of this type with an empty value here are
  15963. almost certainly wrong.
  15964. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  15965. type: string
  15966. optional:
  15967. description: Specify whether the ConfigMap
  15968. or its key must be defined
  15969. type: boolean
  15970. required:
  15971. - key
  15972. type: object
  15973. x-kubernetes-map-type: atomic
  15974. fieldRef:
  15975. description: |-
  15976. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  15977. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  15978. properties:
  15979. apiVersion:
  15980. description: Version of the schema the
  15981. FieldPath is written in terms of,
  15982. defaults to "v1".
  15983. type: string
  15984. fieldPath:
  15985. description: Path of the field to select
  15986. in the specified API version.
  15987. type: string
  15988. required:
  15989. - fieldPath
  15990. type: object
  15991. x-kubernetes-map-type: atomic
  15992. fileKeyRef:
  15993. description: |-
  15994. FileKeyRef selects a key of the env file.
  15995. Requires the EnvFiles feature gate to be enabled.
  15996. properties:
  15997. key:
  15998. description: |-
  15999. The key within the env file. An invalid key will prevent the pod from starting.
  16000. The keys defined within a source may consist of any printable ASCII characters except '='.
  16001. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  16002. type: string
  16003. optional:
  16004. default: false
  16005. description: |-
  16006. Specify whether the file or its key must be defined. If the file or key
  16007. does not exist, then the env var is not published.
  16008. If optional is set to true and the specified key does not exist,
  16009. the environment variable will not be set in the Pod's containers.
  16010. If optional is set to false and the specified key does not exist,
  16011. an error will be returned during Pod creation.
  16012. type: boolean
  16013. path:
  16014. description: |-
  16015. The path within the volume from which to select the file.
  16016. Must be relative and may not contain the '..' path or start with '..'.
  16017. type: string
  16018. volumeName:
  16019. description: The name of the volume
  16020. mount containing the env file.
  16021. type: string
  16022. required:
  16023. - key
  16024. - path
  16025. - volumeName
  16026. type: object
  16027. x-kubernetes-map-type: atomic
  16028. resourceFieldRef:
  16029. description: |-
  16030. Selects a resource of the container: only resources limits and requests
  16031. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  16032. properties:
  16033. containerName:
  16034. description: 'Container name: required
  16035. for volumes, optional for env vars'
  16036. type: string
  16037. divisor:
  16038. anyOf:
  16039. - type: integer
  16040. - type: string
  16041. description: Specifies the output format
  16042. of the exposed resources, defaults
  16043. to "1"
  16044. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16045. x-kubernetes-int-or-string: true
  16046. resource:
  16047. description: 'Required: resource to
  16048. select'
  16049. type: string
  16050. required:
  16051. - resource
  16052. type: object
  16053. x-kubernetes-map-type: atomic
  16054. secretKeyRef:
  16055. description: Selects a key of a secret in
  16056. the pod's namespace
  16057. properties:
  16058. key:
  16059. description: The key of the secret to
  16060. select from. Must be a valid secret
  16061. key.
  16062. type: string
  16063. name:
  16064. default: ""
  16065. description: |-
  16066. Name of the referent.
  16067. This field is effectively required, but due to backwards compatibility is
  16068. allowed to be empty. Instances of this type with an empty value here are
  16069. almost certainly wrong.
  16070. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16071. type: string
  16072. optional:
  16073. description: Specify whether the Secret
  16074. or its key must be defined
  16075. type: boolean
  16076. required:
  16077. - key
  16078. type: object
  16079. x-kubernetes-map-type: atomic
  16080. type: object
  16081. required:
  16082. - name
  16083. type: object
  16084. type: array
  16085. envFrom:
  16086. description: envFrom references ConfigMaps or Secrets
  16087. whose key-value pairs are injected as environment
  16088. variables.
  16089. items:
  16090. description: EnvFromSource represents the source
  16091. of a set of ConfigMaps or Secrets
  16092. properties:
  16093. configMapRef:
  16094. description: The ConfigMap to select from
  16095. properties:
  16096. name:
  16097. default: ""
  16098. description: |-
  16099. Name of the referent.
  16100. This field is effectively required, but due to backwards compatibility is
  16101. allowed to be empty. Instances of this type with an empty value here are
  16102. almost certainly wrong.
  16103. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16104. type: string
  16105. optional:
  16106. description: Specify whether the ConfigMap
  16107. must be defined
  16108. type: boolean
  16109. type: object
  16110. x-kubernetes-map-type: atomic
  16111. prefix:
  16112. description: |-
  16113. Optional text to prepend to the name of each environment variable.
  16114. May consist of any printable ASCII characters except '='.
  16115. type: string
  16116. secretRef:
  16117. description: The Secret to select from
  16118. properties:
  16119. name:
  16120. default: ""
  16121. description: |-
  16122. Name of the referent.
  16123. This field is effectively required, but due to backwards compatibility is
  16124. allowed to be empty. Instances of this type with an empty value here are
  16125. almost certainly wrong.
  16126. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16127. type: string
  16128. optional:
  16129. description: Specify whether the Secret
  16130. must be defined
  16131. type: boolean
  16132. type: object
  16133. x-kubernetes-map-type: atomic
  16134. type: object
  16135. type: array
  16136. extraArgs:
  16137. description: extraArgs are appended to the preset
  16138. command.
  16139. items:
  16140. type: string
  16141. type: array
  16142. image:
  16143. description: |-
  16144. image specifies or overrides the preset's container image, e.g. to pin a specific tag
  16145. or pull from a private registry mirror.
  16146. type: string
  16147. name:
  16148. description: name selects a built-in runtime preset.
  16149. type: string
  16150. port:
  16151. description: port specifies or overrides the container
  16152. port the runtime listens on.
  16153. format: int32
  16154. type: integer
  16155. volumeMounts:
  16156. description: volumeMounts defines where pod volumes
  16157. are mounted inside the container.
  16158. items:
  16159. description: VolumeMount describes a mounting of
  16160. a Volume within a container.
  16161. properties:
  16162. mountPath:
  16163. description: |-
  16164. Path within the container at which the volume should be mounted. Must
  16165. not contain ':'.
  16166. type: string
  16167. mountPropagation:
  16168. description: |-
  16169. mountPropagation determines how mounts are propagated from the host
  16170. to container and the other way around.
  16171. When not set, MountPropagationNone is used.
  16172. This field is beta in 1.10.
  16173. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  16174. (which defaults to None).
  16175. type: string
  16176. name:
  16177. description: This must match the Name of a Volume.
  16178. type: string
  16179. readOnly:
  16180. description: |-
  16181. Mounted read-only if true, read-write otherwise (false or unspecified).
  16182. Defaults to false.
  16183. type: boolean
  16184. recursiveReadOnly:
  16185. description: |-
  16186. RecursiveReadOnly specifies whether read-only mounts should be handled
  16187. recursively.
  16188. If ReadOnly is false, this field has no meaning and must be unspecified.
  16189. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  16190. recursively read-only. If this field is set to IfPossible, the mount is made
  16191. recursively read-only, if it is supported by the container runtime. If this
  16192. field is set to Enabled, the mount is made recursively read-only if it is
  16193. supported by the container runtime, otherwise the pod will not be started and
  16194. an error will be generated to indicate the reason.
  16195. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  16196. None (or be unspecified, which defaults to None).
  16197. If this field is not specified, it is treated as an equivalent of Disabled.
  16198. type: string
  16199. subPath:
  16200. description: |-
  16201. Path within the volume from which the container's volume should be mounted.
  16202. Defaults to "" (volume's root).
  16203. type: string
  16204. subPathExpr:
  16205. description: |-
  16206. Expanded path within the volume from which the container's volume should be mounted.
  16207. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  16208. Defaults to "" (volume's root).
  16209. SubPathExpr and SubPath are mutually exclusive.
  16210. type: string
  16211. required:
  16212. - mountPath
  16213. - name
  16214. type: object
  16215. type: array
  16216. type: object
  16217. securityContext:
  16218. description: |-
  16219. securityContext sets pod-level security attributes such as runAsUser,
  16220. runAsGroup, fsGroup, and sysctls.
  16221. properties:
  16222. appArmorProfile:
  16223. description: |-
  16224. appArmorProfile is the AppArmor options to use by the containers in this pod.
  16225. Note that this field cannot be set when spec.os.name is windows.
  16226. properties:
  16227. localhostProfile:
  16228. description: |-
  16229. localhostProfile indicates a profile loaded on the node that should be used.
  16230. The profile must be preconfigured on the node to work.
  16231. Must match the loaded name of the profile.
  16232. Must be set if and only if type is "Localhost".
  16233. type: string
  16234. type:
  16235. description: |-
  16236. type indicates which kind of AppArmor profile will be applied.
  16237. Valid options are:
  16238. Localhost - a profile pre-loaded on the node.
  16239. RuntimeDefault - the container runtime's default profile.
  16240. Unconfined - no AppArmor enforcement.
  16241. type: string
  16242. required:
  16243. - type
  16244. type: object
  16245. fsGroup:
  16246. description: |-
  16247. A special supplemental group that applies to all containers in a pod.
  16248. Some volume types allow the Kubelet to change the ownership of that volume
  16249. to be owned by the pod:
  16250. 1. The owning GID will be the FSGroup
  16251. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  16252. 3. The permission bits are OR'd with rw-rw----
  16253. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  16254. Note that this field cannot be set when spec.os.name is windows.
  16255. format: int64
  16256. type: integer
  16257. fsGroupChangePolicy:
  16258. description: |-
  16259. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  16260. before being exposed inside Pod. This field will only apply to
  16261. volume types which support fsGroup based ownership(and permissions).
  16262. It will have no effect on ephemeral volume types such as: secret, configmaps
  16263. and emptydir.
  16264. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  16265. Note that this field cannot be set when spec.os.name is windows.
  16266. type: string
  16267. runAsGroup:
  16268. description: |-
  16269. The GID to run the entrypoint of the container process.
  16270. Uses runtime default if unset.
  16271. May also be set in SecurityContext. If set in both SecurityContext and
  16272. PodSecurityContext, the value specified in SecurityContext takes precedence
  16273. for that container.
  16274. Note that this field cannot be set when spec.os.name is windows.
  16275. format: int64
  16276. type: integer
  16277. runAsNonRoot:
  16278. description: |-
  16279. Indicates that the container must run as a non-root user.
  16280. If true, the Kubelet will validate the image at runtime to ensure that it
  16281. does not run as UID 0 (root) and fail to start the container if it does.
  16282. If unset or false, no such validation will be performed.
  16283. May also be set in SecurityContext. If set in both SecurityContext and
  16284. PodSecurityContext, the value specified in SecurityContext takes precedence.
  16285. type: boolean
  16286. runAsUser:
  16287. description: |-
  16288. The UID to run the entrypoint of the container process.
  16289. Defaults to user specified in image metadata if unspecified.
  16290. May also be set in SecurityContext. If set in both SecurityContext and
  16291. PodSecurityContext, the value specified in SecurityContext takes precedence
  16292. for that container.
  16293. Note that this field cannot be set when spec.os.name is windows.
  16294. format: int64
  16295. type: integer
  16296. seLinuxChangePolicy:
  16297. description: |-
  16298. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  16299. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  16300. Valid values are "MountOption" and "Recursive".
  16301. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  16302. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  16303. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  16304. This requires all Pods that share the same volume to use the same SELinux label.
  16305. It is not possible to share the same volume among privileged and unprivileged Pods.
  16306. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  16307. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  16308. CSIDriver instance. Other volumes are always re-labelled recursively.
  16309. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  16310. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  16311. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  16312. and "Recursive" for all other volumes.
  16313. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  16314. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  16315. Note that this field cannot be set when spec.os.name is windows.
  16316. type: string
  16317. seLinuxOptions:
  16318. description: |-
  16319. The SELinux context to be applied to all containers.
  16320. If unspecified, the container runtime will allocate a random SELinux context for each
  16321. container. May also be set in SecurityContext. If set in
  16322. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  16323. takes precedence for that container.
  16324. Note that this field cannot be set when spec.os.name is windows.
  16325. properties:
  16326. level:
  16327. description: Level is SELinux level label that
  16328. applies to the container.
  16329. type: string
  16330. role:
  16331. description: Role is a SELinux role label that
  16332. applies to the container.
  16333. type: string
  16334. type:
  16335. description: Type is a SELinux type label that
  16336. applies to the container.
  16337. type: string
  16338. user:
  16339. description: User is a SELinux user label that
  16340. applies to the container.
  16341. type: string
  16342. type: object
  16343. seccompProfile:
  16344. description: |-
  16345. The seccomp options to use by the containers in this pod.
  16346. Note that this field cannot be set when spec.os.name is windows.
  16347. properties:
  16348. localhostProfile:
  16349. description: |-
  16350. localhostProfile indicates a profile defined in a file on the node should be used.
  16351. The profile must be preconfigured on the node to work.
  16352. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  16353. Must be set if type is "Localhost". Must NOT be set for any other type.
  16354. type: string
  16355. type:
  16356. description: |-
  16357. type indicates which kind of seccomp profile will be applied.
  16358. Valid options are:
  16359. Localhost - a profile defined in a file on the node should be used.
  16360. RuntimeDefault - the container runtime default profile should be used.
  16361. Unconfined - no profile should be applied.
  16362. type: string
  16363. required:
  16364. - type
  16365. type: object
  16366. supplementalGroups:
  16367. description: |-
  16368. A list of groups applied to the first process run in each container, in
  16369. addition to the container's primary GID and fsGroup (if specified). If
  16370. the SupplementalGroupsPolicy feature is enabled, the
  16371. supplementalGroupsPolicy field determines whether these are in addition
  16372. to or instead of any group memberships defined in the container image.
  16373. If unspecified, no additional groups are added, though group memberships
  16374. defined in the container image may still be used, depending on the
  16375. supplementalGroupsPolicy field.
  16376. Note that this field cannot be set when spec.os.name is windows.
  16377. items:
  16378. format: int64
  16379. type: integer
  16380. type: array
  16381. x-kubernetes-list-type: atomic
  16382. supplementalGroupsPolicy:
  16383. description: |-
  16384. Defines how supplemental groups of the first container processes are calculated.
  16385. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  16386. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  16387. and the container runtime must implement support for this feature.
  16388. Note that this field cannot be set when spec.os.name is windows.
  16389. type: string
  16390. sysctls:
  16391. description: |-
  16392. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  16393. sysctls (by the container runtime) might fail to launch.
  16394. Note that this field cannot be set when spec.os.name is windows.
  16395. items:
  16396. description: Sysctl defines a kernel parameter to
  16397. be set
  16398. properties:
  16399. name:
  16400. description: Name of a property to set
  16401. type: string
  16402. value:
  16403. description: Value of a property to set
  16404. type: string
  16405. required:
  16406. - name
  16407. - value
  16408. type: object
  16409. type: array
  16410. x-kubernetes-list-type: atomic
  16411. windowsOptions:
  16412. description: |-
  16413. The Windows specific settings applied to all containers.
  16414. If unspecified, the options within a container's SecurityContext will be used.
  16415. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  16416. Note that this field cannot be set when spec.os.name is linux.
  16417. properties:
  16418. gmsaCredentialSpec:
  16419. description: |-
  16420. GMSACredentialSpec is where the GMSA admission webhook
  16421. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  16422. GMSA credential spec named by the GMSACredentialSpecName field.
  16423. type: string
  16424. gmsaCredentialSpecName:
  16425. description: GMSACredentialSpecName is the name
  16426. of the GMSA credential spec to use.
  16427. type: string
  16428. hostProcess:
  16429. description: |-
  16430. HostProcess determines if a container should be run as a 'Host Process' container.
  16431. All of a Pod's containers must have the same effective HostProcess value
  16432. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  16433. In addition, if HostProcess is true then HostNetwork must also be set to true.
  16434. type: boolean
  16435. runAsUserName:
  16436. description: |-
  16437. The UserName in Windows to run the entrypoint of the container process.
  16438. Defaults to the user specified in image metadata if unspecified.
  16439. May also be set in PodSecurityContext. If set in both SecurityContext and
  16440. PodSecurityContext, the value specified in SecurityContext takes precedence.
  16441. type: string
  16442. type: object
  16443. type: object
  16444. tolerations:
  16445. description: tolerations allow pods to be scheduled onto
  16446. nodes with matching taints.
  16447. items:
  16448. description: |-
  16449. The pod this Toleration is attached to tolerates any taint that matches
  16450. the triple <key,value,effect> using the matching operator <operator>.
  16451. properties:
  16452. effect:
  16453. description: |-
  16454. Effect indicates the taint effect to match. Empty means match all taint effects.
  16455. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  16456. type: string
  16457. key:
  16458. description: |-
  16459. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  16460. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  16461. type: string
  16462. operator:
  16463. description: |-
  16464. Operator represents a key's relationship to the value.
  16465. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
  16466. Exists is equivalent to wildcard for value, so that a pod can
  16467. tolerate all taints of a particular category.
  16468. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
  16469. type: string
  16470. tolerationSeconds:
  16471. description: |-
  16472. TolerationSeconds represents the period of time the toleration (which must be
  16473. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  16474. it is not set, which means tolerate the taint forever (do not evict). Zero and
  16475. negative values will be treated as 0 (evict immediately) by the system.
  16476. format: int64
  16477. type: integer
  16478. value:
  16479. description: |-
  16480. Value is the taint value the toleration matches to.
  16481. If the operator is Exists, the value should be empty, otherwise just a regular string.
  16482. type: string
  16483. type: object
  16484. type: array
  16485. topologySpreadConstraints:
  16486. description: |-
  16487. topologySpreadConstraints controls how pods are spread across failure
  16488. domains (zones, nodes). Prefer this over pod anti-affinity for HA spread.
  16489. items:
  16490. description: TopologySpreadConstraint specifies how
  16491. to spread matching pods among the given topology.
  16492. properties:
  16493. labelSelector:
  16494. description: |-
  16495. LabelSelector is used to find matching pods.
  16496. Pods that match this label selector are counted to determine the number of pods
  16497. in their corresponding topology domain.
  16498. properties:
  16499. matchExpressions:
  16500. description: matchExpressions is a list of label
  16501. selector requirements. The requirements are
  16502. ANDed.
  16503. items:
  16504. description: |-
  16505. A label selector requirement is a selector that contains values, a key, and an operator that
  16506. relates the key and values.
  16507. properties:
  16508. key:
  16509. description: key is the label key that
  16510. the selector applies to.
  16511. type: string
  16512. operator:
  16513. description: |-
  16514. operator represents a key's relationship to a set of values.
  16515. Valid operators are In, NotIn, Exists and DoesNotExist.
  16516. type: string
  16517. values:
  16518. description: |-
  16519. values is an array of string values. If the operator is In or NotIn,
  16520. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  16521. the values array must be empty. This array is replaced during a strategic
  16522. merge patch.
  16523. items:
  16524. type: string
  16525. type: array
  16526. x-kubernetes-list-type: atomic
  16527. required:
  16528. - key
  16529. - operator
  16530. type: object
  16531. type: array
  16532. x-kubernetes-list-type: atomic
  16533. matchLabels:
  16534. additionalProperties:
  16535. type: string
  16536. description: |-
  16537. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  16538. map is equivalent to an element of matchExpressions, whose key field is "key", the
  16539. operator is "In", and the values array contains only "value". The requirements are ANDed.
  16540. type: object
  16541. type: object
  16542. x-kubernetes-map-type: atomic
  16543. matchLabelKeys:
  16544. description: |-
  16545. MatchLabelKeys is a set of pod label keys to select the pods over which
  16546. spreading will be calculated. The keys are used to lookup values from the
  16547. incoming pod labels, those key-value labels are ANDed with labelSelector
  16548. to select the group of existing pods over which spreading will be calculated
  16549. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  16550. MatchLabelKeys cannot be set when LabelSelector isn't set.
  16551. Keys that don't exist in the incoming pod labels will
  16552. be ignored. A null or empty list means only match against labelSelector.
  16553. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  16554. items:
  16555. type: string
  16556. type: array
  16557. x-kubernetes-list-type: atomic
  16558. maxSkew:
  16559. description: |-
  16560. MaxSkew describes the degree to which pods may be unevenly distributed.
  16561. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  16562. between the number of matching pods in the target topology and the global minimum.
  16563. The global minimum is the minimum number of matching pods in an eligible domain
  16564. or zero if the number of eligible domains is less than MinDomains.
  16565. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  16566. labelSelector spread as 2/2/1:
  16567. In this case, the global minimum is 1.
  16568. | zone1 | zone2 | zone3 |
  16569. | P P | P P | P |
  16570. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  16571. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  16572. violate MaxSkew(1).
  16573. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  16574. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  16575. to topologies that satisfy it.
  16576. It's a required field. Default value is 1 and 0 is not allowed.
  16577. format: int32
  16578. type: integer
  16579. minDomains:
  16580. description: |-
  16581. MinDomains indicates a minimum number of eligible domains.
  16582. When the number of eligible domains with matching topology keys is less than minDomains,
  16583. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  16584. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  16585. this value has no effect on scheduling.
  16586. As a result, when the number of eligible domains is less than minDomains,
  16587. scheduler won't schedule more than maxSkew Pods to those domains.
  16588. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  16589. Valid values are integers greater than 0.
  16590. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  16591. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  16592. labelSelector spread as 2/2/2:
  16593. | zone1 | zone2 | zone3 |
  16594. | P P | P P | P P |
  16595. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  16596. In this situation, new pod with the same labelSelector cannot be scheduled,
  16597. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  16598. it will violate MaxSkew.
  16599. format: int32
  16600. type: integer
  16601. nodeAffinityPolicy:
  16602. description: |-
  16603. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  16604. when calculating pod topology spread skew. Options are:
  16605. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  16606. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  16607. If this value is nil, the behavior is equivalent to the Honor policy.
  16608. type: string
  16609. nodeTaintsPolicy:
  16610. description: |-
  16611. NodeTaintsPolicy indicates how we will treat node taints when calculating
  16612. pod topology spread skew. Options are:
  16613. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  16614. has a toleration, are included.
  16615. - Ignore: node taints are ignored. All nodes are included.
  16616. If this value is nil, the behavior is equivalent to the Ignore policy.
  16617. type: string
  16618. topologyKey:
  16619. description: |-
  16620. TopologyKey is the key of node labels. Nodes that have a label with this key
  16621. and identical values are considered to be in the same topology.
  16622. We consider each <key, value> as a "bucket", and try to put balanced number
  16623. of pods into each bucket.
  16624. We define a domain as a particular instance of a topology.
  16625. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  16626. nodeAffinityPolicy and nodeTaintsPolicy.
  16627. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  16628. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  16629. It's a required field.
  16630. type: string
  16631. whenUnsatisfiable:
  16632. description: |-
  16633. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  16634. the spread constraint.
  16635. - DoNotSchedule (default) tells the scheduler not to schedule it.
  16636. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  16637. but giving higher precedence to topologies that would help reduce the
  16638. skew.
  16639. A constraint is considered "Unsatisfiable" for an incoming pod
  16640. if and only if every possible node assignment for that pod would violate
  16641. "MaxSkew" on some topology.
  16642. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  16643. labelSelector spread as 3/1/1:
  16644. | zone1 | zone2 | zone3 |
  16645. | P P P | P | P |
  16646. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  16647. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  16648. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  16649. won't make it *more* imbalanced.
  16650. It's a required field.
  16651. type: string
  16652. required:
  16653. - maxSkew
  16654. - topologyKey
  16655. - whenUnsatisfiable
  16656. type: object
  16657. type: array
  16658. volumes:
  16659. description: volumes defines additional pod volumes available
  16660. to the runtime container.
  16661. items:
  16662. description: Volume represents a named volume in a pod
  16663. that may be accessed by any container in the pod.
  16664. properties:
  16665. awsElasticBlockStore:
  16666. description: |-
  16667. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  16668. kubelet's host machine and then exposed to the pod.
  16669. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  16670. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  16671. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  16672. properties:
  16673. fsType:
  16674. description: |-
  16675. fsType is the filesystem type of the volume that you want to mount.
  16676. Tip: Ensure that the filesystem type is supported by the host operating system.
  16677. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16678. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  16679. type: string
  16680. partition:
  16681. description: |-
  16682. partition is the partition in the volume that you want to mount.
  16683. If omitted, the default is to mount by volume name.
  16684. Examples: For volume /dev/sda1, you specify the partition as "1".
  16685. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  16686. format: int32
  16687. type: integer
  16688. readOnly:
  16689. description: |-
  16690. readOnly value true will force the readOnly setting in VolumeMounts.
  16691. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  16692. type: boolean
  16693. volumeID:
  16694. description: |-
  16695. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  16696. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  16697. type: string
  16698. required:
  16699. - volumeID
  16700. type: object
  16701. azureDisk:
  16702. description: |-
  16703. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  16704. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  16705. are redirected to the disk.csi.azure.com CSI driver.
  16706. properties:
  16707. cachingMode:
  16708. description: 'cachingMode is the Host Caching
  16709. mode: None, Read Only, Read Write.'
  16710. type: string
  16711. diskName:
  16712. description: diskName is the Name of the data
  16713. disk in the blob storage
  16714. type: string
  16715. diskURI:
  16716. description: diskURI is the URI of data disk
  16717. in the blob storage
  16718. type: string
  16719. fsType:
  16720. default: ext4
  16721. description: |-
  16722. fsType is Filesystem type to mount.
  16723. Must be a filesystem type supported by the host operating system.
  16724. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16725. type: string
  16726. kind:
  16727. description: 'kind expected values are Shared:
  16728. multiple blob disks per storage account Dedicated:
  16729. single blob disk per storage account Managed:
  16730. azure managed data disk (only in managed availability
  16731. set). defaults to shared'
  16732. type: string
  16733. readOnly:
  16734. default: false
  16735. description: |-
  16736. readOnly Defaults to false (read/write). ReadOnly here will force
  16737. the ReadOnly setting in VolumeMounts.
  16738. type: boolean
  16739. required:
  16740. - diskName
  16741. - diskURI
  16742. type: object
  16743. azureFile:
  16744. description: |-
  16745. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  16746. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  16747. are redirected to the file.csi.azure.com CSI driver.
  16748. properties:
  16749. readOnly:
  16750. description: |-
  16751. readOnly defaults to false (read/write). ReadOnly here will force
  16752. the ReadOnly setting in VolumeMounts.
  16753. type: boolean
  16754. secretName:
  16755. description: secretName is the name of secret
  16756. that contains Azure Storage Account Name and
  16757. Key
  16758. type: string
  16759. shareName:
  16760. description: shareName is the azure share Name
  16761. type: string
  16762. required:
  16763. - secretName
  16764. - shareName
  16765. type: object
  16766. cephfs:
  16767. description: |-
  16768. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  16769. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  16770. properties:
  16771. monitors:
  16772. description: |-
  16773. monitors is Required: Monitors is a collection of Ceph monitors
  16774. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  16775. items:
  16776. type: string
  16777. type: array
  16778. x-kubernetes-list-type: atomic
  16779. path:
  16780. description: 'path is Optional: Used as the
  16781. mounted root, rather than the full Ceph tree,
  16782. default is /'
  16783. type: string
  16784. readOnly:
  16785. description: |-
  16786. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  16787. the ReadOnly setting in VolumeMounts.
  16788. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  16789. type: boolean
  16790. secretFile:
  16791. description: |-
  16792. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  16793. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  16794. type: string
  16795. secretRef:
  16796. description: |-
  16797. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  16798. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  16799. properties:
  16800. name:
  16801. default: ""
  16802. description: |-
  16803. Name of the referent.
  16804. This field is effectively required, but due to backwards compatibility is
  16805. allowed to be empty. Instances of this type with an empty value here are
  16806. almost certainly wrong.
  16807. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16808. type: string
  16809. type: object
  16810. x-kubernetes-map-type: atomic
  16811. user:
  16812. description: |-
  16813. user is optional: User is the rados user name, default is admin
  16814. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  16815. type: string
  16816. required:
  16817. - monitors
  16818. type: object
  16819. cinder:
  16820. description: |-
  16821. cinder represents a cinder volume attached and mounted on kubelets host machine.
  16822. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  16823. are redirected to the cinder.csi.openstack.org CSI driver.
  16824. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  16825. properties:
  16826. fsType:
  16827. description: |-
  16828. fsType is the filesystem type to mount.
  16829. Must be a filesystem type supported by the host operating system.
  16830. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16831. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  16832. type: string
  16833. readOnly:
  16834. description: |-
  16835. readOnly defaults to false (read/write). ReadOnly here will force
  16836. the ReadOnly setting in VolumeMounts.
  16837. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  16838. type: boolean
  16839. secretRef:
  16840. description: |-
  16841. secretRef is optional: points to a secret object containing parameters used to connect
  16842. to OpenStack.
  16843. properties:
  16844. name:
  16845. default: ""
  16846. description: |-
  16847. Name of the referent.
  16848. This field is effectively required, but due to backwards compatibility is
  16849. allowed to be empty. Instances of this type with an empty value here are
  16850. almost certainly wrong.
  16851. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16852. type: string
  16853. type: object
  16854. x-kubernetes-map-type: atomic
  16855. volumeID:
  16856. description: |-
  16857. volumeID used to identify the volume in cinder.
  16858. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  16859. type: string
  16860. required:
  16861. - volumeID
  16862. type: object
  16863. configMap:
  16864. description: configMap represents a configMap that
  16865. should populate this volume
  16866. properties:
  16867. defaultMode:
  16868. description: |-
  16869. defaultMode is optional: mode bits used to set permissions on created files by default.
  16870. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  16871. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16872. Defaults to 0644.
  16873. Directories within the path are not affected by this setting.
  16874. This might be in conflict with other options that affect the file
  16875. mode, like fsGroup, and the result can be other mode bits set.
  16876. format: int32
  16877. type: integer
  16878. items:
  16879. description: |-
  16880. items if unspecified, each key-value pair in the Data field of the referenced
  16881. ConfigMap will be projected into the volume as a file whose name is the
  16882. key and content is the value. If specified, the listed keys will be
  16883. projected into the specified paths, and unlisted keys will not be
  16884. present. If a key is specified which is not present in the ConfigMap,
  16885. the volume setup will error unless it is marked optional. Paths must be
  16886. relative and may not contain the '..' path or start with '..'.
  16887. items:
  16888. description: Maps a string key to a path within
  16889. a volume.
  16890. properties:
  16891. key:
  16892. description: key is the key to project.
  16893. type: string
  16894. mode:
  16895. description: |-
  16896. mode is Optional: mode bits used to set permissions on this file.
  16897. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  16898. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16899. If not specified, the volume defaultMode will be used.
  16900. This might be in conflict with other options that affect the file
  16901. mode, like fsGroup, and the result can be other mode bits set.
  16902. format: int32
  16903. type: integer
  16904. path:
  16905. description: |-
  16906. path is the relative path of the file to map the key to.
  16907. May not be an absolute path.
  16908. May not contain the path element '..'.
  16909. May not start with the string '..'.
  16910. type: string
  16911. required:
  16912. - key
  16913. - path
  16914. type: object
  16915. type: array
  16916. x-kubernetes-list-type: atomic
  16917. name:
  16918. default: ""
  16919. description: |-
  16920. Name of the referent.
  16921. This field is effectively required, but due to backwards compatibility is
  16922. allowed to be empty. Instances of this type with an empty value here are
  16923. almost certainly wrong.
  16924. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16925. type: string
  16926. optional:
  16927. description: optional specify whether the ConfigMap
  16928. or its keys must be defined
  16929. type: boolean
  16930. type: object
  16931. x-kubernetes-map-type: atomic
  16932. csi:
  16933. description: csi (Container Storage Interface) represents
  16934. ephemeral storage that is handled by certain external
  16935. CSI drivers.
  16936. properties:
  16937. driver:
  16938. description: |-
  16939. driver is the name of the CSI driver that handles this volume.
  16940. Consult with your admin for the correct name as registered in the cluster.
  16941. type: string
  16942. fsType:
  16943. description: |-
  16944. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  16945. If not provided, the empty value is passed to the associated CSI driver
  16946. which will determine the default filesystem to apply.
  16947. type: string
  16948. nodePublishSecretRef:
  16949. description: |-
  16950. nodePublishSecretRef is a reference to the secret object containing
  16951. sensitive information to pass to the CSI driver to complete the CSI
  16952. NodePublishVolume and NodeUnpublishVolume calls.
  16953. This field is optional, and may be empty if no secret is required. If the
  16954. secret object contains more than one secret, all secret references are passed.
  16955. properties:
  16956. name:
  16957. default: ""
  16958. description: |-
  16959. Name of the referent.
  16960. This field is effectively required, but due to backwards compatibility is
  16961. allowed to be empty. Instances of this type with an empty value here are
  16962. almost certainly wrong.
  16963. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16964. type: string
  16965. type: object
  16966. x-kubernetes-map-type: atomic
  16967. readOnly:
  16968. description: |-
  16969. readOnly specifies a read-only configuration for the volume.
  16970. Defaults to false (read/write).
  16971. type: boolean
  16972. volumeAttributes:
  16973. additionalProperties:
  16974. type: string
  16975. description: |-
  16976. volumeAttributes stores driver-specific properties that are passed to the CSI
  16977. driver. Consult your driver's documentation for supported values.
  16978. type: object
  16979. required:
  16980. - driver
  16981. type: object
  16982. downwardAPI:
  16983. description: downwardAPI represents downward API
  16984. about the pod that should populate this volume
  16985. properties:
  16986. defaultMode:
  16987. description: |-
  16988. Optional: mode bits to use on created files by default. Must be a
  16989. Optional: mode bits used to set permissions on created files by default.
  16990. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  16991. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16992. Defaults to 0644.
  16993. Directories within the path are not affected by this setting.
  16994. This might be in conflict with other options that affect the file
  16995. mode, like fsGroup, and the result can be other mode bits set.
  16996. format: int32
  16997. type: integer
  16998. items:
  16999. description: Items is a list of downward API
  17000. volume file
  17001. items:
  17002. description: DownwardAPIVolumeFile represents
  17003. information to create the file containing
  17004. the pod field
  17005. properties:
  17006. fieldRef:
  17007. description: 'Required: Selects a field
  17008. of the pod: only annotations, labels,
  17009. name, namespace and uid are supported.'
  17010. properties:
  17011. apiVersion:
  17012. description: Version of the schema
  17013. the FieldPath is written in terms
  17014. of, defaults to "v1".
  17015. type: string
  17016. fieldPath:
  17017. description: Path of the field to
  17018. select in the specified API version.
  17019. type: string
  17020. required:
  17021. - fieldPath
  17022. type: object
  17023. x-kubernetes-map-type: atomic
  17024. mode:
  17025. description: |-
  17026. Optional: mode bits used to set permissions on this file, must be an octal value
  17027. between 0000 and 0777 or a decimal value between 0 and 511.
  17028. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17029. If not specified, the volume defaultMode will be used.
  17030. This might be in conflict with other options that affect the file
  17031. mode, like fsGroup, and the result can be other mode bits set.
  17032. format: int32
  17033. type: integer
  17034. path:
  17035. description: 'Required: Path is the relative
  17036. path name of the file to be created.
  17037. Must not be absolute or contain the
  17038. ''..'' path. Must be utf-8 encoded.
  17039. The first item of the relative path
  17040. must not start with ''..'''
  17041. type: string
  17042. resourceFieldRef:
  17043. description: |-
  17044. Selects a resource of the container: only resources limits and requests
  17045. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  17046. properties:
  17047. containerName:
  17048. description: 'Container name: required
  17049. for volumes, optional for env vars'
  17050. type: string
  17051. divisor:
  17052. anyOf:
  17053. - type: integer
  17054. - type: string
  17055. description: Specifies the output
  17056. format of the exposed resources,
  17057. defaults to "1"
  17058. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  17059. x-kubernetes-int-or-string: true
  17060. resource:
  17061. description: 'Required: resource to
  17062. select'
  17063. type: string
  17064. required:
  17065. - resource
  17066. type: object
  17067. x-kubernetes-map-type: atomic
  17068. required:
  17069. - path
  17070. type: object
  17071. type: array
  17072. x-kubernetes-list-type: atomic
  17073. type: object
  17074. emptyDir:
  17075. description: |-
  17076. emptyDir represents a temporary directory that shares a pod's lifetime.
  17077. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  17078. properties:
  17079. medium:
  17080. description: |-
  17081. medium represents what type of storage medium should back this directory.
  17082. The default is "" which means to use the node's default medium.
  17083. Must be an empty string (default) or Memory.
  17084. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  17085. type: string
  17086. sizeLimit:
  17087. anyOf:
  17088. - type: integer
  17089. - type: string
  17090. description: |-
  17091. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  17092. The size limit is also applicable for memory medium.
  17093. The maximum usage on memory medium EmptyDir would be the minimum value between
  17094. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  17095. The default is nil which means that the limit is undefined.
  17096. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  17097. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  17098. x-kubernetes-int-or-string: true
  17099. type: object
  17100. ephemeral:
  17101. description: |-
  17102. ephemeral represents a volume that is handled by a cluster storage driver.
  17103. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  17104. and deleted when the pod is removed.
  17105. Use this if:
  17106. a) the volume is only needed while the pod runs,
  17107. b) features of normal volumes like restoring from snapshot or capacity
  17108. tracking are needed,
  17109. c) the storage driver is specified through a storage class, and
  17110. d) the storage driver supports dynamic volume provisioning through
  17111. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  17112. information on the connection between this volume type
  17113. and PersistentVolumeClaim).
  17114. Use PersistentVolumeClaim or one of the vendor-specific
  17115. APIs for volumes that persist for longer than the lifecycle
  17116. of an individual pod.
  17117. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  17118. be used that way - see the documentation of the driver for
  17119. more information.
  17120. A pod can use both types of ephemeral volumes and
  17121. persistent volumes at the same time.
  17122. properties:
  17123. volumeClaimTemplate:
  17124. description: |-
  17125. Will be used to create a stand-alone PVC to provision the volume.
  17126. The pod in which this EphemeralVolumeSource is embedded will be the
  17127. owner of the PVC, i.e. the PVC will be deleted together with the
  17128. pod. The name of the PVC will be `<pod name>-<volume name>` where
  17129. `<volume name>` is the name from the `PodSpec.Volumes` array
  17130. entry. Pod validation will reject the pod if the concatenated name
  17131. is not valid for a PVC (for example, too long).
  17132. An existing PVC with that name that is not owned by the pod
  17133. will *not* be used for the pod to avoid using an unrelated
  17134. volume by mistake. Starting the pod is then blocked until
  17135. the unrelated PVC is removed. If such a pre-created PVC is
  17136. meant to be used by the pod, the PVC has to updated with an
  17137. owner reference to the pod once the pod exists. Normally
  17138. this should not be necessary, but it may be useful when
  17139. manually reconstructing a broken cluster.
  17140. This field is read-only and no changes will be made by Kubernetes
  17141. to the PVC after it has been created.
  17142. Required, must not be nil.
  17143. properties:
  17144. metadata:
  17145. description: |-
  17146. May contain labels and annotations that will be copied into the PVC
  17147. when creating it. No other fields are allowed and will be rejected during
  17148. validation.
  17149. type: object
  17150. spec:
  17151. description: |-
  17152. The specification for the PersistentVolumeClaim. The entire content is
  17153. copied unchanged into the PVC that gets created from this
  17154. template. The same fields as in a PersistentVolumeClaim
  17155. are also valid here.
  17156. properties:
  17157. accessModes:
  17158. description: |-
  17159. accessModes contains the desired access modes the volume should have.
  17160. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  17161. items:
  17162. type: string
  17163. type: array
  17164. x-kubernetes-list-type: atomic
  17165. dataSource:
  17166. description: |-
  17167. dataSource field can be used to specify either:
  17168. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  17169. * An existing PVC (PersistentVolumeClaim)
  17170. If the provisioner or an external controller can support the specified data source,
  17171. it will create a new volume based on the contents of the specified data source.
  17172. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  17173. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  17174. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  17175. properties:
  17176. apiGroup:
  17177. description: |-
  17178. APIGroup is the group for the resource being referenced.
  17179. If APIGroup is not specified, the specified Kind must be in the core API group.
  17180. For any other third-party types, APIGroup is required.
  17181. type: string
  17182. kind:
  17183. description: Kind is the type of
  17184. resource being referenced
  17185. type: string
  17186. name:
  17187. description: Name is the name of
  17188. resource being referenced
  17189. type: string
  17190. required:
  17191. - kind
  17192. - name
  17193. type: object
  17194. x-kubernetes-map-type: atomic
  17195. dataSourceRef:
  17196. description: |-
  17197. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  17198. volume is desired. This may be any object from a non-empty API group (non
  17199. core object) or a PersistentVolumeClaim object.
  17200. When this field is specified, volume binding will only succeed if the type of
  17201. the specified object matches some installed volume populator or dynamic
  17202. provisioner.
  17203. This field will replace the functionality of the dataSource field and as such
  17204. if both fields are non-empty, they must have the same value. For backwards
  17205. compatibility, when namespace isn't specified in dataSourceRef,
  17206. both fields (dataSource and dataSourceRef) will be set to the same
  17207. value automatically if one of them is empty and the other is non-empty.
  17208. When namespace is specified in dataSourceRef,
  17209. dataSource isn't set to the same value and must be empty.
  17210. There are three important differences between dataSource and dataSourceRef:
  17211. * While dataSource only allows two specific types of objects, dataSourceRef
  17212. allows any non-core object, as well as PersistentVolumeClaim objects.
  17213. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  17214. preserves all values, and generates an error if a disallowed value is
  17215. specified.
  17216. * While dataSource only allows local objects, dataSourceRef allows objects
  17217. in any namespaces.
  17218. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  17219. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  17220. properties:
  17221. apiGroup:
  17222. description: |-
  17223. APIGroup is the group for the resource being referenced.
  17224. If APIGroup is not specified, the specified Kind must be in the core API group.
  17225. For any other third-party types, APIGroup is required.
  17226. type: string
  17227. kind:
  17228. description: Kind is the type of
  17229. resource being referenced
  17230. type: string
  17231. name:
  17232. description: Name is the name of
  17233. resource being referenced
  17234. type: string
  17235. namespace:
  17236. description: |-
  17237. Namespace is the namespace of resource being referenced
  17238. Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
  17239. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  17240. type: string
  17241. required:
  17242. - kind
  17243. - name
  17244. type: object
  17245. resources:
  17246. description: |-
  17247. resources represents the minimum resources the volume should have.
  17248. Users are allowed to specify resource requirements
  17249. that are lower than previous value but must still be higher than capacity recorded in the
  17250. status field of the claim.
  17251. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  17252. properties:
  17253. limits:
  17254. additionalProperties:
  17255. anyOf:
  17256. - type: integer
  17257. - type: string
  17258. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  17259. x-kubernetes-int-or-string: true
  17260. description: |-
  17261. Limits describes the maximum amount of compute resources allowed.
  17262. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  17263. type: object
  17264. requests:
  17265. additionalProperties:
  17266. anyOf:
  17267. - type: integer
  17268. - type: string
  17269. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  17270. x-kubernetes-int-or-string: true
  17271. description: |-
  17272. Requests describes the minimum amount of compute resources required.
  17273. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  17274. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  17275. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  17276. type: object
  17277. type: object
  17278. selector:
  17279. description: selector is a label query
  17280. over volumes to consider for binding.
  17281. properties:
  17282. matchExpressions:
  17283. description: matchExpressions is
  17284. a list of label selector requirements.
  17285. The requirements are ANDed.
  17286. items:
  17287. description: |-
  17288. A label selector requirement is a selector that contains values, a key, and an operator that
  17289. relates the key and values.
  17290. properties:
  17291. key:
  17292. description: key is the label
  17293. key that the selector applies
  17294. to.
  17295. type: string
  17296. operator:
  17297. description: |-
  17298. operator represents a key's relationship to a set of values.
  17299. Valid operators are In, NotIn, Exists and DoesNotExist.
  17300. type: string
  17301. values:
  17302. description: |-
  17303. values is an array of string values. If the operator is In or NotIn,
  17304. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  17305. the values array must be empty. This array is replaced during a strategic
  17306. merge patch.
  17307. items:
  17308. type: string
  17309. type: array
  17310. x-kubernetes-list-type: atomic
  17311. required:
  17312. - key
  17313. - operator
  17314. type: object
  17315. type: array
  17316. x-kubernetes-list-type: atomic
  17317. matchLabels:
  17318. additionalProperties:
  17319. type: string
  17320. description: |-
  17321. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  17322. map is equivalent to an element of matchExpressions, whose key field is "key", the
  17323. operator is "In", and the values array contains only "value". The requirements are ANDed.
  17324. type: object
  17325. type: object
  17326. x-kubernetes-map-type: atomic
  17327. storageClassName:
  17328. description: |-
  17329. storageClassName is the name of the StorageClass required by the claim.
  17330. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  17331. type: string
  17332. volumeAttributesClassName:
  17333. description: |-
  17334. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  17335. If specified, the CSI driver will create or update the volume with the attributes defined
  17336. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  17337. it can be changed after the claim is created. An empty string or nil value indicates that no
  17338. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  17339. this field can be reset to its previous value (including nil) to cancel the modification.
  17340. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  17341. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  17342. exists.
  17343. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  17344. type: string
  17345. volumeMode:
  17346. description: |-
  17347. volumeMode defines what type of volume is required by the claim.
  17348. Value of Filesystem is implied when not included in claim spec.
  17349. type: string
  17350. volumeName:
  17351. description: volumeName is the binding
  17352. reference to the PersistentVolume
  17353. backing this claim.
  17354. type: string
  17355. type: object
  17356. required:
  17357. - spec
  17358. type: object
  17359. type: object
  17360. fc:
  17361. description: fc represents a Fibre Channel resource
  17362. that is attached to a kubelet's host machine and
  17363. then exposed to the pod.
  17364. properties:
  17365. fsType:
  17366. description: |-
  17367. fsType is the filesystem type to mount.
  17368. Must be a filesystem type supported by the host operating system.
  17369. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17370. type: string
  17371. lun:
  17372. description: 'lun is Optional: FC target lun
  17373. number'
  17374. format: int32
  17375. type: integer
  17376. readOnly:
  17377. description: |-
  17378. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  17379. the ReadOnly setting in VolumeMounts.
  17380. type: boolean
  17381. targetWWNs:
  17382. description: 'targetWWNs is Optional: FC target
  17383. worldwide names (WWNs)'
  17384. items:
  17385. type: string
  17386. type: array
  17387. x-kubernetes-list-type: atomic
  17388. wwids:
  17389. description: |-
  17390. wwids Optional: FC volume world wide identifiers (wwids)
  17391. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  17392. items:
  17393. type: string
  17394. type: array
  17395. x-kubernetes-list-type: atomic
  17396. type: object
  17397. flexVolume:
  17398. description: |-
  17399. flexVolume represents a generic volume resource that is
  17400. provisioned/attached using an exec based plugin.
  17401. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  17402. properties:
  17403. driver:
  17404. description: driver is the name of the driver
  17405. to use for this volume.
  17406. type: string
  17407. fsType:
  17408. description: |-
  17409. fsType is the filesystem type to mount.
  17410. Must be a filesystem type supported by the host operating system.
  17411. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  17412. type: string
  17413. options:
  17414. additionalProperties:
  17415. type: string
  17416. description: 'options is Optional: this field
  17417. holds extra command options if any.'
  17418. type: object
  17419. readOnly:
  17420. description: |-
  17421. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  17422. the ReadOnly setting in VolumeMounts.
  17423. type: boolean
  17424. secretRef:
  17425. description: |-
  17426. secretRef is Optional: secretRef is reference to the secret object containing
  17427. sensitive information to pass to the plugin scripts. This may be
  17428. empty if no secret object is specified. If the secret object
  17429. contains more than one secret, all secrets are passed to the plugin
  17430. scripts.
  17431. properties:
  17432. name:
  17433. default: ""
  17434. description: |-
  17435. Name of the referent.
  17436. This field is effectively required, but due to backwards compatibility is
  17437. allowed to be empty. Instances of this type with an empty value here are
  17438. almost certainly wrong.
  17439. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17440. type: string
  17441. type: object
  17442. x-kubernetes-map-type: atomic
  17443. required:
  17444. - driver
  17445. type: object
  17446. flocker:
  17447. description: |-
  17448. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  17449. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  17450. properties:
  17451. datasetName:
  17452. description: |-
  17453. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  17454. should be considered as deprecated
  17455. type: string
  17456. datasetUUID:
  17457. description: datasetUUID is the UUID of the
  17458. dataset. This is unique identifier of a Flocker
  17459. dataset
  17460. type: string
  17461. type: object
  17462. gcePersistentDisk:
  17463. description: |-
  17464. gcePersistentDisk represents a GCE Disk resource that is attached to a
  17465. kubelet's host machine and then exposed to the pod.
  17466. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  17467. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  17468. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  17469. properties:
  17470. fsType:
  17471. description: |-
  17472. fsType is filesystem type of the volume that you want to mount.
  17473. Tip: Ensure that the filesystem type is supported by the host operating system.
  17474. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17475. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  17476. type: string
  17477. partition:
  17478. description: |-
  17479. partition is the partition in the volume that you want to mount.
  17480. If omitted, the default is to mount by volume name.
  17481. Examples: For volume /dev/sda1, you specify the partition as "1".
  17482. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  17483. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  17484. format: int32
  17485. type: integer
  17486. pdName:
  17487. description: |-
  17488. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  17489. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  17490. type: string
  17491. readOnly:
  17492. description: |-
  17493. readOnly here will force the ReadOnly setting in VolumeMounts.
  17494. Defaults to false.
  17495. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  17496. type: boolean
  17497. required:
  17498. - pdName
  17499. type: object
  17500. gitRepo:
  17501. description: |-
  17502. gitRepo represents a git repository at a particular revision.
  17503. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  17504. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  17505. into the Pod's container.
  17506. properties:
  17507. directory:
  17508. description: |-
  17509. directory is the target directory name.
  17510. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  17511. git repository. Otherwise, if specified, the volume will contain the git repository in
  17512. the subdirectory with the given name.
  17513. type: string
  17514. repository:
  17515. description: repository is the URL
  17516. type: string
  17517. revision:
  17518. description: revision is the commit hash for
  17519. the specified revision.
  17520. type: string
  17521. required:
  17522. - repository
  17523. type: object
  17524. glusterfs:
  17525. description: |-
  17526. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  17527. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  17528. properties:
  17529. endpoints:
  17530. description: endpoints is the endpoint name
  17531. that details Glusterfs topology.
  17532. type: string
  17533. path:
  17534. description: |-
  17535. path is the Glusterfs volume path.
  17536. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  17537. type: string
  17538. readOnly:
  17539. description: |-
  17540. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  17541. Defaults to false.
  17542. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  17543. type: boolean
  17544. required:
  17545. - endpoints
  17546. - path
  17547. type: object
  17548. hostPath:
  17549. description: |-
  17550. hostPath represents a pre-existing file or directory on the host
  17551. machine that is directly exposed to the container. This is generally
  17552. used for system agents or other privileged things that are allowed
  17553. to see the host machine. Most containers will NOT need this.
  17554. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  17555. properties:
  17556. path:
  17557. description: |-
  17558. path of the directory on the host.
  17559. If the path is a symlink, it will follow the link to the real path.
  17560. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  17561. type: string
  17562. type:
  17563. description: |-
  17564. type for HostPath Volume
  17565. Defaults to ""
  17566. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  17567. type: string
  17568. required:
  17569. - path
  17570. type: object
  17571. image:
  17572. description: |-
  17573. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  17574. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  17575. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  17576. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  17577. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  17578. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  17579. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  17580. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  17581. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  17582. The volume will be mounted read-only (ro) and non-executable files (noexec).
  17583. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  17584. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  17585. properties:
  17586. pullPolicy:
  17587. description: |-
  17588. Policy for pulling OCI objects. Possible values are:
  17589. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  17590. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  17591. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  17592. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  17593. type: string
  17594. reference:
  17595. description: |-
  17596. Required: Image or artifact reference to be used.
  17597. Behaves in the same way as pod.spec.containers[*].image.
  17598. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  17599. More info: https://kubernetes.io/docs/concepts/containers/images
  17600. This field is optional to allow higher level config management to default or override
  17601. container images in workload controllers like Deployments and StatefulSets.
  17602. type: string
  17603. type: object
  17604. iscsi:
  17605. description: |-
  17606. iscsi represents an ISCSI Disk resource that is attached to a
  17607. kubelet's host machine and then exposed to the pod.
  17608. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  17609. properties:
  17610. chapAuthDiscovery:
  17611. description: chapAuthDiscovery defines whether
  17612. support iSCSI Discovery CHAP authentication
  17613. type: boolean
  17614. chapAuthSession:
  17615. description: chapAuthSession defines whether
  17616. support iSCSI Session CHAP authentication
  17617. type: boolean
  17618. fsType:
  17619. description: |-
  17620. fsType is the filesystem type of the volume that you want to mount.
  17621. Tip: Ensure that the filesystem type is supported by the host operating system.
  17622. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17623. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  17624. type: string
  17625. initiatorName:
  17626. description: |-
  17627. initiatorName is the custom iSCSI Initiator Name.
  17628. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  17629. <target portal>:<volume name> will be created for the connection.
  17630. type: string
  17631. iqn:
  17632. description: iqn is the target iSCSI Qualified
  17633. Name.
  17634. type: string
  17635. iscsiInterface:
  17636. default: default
  17637. description: |-
  17638. iscsiInterface is the interface Name that uses an iSCSI transport.
  17639. Defaults to 'default' (tcp).
  17640. type: string
  17641. lun:
  17642. description: lun represents iSCSI Target Lun
  17643. number.
  17644. format: int32
  17645. type: integer
  17646. portals:
  17647. description: |-
  17648. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  17649. is other than default (typically TCP ports 860 and 3260).
  17650. items:
  17651. type: string
  17652. type: array
  17653. x-kubernetes-list-type: atomic
  17654. readOnly:
  17655. description: |-
  17656. readOnly here will force the ReadOnly setting in VolumeMounts.
  17657. Defaults to false.
  17658. type: boolean
  17659. secretRef:
  17660. description: secretRef is the CHAP Secret for
  17661. iSCSI target and initiator authentication
  17662. properties:
  17663. name:
  17664. default: ""
  17665. description: |-
  17666. Name of the referent.
  17667. This field is effectively required, but due to backwards compatibility is
  17668. allowed to be empty. Instances of this type with an empty value here are
  17669. almost certainly wrong.
  17670. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17671. type: string
  17672. type: object
  17673. x-kubernetes-map-type: atomic
  17674. targetPortal:
  17675. description: |-
  17676. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  17677. is other than default (typically TCP ports 860 and 3260).
  17678. type: string
  17679. required:
  17680. - iqn
  17681. - lun
  17682. - targetPortal
  17683. type: object
  17684. name:
  17685. description: |-
  17686. name of the volume.
  17687. Must be a DNS_LABEL and unique within the pod.
  17688. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17689. type: string
  17690. nfs:
  17691. description: |-
  17692. nfs represents an NFS mount on the host that shares a pod's lifetime
  17693. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  17694. properties:
  17695. path:
  17696. description: |-
  17697. path that is exported by the NFS server.
  17698. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  17699. type: string
  17700. readOnly:
  17701. description: |-
  17702. readOnly here will force the NFS export to be mounted with read-only permissions.
  17703. Defaults to false.
  17704. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  17705. type: boolean
  17706. server:
  17707. description: |-
  17708. server is the hostname or IP address of the NFS server.
  17709. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  17710. type: string
  17711. required:
  17712. - path
  17713. - server
  17714. type: object
  17715. persistentVolumeClaim:
  17716. description: |-
  17717. persistentVolumeClaimVolumeSource represents a reference to a
  17718. PersistentVolumeClaim in the same namespace.
  17719. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  17720. properties:
  17721. claimName:
  17722. description: |-
  17723. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  17724. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  17725. type: string
  17726. readOnly:
  17727. description: |-
  17728. readOnly Will force the ReadOnly setting in VolumeMounts.
  17729. Default false.
  17730. type: boolean
  17731. required:
  17732. - claimName
  17733. type: object
  17734. photonPersistentDisk:
  17735. description: |-
  17736. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  17737. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  17738. properties:
  17739. fsType:
  17740. description: |-
  17741. fsType is the filesystem type to mount.
  17742. Must be a filesystem type supported by the host operating system.
  17743. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17744. type: string
  17745. pdID:
  17746. description: pdID is the ID that identifies
  17747. Photon Controller persistent disk
  17748. type: string
  17749. required:
  17750. - pdID
  17751. type: object
  17752. portworxVolume:
  17753. description: |-
  17754. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  17755. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  17756. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  17757. is on.
  17758. properties:
  17759. fsType:
  17760. description: |-
  17761. fSType represents the filesystem type to mount
  17762. Must be a filesystem type supported by the host operating system.
  17763. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  17764. type: string
  17765. readOnly:
  17766. description: |-
  17767. readOnly defaults to false (read/write). ReadOnly here will force
  17768. the ReadOnly setting in VolumeMounts.
  17769. type: boolean
  17770. volumeID:
  17771. description: volumeID uniquely identifies a
  17772. Portworx volume
  17773. type: string
  17774. required:
  17775. - volumeID
  17776. type: object
  17777. projected:
  17778. description: projected items for all in one resources
  17779. secrets, configmaps, and downward API
  17780. properties:
  17781. defaultMode:
  17782. description: |-
  17783. defaultMode are the mode bits used to set permissions on created files by default.
  17784. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  17785. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17786. Directories within the path are not affected by this setting.
  17787. This might be in conflict with other options that affect the file
  17788. mode, like fsGroup, and the result can be other mode bits set.
  17789. format: int32
  17790. type: integer
  17791. sources:
  17792. description: |-
  17793. sources is the list of volume projections. Each entry in this list
  17794. handles one source.
  17795. items:
  17796. description: |-
  17797. Projection that may be projected along with other supported volume types.
  17798. Exactly one of these fields must be set.
  17799. properties:
  17800. clusterTrustBundle:
  17801. description: |-
  17802. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  17803. of ClusterTrustBundle objects in an auto-updating file.
  17804. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  17805. ClusterTrustBundle objects can either be selected by name, or by the
  17806. combination of signer name and a label selector.
  17807. Kubelet performs aggressive normalization of the PEM contents written
  17808. into the pod filesystem. Esoteric PEM features such as inter-block
  17809. comments and block headers are stripped. Certificates are deduplicated.
  17810. The ordering of certificates within the file is arbitrary, and Kubelet
  17811. may change the order over time.
  17812. properties:
  17813. labelSelector:
  17814. description: |-
  17815. Select all ClusterTrustBundles that match this label selector. Only has
  17816. effect if signerName is set. Mutually-exclusive with name. If unset,
  17817. interpreted as "match nothing". If set but empty, interpreted as "match
  17818. everything".
  17819. properties:
  17820. matchExpressions:
  17821. description: matchExpressions
  17822. is a list of label selector
  17823. requirements. The requirements
  17824. are ANDed.
  17825. items:
  17826. description: |-
  17827. A label selector requirement is a selector that contains values, a key, and an operator that
  17828. relates the key and values.
  17829. properties:
  17830. key:
  17831. description: key is the
  17832. label key that the selector
  17833. applies to.
  17834. type: string
  17835. operator:
  17836. description: |-
  17837. operator represents a key's relationship to a set of values.
  17838. Valid operators are In, NotIn, Exists and DoesNotExist.
  17839. type: string
  17840. values:
  17841. description: |-
  17842. values is an array of string values. If the operator is In or NotIn,
  17843. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  17844. the values array must be empty. This array is replaced during a strategic
  17845. merge patch.
  17846. items:
  17847. type: string
  17848. type: array
  17849. x-kubernetes-list-type: atomic
  17850. required:
  17851. - key
  17852. - operator
  17853. type: object
  17854. type: array
  17855. x-kubernetes-list-type: atomic
  17856. matchLabels:
  17857. additionalProperties:
  17858. type: string
  17859. description: |-
  17860. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  17861. map is equivalent to an element of matchExpressions, whose key field is "key", the
  17862. operator is "In", and the values array contains only "value". The requirements are ANDed.
  17863. type: object
  17864. type: object
  17865. x-kubernetes-map-type: atomic
  17866. name:
  17867. description: |-
  17868. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  17869. with signerName and labelSelector.
  17870. type: string
  17871. optional:
  17872. description: |-
  17873. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  17874. aren't available. If using name, then the named ClusterTrustBundle is
  17875. allowed not to exist. If using signerName, then the combination of
  17876. signerName and labelSelector is allowed to match zero
  17877. ClusterTrustBundles.
  17878. type: boolean
  17879. path:
  17880. description: Relative path from the
  17881. volume root to write the bundle.
  17882. type: string
  17883. signerName:
  17884. description: |-
  17885. Select all ClusterTrustBundles that match this signer name.
  17886. Mutually-exclusive with name. The contents of all selected
  17887. ClusterTrustBundles will be unified and deduplicated.
  17888. type: string
  17889. required:
  17890. - path
  17891. type: object
  17892. configMap:
  17893. description: configMap information about
  17894. the configMap data to project
  17895. properties:
  17896. items:
  17897. description: |-
  17898. items if unspecified, each key-value pair in the Data field of the referenced
  17899. ConfigMap will be projected into the volume as a file whose name is the
  17900. key and content is the value. If specified, the listed keys will be
  17901. projected into the specified paths, and unlisted keys will not be
  17902. present. If a key is specified which is not present in the ConfigMap,
  17903. the volume setup will error unless it is marked optional. Paths must be
  17904. relative and may not contain the '..' path or start with '..'.
  17905. items:
  17906. description: Maps a string key to
  17907. a path within a volume.
  17908. properties:
  17909. key:
  17910. description: key is the key
  17911. to project.
  17912. type: string
  17913. mode:
  17914. description: |-
  17915. mode is Optional: mode bits used to set permissions on this file.
  17916. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  17917. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17918. If not specified, the volume defaultMode will be used.
  17919. This might be in conflict with other options that affect the file
  17920. mode, like fsGroup, and the result can be other mode bits set.
  17921. format: int32
  17922. type: integer
  17923. path:
  17924. description: |-
  17925. path is the relative path of the file to map the key to.
  17926. May not be an absolute path.
  17927. May not contain the path element '..'.
  17928. May not start with the string '..'.
  17929. type: string
  17930. required:
  17931. - key
  17932. - path
  17933. type: object
  17934. type: array
  17935. x-kubernetes-list-type: atomic
  17936. name:
  17937. default: ""
  17938. description: |-
  17939. Name of the referent.
  17940. This field is effectively required, but due to backwards compatibility is
  17941. allowed to be empty. Instances of this type with an empty value here are
  17942. almost certainly wrong.
  17943. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17944. type: string
  17945. optional:
  17946. description: optional specify whether
  17947. the ConfigMap or its keys must be
  17948. defined
  17949. type: boolean
  17950. type: object
  17951. x-kubernetes-map-type: atomic
  17952. downwardAPI:
  17953. description: downwardAPI information about
  17954. the downwardAPI data to project
  17955. properties:
  17956. items:
  17957. description: Items is a list of DownwardAPIVolume
  17958. file
  17959. items:
  17960. description: DownwardAPIVolumeFile
  17961. represents information to create
  17962. the file containing the pod field
  17963. properties:
  17964. fieldRef:
  17965. description: 'Required: Selects
  17966. a field of the pod: only annotations,
  17967. labels, name, namespace and
  17968. uid are supported.'
  17969. properties:
  17970. apiVersion:
  17971. description: Version of
  17972. the schema the FieldPath
  17973. is written in terms of,
  17974. defaults to "v1".
  17975. type: string
  17976. fieldPath:
  17977. description: Path of the
  17978. field to select in the
  17979. specified API version.
  17980. type: string
  17981. required:
  17982. - fieldPath
  17983. type: object
  17984. x-kubernetes-map-type: atomic
  17985. mode:
  17986. description: |-
  17987. Optional: mode bits used to set permissions on this file, must be an octal value
  17988. between 0000 and 0777 or a decimal value between 0 and 511.
  17989. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17990. If not specified, the volume defaultMode will be used.
  17991. This might be in conflict with other options that affect the file
  17992. mode, like fsGroup, and the result can be other mode bits set.
  17993. format: int32
  17994. type: integer
  17995. path:
  17996. description: 'Required: Path
  17997. is the relative path name
  17998. of the file to be created.
  17999. Must not be absolute or contain
  18000. the ''..'' path. Must be utf-8
  18001. encoded. The first item of
  18002. the relative path must not
  18003. start with ''..'''
  18004. type: string
  18005. resourceFieldRef:
  18006. description: |-
  18007. Selects a resource of the container: only resources limits and requests
  18008. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  18009. properties:
  18010. containerName:
  18011. description: 'Container
  18012. name: required for volumes,
  18013. optional for env vars'
  18014. type: string
  18015. divisor:
  18016. anyOf:
  18017. - type: integer
  18018. - type: string
  18019. description: Specifies the
  18020. output format of the exposed
  18021. resources, defaults to
  18022. "1"
  18023. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  18024. x-kubernetes-int-or-string: true
  18025. resource:
  18026. description: 'Required:
  18027. resource to select'
  18028. type: string
  18029. required:
  18030. - resource
  18031. type: object
  18032. x-kubernetes-map-type: atomic
  18033. required:
  18034. - path
  18035. type: object
  18036. type: array
  18037. x-kubernetes-list-type: atomic
  18038. type: object
  18039. podCertificate:
  18040. description: |-
  18041. Projects an auto-rotating credential bundle (private key and certificate
  18042. chain) that the pod can use either as a TLS client or server.
  18043. Kubelet generates a private key and uses it to send a
  18044. PodCertificateRequest to the named signer. Once the signer approves the
  18045. request and issues a certificate chain, Kubelet writes the key and
  18046. certificate chain to the pod filesystem. The pod does not start until
  18047. certificates have been issued for each podCertificate projected volume
  18048. source in its spec.
  18049. Kubelet will begin trying to rotate the certificate at the time indicated
  18050. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  18051. timestamp.
  18052. Kubelet can write a single file, indicated by the credentialBundlePath
  18053. field, or separate files, indicated by the keyPath and
  18054. certificateChainPath fields.
  18055. The credential bundle is a single file in PEM format. The first PEM
  18056. entry is the private key (in PKCS#8 format), and the remaining PEM
  18057. entries are the certificate chain issued by the signer (typically,
  18058. signers will return their certificate chain in leaf-to-root order).
  18059. Prefer using the credential bundle format, since your application code
  18060. can read it atomically. If you use keyPath and certificateChainPath,
  18061. your application must make two separate file reads. If these coincide
  18062. with a certificate rotation, it is possible that the private key and leaf
  18063. certificate you read may not correspond to each other. Your application
  18064. will need to check for this condition, and re-read until they are
  18065. consistent.
  18066. The named signer controls chooses the format of the certificate it
  18067. issues; consult the signer implementation's documentation to learn how to
  18068. use the certificates it issues.
  18069. properties:
  18070. certificateChainPath:
  18071. description: |-
  18072. Write the certificate chain at this path in the projected volume.
  18073. Most applications should use credentialBundlePath. When using keyPath
  18074. and certificateChainPath, your application needs to check that the key
  18075. and leaf certificate are consistent, because it is possible to read the
  18076. files mid-rotation.
  18077. type: string
  18078. credentialBundlePath:
  18079. description: |-
  18080. Write the credential bundle at this path in the projected volume.
  18081. The credential bundle is a single file that contains multiple PEM blocks.
  18082. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  18083. key.
  18084. The remaining blocks are CERTIFICATE blocks, containing the issued
  18085. certificate chain from the signer (leaf and any intermediates).
  18086. Using credentialBundlePath lets your Pod's application code make a single
  18087. atomic read that retrieves a consistent key and certificate chain. If you
  18088. project them to separate files, your application code will need to
  18089. additionally check that the leaf certificate was issued to the key.
  18090. type: string
  18091. keyPath:
  18092. description: |-
  18093. Write the key at this path in the projected volume.
  18094. Most applications should use credentialBundlePath. When using keyPath
  18095. and certificateChainPath, your application needs to check that the key
  18096. and leaf certificate are consistent, because it is possible to read the
  18097. files mid-rotation.
  18098. type: string
  18099. keyType:
  18100. description: |-
  18101. The type of keypair Kubelet will generate for the pod.
  18102. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  18103. "ECDSAP521", and "ED25519".
  18104. type: string
  18105. maxExpirationSeconds:
  18106. description: |-
  18107. maxExpirationSeconds is the maximum lifetime permitted for the
  18108. certificate.
  18109. Kubelet copies this value verbatim into the PodCertificateRequests it
  18110. generates for this projection.
  18111. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  18112. will reject values shorter than 3600 (1 hour). The maximum allowable
  18113. value is 7862400 (91 days).
  18114. The signer implementation is then free to issue a certificate with any
  18115. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  18116. seconds (1 hour). This constraint is enforced by kube-apiserver.
  18117. `kubernetes.io` signers will never issue certificates with a lifetime
  18118. longer than 24 hours.
  18119. format: int32
  18120. type: integer
  18121. signerName:
  18122. description: Kubelet's generated CSRs
  18123. will be addressed to this signer.
  18124. type: string
  18125. userAnnotations:
  18126. additionalProperties:
  18127. type: string
  18128. description: |-
  18129. userAnnotations allow pod authors to pass additional information to
  18130. the signer implementation. Kubernetes does not restrict or validate this
  18131. metadata in any way.
  18132. These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of
  18133. the PodCertificateRequest objects that Kubelet creates.
  18134. Entries are subject to the same validation as object metadata annotations,
  18135. with the addition that all keys must be domain-prefixed. No restrictions
  18136. are placed on values, except an overall size limitation on the entire field.
  18137. Signers should document the keys and values they support. Signers should
  18138. deny requests that contain keys they do not recognize.
  18139. type: object
  18140. required:
  18141. - keyType
  18142. - signerName
  18143. type: object
  18144. secret:
  18145. description: secret information about
  18146. the secret data to project
  18147. properties:
  18148. items:
  18149. description: |-
  18150. items if unspecified, each key-value pair in the Data field of the referenced
  18151. Secret will be projected into the volume as a file whose name is the
  18152. key and content is the value. If specified, the listed keys will be
  18153. projected into the specified paths, and unlisted keys will not be
  18154. present. If a key is specified which is not present in the Secret,
  18155. the volume setup will error unless it is marked optional. Paths must be
  18156. relative and may not contain the '..' path or start with '..'.
  18157. items:
  18158. description: Maps a string key to
  18159. a path within a volume.
  18160. properties:
  18161. key:
  18162. description: key is the key
  18163. to project.
  18164. type: string
  18165. mode:
  18166. description: |-
  18167. mode is Optional: mode bits used to set permissions on this file.
  18168. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  18169. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  18170. If not specified, the volume defaultMode will be used.
  18171. This might be in conflict with other options that affect the file
  18172. mode, like fsGroup, and the result can be other mode bits set.
  18173. format: int32
  18174. type: integer
  18175. path:
  18176. description: |-
  18177. path is the relative path of the file to map the key to.
  18178. May not be an absolute path.
  18179. May not contain the path element '..'.
  18180. May not start with the string '..'.
  18181. type: string
  18182. required:
  18183. - key
  18184. - path
  18185. type: object
  18186. type: array
  18187. x-kubernetes-list-type: atomic
  18188. name:
  18189. default: ""
  18190. description: |-
  18191. Name of the referent.
  18192. This field is effectively required, but due to backwards compatibility is
  18193. allowed to be empty. Instances of this type with an empty value here are
  18194. almost certainly wrong.
  18195. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  18196. type: string
  18197. optional:
  18198. description: optional field specify
  18199. whether the Secret or its key must
  18200. be defined
  18201. type: boolean
  18202. type: object
  18203. x-kubernetes-map-type: atomic
  18204. serviceAccountToken:
  18205. description: serviceAccountToken is information
  18206. about the serviceAccountToken data to
  18207. project
  18208. properties:
  18209. audience:
  18210. description: |-
  18211. audience is the intended audience of the token. A recipient of a token
  18212. must identify itself with an identifier specified in the audience of the
  18213. token, and otherwise should reject the token. The audience defaults to the
  18214. identifier of the apiserver.
  18215. type: string
  18216. expirationSeconds:
  18217. description: |-
  18218. expirationSeconds is the requested duration of validity of the service
  18219. account token. As the token approaches expiration, the kubelet volume
  18220. plugin will proactively rotate the service account token. The kubelet will
  18221. start trying to rotate the token if the token is older than 80 percent of
  18222. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  18223. and must be at least 10 minutes.
  18224. format: int64
  18225. type: integer
  18226. path:
  18227. description: |-
  18228. path is the path relative to the mount point of the file to project the
  18229. token into.
  18230. type: string
  18231. required:
  18232. - path
  18233. type: object
  18234. type: object
  18235. type: array
  18236. x-kubernetes-list-type: atomic
  18237. type: object
  18238. quobyte:
  18239. description: |-
  18240. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  18241. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  18242. properties:
  18243. group:
  18244. description: |-
  18245. group to map volume access to
  18246. Default is no group
  18247. type: string
  18248. readOnly:
  18249. description: |-
  18250. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  18251. Defaults to false.
  18252. type: boolean
  18253. registry:
  18254. description: |-
  18255. registry represents a single or multiple Quobyte Registry services
  18256. specified as a string as host:port pair (multiple entries are separated with commas)
  18257. which acts as the central registry for volumes
  18258. type: string
  18259. tenant:
  18260. description: |-
  18261. tenant owning the given Quobyte volume in the Backend
  18262. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  18263. type: string
  18264. user:
  18265. description: |-
  18266. user to map volume access to
  18267. Defaults to serivceaccount user
  18268. type: string
  18269. volume:
  18270. description: volume is a string that references
  18271. an already created Quobyte volume by name.
  18272. type: string
  18273. required:
  18274. - registry
  18275. - volume
  18276. type: object
  18277. rbd:
  18278. description: |-
  18279. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  18280. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  18281. properties:
  18282. fsType:
  18283. description: |-
  18284. fsType is the filesystem type of the volume that you want to mount.
  18285. Tip: Ensure that the filesystem type is supported by the host operating system.
  18286. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  18287. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  18288. type: string
  18289. image:
  18290. description: |-
  18291. image is the rados image name.
  18292. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18293. type: string
  18294. keyring:
  18295. default: /etc/ceph/keyring
  18296. description: |-
  18297. keyring is the path to key ring for RBDUser.
  18298. Default is /etc/ceph/keyring.
  18299. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18300. type: string
  18301. monitors:
  18302. description: |-
  18303. monitors is a collection of Ceph monitors.
  18304. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18305. items:
  18306. type: string
  18307. type: array
  18308. x-kubernetes-list-type: atomic
  18309. pool:
  18310. default: rbd
  18311. description: |-
  18312. pool is the rados pool name.
  18313. Default is rbd.
  18314. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18315. type: string
  18316. readOnly:
  18317. description: |-
  18318. readOnly here will force the ReadOnly setting in VolumeMounts.
  18319. Defaults to false.
  18320. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18321. type: boolean
  18322. secretRef:
  18323. description: |-
  18324. secretRef is name of the authentication secret for RBDUser. If provided
  18325. overrides keyring.
  18326. Default is nil.
  18327. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18328. properties:
  18329. name:
  18330. default: ""
  18331. description: |-
  18332. Name of the referent.
  18333. This field is effectively required, but due to backwards compatibility is
  18334. allowed to be empty. Instances of this type with an empty value here are
  18335. almost certainly wrong.
  18336. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  18337. type: string
  18338. type: object
  18339. x-kubernetes-map-type: atomic
  18340. user:
  18341. default: admin
  18342. description: |-
  18343. user is the rados user name.
  18344. Default is admin.
  18345. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  18346. type: string
  18347. required:
  18348. - image
  18349. - monitors
  18350. type: object
  18351. scaleIO:
  18352. description: |-
  18353. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  18354. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  18355. properties:
  18356. fsType:
  18357. default: xfs
  18358. description: |-
  18359. fsType is the filesystem type to mount.
  18360. Must be a filesystem type supported by the host operating system.
  18361. Ex. "ext4", "xfs", "ntfs".
  18362. Default is "xfs".
  18363. type: string
  18364. gateway:
  18365. description: gateway is the host address of
  18366. the ScaleIO API Gateway.
  18367. type: string
  18368. protectionDomain:
  18369. description: protectionDomain is the name of
  18370. the ScaleIO Protection Domain for the configured
  18371. storage.
  18372. type: string
  18373. readOnly:
  18374. description: |-
  18375. readOnly Defaults to false (read/write). ReadOnly here will force
  18376. the ReadOnly setting in VolumeMounts.
  18377. type: boolean
  18378. secretRef:
  18379. description: |-
  18380. secretRef references to the secret for ScaleIO user and other
  18381. sensitive information. If this is not provided, Login operation will fail.
  18382. properties:
  18383. name:
  18384. default: ""
  18385. description: |-
  18386. Name of the referent.
  18387. This field is effectively required, but due to backwards compatibility is
  18388. allowed to be empty. Instances of this type with an empty value here are
  18389. almost certainly wrong.
  18390. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  18391. type: string
  18392. type: object
  18393. x-kubernetes-map-type: atomic
  18394. sslEnabled:
  18395. description: sslEnabled Flag enable/disable
  18396. SSL communication with Gateway, default false
  18397. type: boolean
  18398. storageMode:
  18399. default: ThinProvisioned
  18400. description: |-
  18401. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  18402. Default is ThinProvisioned.
  18403. type: string
  18404. storagePool:
  18405. description: storagePool is the ScaleIO Storage
  18406. Pool associated with the protection domain.
  18407. type: string
  18408. system:
  18409. description: system is the name of the storage
  18410. system as configured in ScaleIO.
  18411. type: string
  18412. volumeName:
  18413. description: |-
  18414. volumeName is the name of a volume already created in the ScaleIO system
  18415. that is associated with this volume source.
  18416. type: string
  18417. required:
  18418. - gateway
  18419. - secretRef
  18420. - system
  18421. type: object
  18422. secret:
  18423. description: |-
  18424. secret represents a secret that should populate this volume.
  18425. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  18426. properties:
  18427. defaultMode:
  18428. description: |-
  18429. defaultMode is Optional: mode bits used to set permissions on created files by default.
  18430. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  18431. YAML accepts both octal and decimal values, JSON requires decimal values
  18432. for mode bits. Defaults to 0644.
  18433. Directories within the path are not affected by this setting.
  18434. This might be in conflict with other options that affect the file
  18435. mode, like fsGroup, and the result can be other mode bits set.
  18436. format: int32
  18437. type: integer
  18438. items:
  18439. description: |-
  18440. items If unspecified, each key-value pair in the Data field of the referenced
  18441. Secret will be projected into the volume as a file whose name is the
  18442. key and content is the value. If specified, the listed keys will be
  18443. projected into the specified paths, and unlisted keys will not be
  18444. present. If a key is specified which is not present in the Secret,
  18445. the volume setup will error unless it is marked optional. Paths must be
  18446. relative and may not contain the '..' path or start with '..'.
  18447. items:
  18448. description: Maps a string key to a path within
  18449. a volume.
  18450. properties:
  18451. key:
  18452. description: key is the key to project.
  18453. type: string
  18454. mode:
  18455. description: |-
  18456. mode is Optional: mode bits used to set permissions on this file.
  18457. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  18458. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  18459. If not specified, the volume defaultMode will be used.
  18460. This might be in conflict with other options that affect the file
  18461. mode, like fsGroup, and the result can be other mode bits set.
  18462. format: int32
  18463. type: integer
  18464. path:
  18465. description: |-
  18466. path is the relative path of the file to map the key to.
  18467. May not be an absolute path.
  18468. May not contain the path element '..'.
  18469. May not start with the string '..'.
  18470. type: string
  18471. required:
  18472. - key
  18473. - path
  18474. type: object
  18475. type: array
  18476. x-kubernetes-list-type: atomic
  18477. optional:
  18478. description: optional field specify whether
  18479. the Secret or its keys must be defined
  18480. type: boolean
  18481. secretName:
  18482. description: |-
  18483. secretName is the name of the secret in the pod's namespace to use.
  18484. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  18485. type: string
  18486. type: object
  18487. storageos:
  18488. description: |-
  18489. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  18490. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  18491. properties:
  18492. fsType:
  18493. description: |-
  18494. fsType is the filesystem type to mount.
  18495. Must be a filesystem type supported by the host operating system.
  18496. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  18497. type: string
  18498. readOnly:
  18499. description: |-
  18500. readOnly defaults to false (read/write). ReadOnly here will force
  18501. the ReadOnly setting in VolumeMounts.
  18502. type: boolean
  18503. secretRef:
  18504. description: |-
  18505. secretRef specifies the secret to use for obtaining the StorageOS API
  18506. credentials. If not specified, default values will be attempted.
  18507. properties:
  18508. name:
  18509. default: ""
  18510. description: |-
  18511. Name of the referent.
  18512. This field is effectively required, but due to backwards compatibility is
  18513. allowed to be empty. Instances of this type with an empty value here are
  18514. almost certainly wrong.
  18515. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  18516. type: string
  18517. type: object
  18518. x-kubernetes-map-type: atomic
  18519. volumeName:
  18520. description: |-
  18521. volumeName is the human-readable name of the StorageOS volume. Volume
  18522. names are only unique within a namespace.
  18523. type: string
  18524. volumeNamespace:
  18525. description: |-
  18526. volumeNamespace specifies the scope of the volume within StorageOS. If no
  18527. namespace is specified then the Pod's namespace will be used. This allows the
  18528. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  18529. Set VolumeName to any name to override the default behaviour.
  18530. Set to "default" if you are not using namespaces within StorageOS.
  18531. Namespaces that do not pre-exist within StorageOS will be created.
  18532. type: string
  18533. type: object
  18534. vsphereVolume:
  18535. description: |-
  18536. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  18537. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  18538. are redirected to the csi.vsphere.vmware.com CSI driver.
  18539. properties:
  18540. fsType:
  18541. description: |-
  18542. fsType is filesystem type to mount.
  18543. Must be a filesystem type supported by the host operating system.
  18544. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  18545. type: string
  18546. storagePolicyID:
  18547. description: storagePolicyID is the storage
  18548. Policy Based Management (SPBM) profile ID
  18549. associated with the StoragePolicyName.
  18550. type: string
  18551. storagePolicyName:
  18552. description: storagePolicyName is the storage
  18553. Policy Based Management (SPBM) profile name.
  18554. type: string
  18555. volumePath:
  18556. description: volumePath is the path that identifies
  18557. vSphere volume vmdk
  18558. type: string
  18559. required:
  18560. - volumePath
  18561. type: object
  18562. required:
  18563. - name
  18564. type: object
  18565. type: array
  18566. type: object
  18567. required:
  18568. - name
  18569. type: object
  18570. type: object
  18571. type: object
  18572. status:
  18573. description: status defines the observed state of Stack
  18574. properties:
  18575. componentStatus:
  18576. description: componentStatus reports the effective template for each
  18577. stack component.
  18578. properties:
  18579. database:
  18580. description: database is the resolved database template name,
  18581. or "disabled".
  18582. type: string
  18583. gateway:
  18584. description: gateway is the resolved gateway template name, or
  18585. "disabled".
  18586. type: string
  18587. graphStore:
  18588. description: graphStore is the resolved graph store template name,
  18589. or "disabled".
  18590. type: string
  18591. observability:
  18592. description: observability is the resolved observability template
  18593. name, or "disabled".
  18594. type: string
  18595. vectorStore:
  18596. description: vectorStore is the resolved vector store template
  18597. name, or "disabled".
  18598. type: string
  18599. type: object
  18600. conditions:
  18601. description: |-
  18602. conditions represent the current state of the Stack resource.
  18603. Each condition has a unique type and reflects the status of a specific aspect of the resource.
  18604. Standard condition types include:
  18605. - "Available": the resource is fully functional
  18606. - "Progressing": the resource is being created or updated
  18607. - "Degraded": the resource failed to reach or maintain its desired state
  18608. The status of each condition is one of True, False, or Unknown.
  18609. items:
  18610. description: Condition contains details for one aspect of the current
  18611. state of this API Resource.
  18612. properties:
  18613. lastTransitionTime:
  18614. description: |-
  18615. lastTransitionTime is the last time the condition transitioned from one status to another.
  18616. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
  18617. format: date-time
  18618. type: string
  18619. message:
  18620. description: |-
  18621. message is a human readable message indicating details about the transition.
  18622. This may be an empty string.
  18623. maxLength: 32768
  18624. type: string
  18625. observedGeneration:
  18626. description: |-
  18627. observedGeneration represents the .metadata.generation that the condition was set based upon.
  18628. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
  18629. with respect to the current state of the instance.
  18630. format: int64
  18631. minimum: 0
  18632. type: integer
  18633. reason:
  18634. description: |-
  18635. reason contains a programmatic identifier indicating the reason for the condition's last transition.
  18636. Producers of specific condition types may define expected values and meanings for this field,
  18637. and whether the values are considered a guaranteed API.
  18638. The value should be a CamelCase string.
  18639. This field may not be empty.
  18640. maxLength: 1024
  18641. minLength: 1
  18642. pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
  18643. type: string
  18644. status:
  18645. description: status of the condition, one of True, False, Unknown.
  18646. enum:
  18647. - "True"
  18648. - "False"
  18649. - Unknown
  18650. type: string
  18651. type:
  18652. description: type of condition in CamelCase or in foo.example.com/CamelCase.
  18653. maxLength: 316
  18654. 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])$
  18655. type: string
  18656. required:
  18657. - lastTransitionTime
  18658. - message
  18659. - reason
  18660. - status
  18661. - type
  18662. type: object
  18663. type: array
  18664. x-kubernetes-list-map-keys:
  18665. - type
  18666. x-kubernetes-list-type: map
  18667. observedGeneration:
  18668. description: observedGeneration is the .metadata.generation last reconciled.
  18669. format: int64
  18670. type: integer
  18671. type: object
  18672. required:
  18673. - spec
  18674. type: object
  18675. served: true
  18676. storage: true
  18677. subresources:
  18678. status: {}