crds.yaml 1.0 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062
  1. ##############################################################################
  2. # Create the CRDs that are necessary before creating your Rook cluster.
  3. # These resources *must* be created before the cluster.yaml or their variants.
  4. ##############################################################################
  5. ---
  6. ---
  7. apiVersion: apiextensions.k8s.io/v1
  8. kind: CustomResourceDefinition
  9. metadata:
  10. annotations:
  11. controller-gen.kubebuilder.io/version: v0.11.3
  12. creationTimestamp: null
  13. name: cephblockpoolradosnamespaces.ceph.rook.io
  14. spec:
  15. group: ceph.rook.io
  16. names:
  17. kind: CephBlockPoolRadosNamespace
  18. listKind: CephBlockPoolRadosNamespaceList
  19. plural: cephblockpoolradosnamespaces
  20. singular: cephblockpoolradosnamespace
  21. scope: Namespaced
  22. versions:
  23. - name: v1
  24. schema:
  25. openAPIV3Schema:
  26. description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
  27. properties:
  28. apiVersion:
  29. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  30. type: string
  31. kind:
  32. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  33. type: string
  34. metadata:
  35. type: object
  36. spec:
  37. description: Spec represents the specification of a Ceph BlockPool Rados Namespace
  38. properties:
  39. blockPoolName:
  40. description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR.
  41. type: string
  42. x-kubernetes-validations:
  43. - message: blockPoolName is immutable
  44. rule: self == oldSelf
  45. name:
  46. description: The name of the CephBlockPoolRadosNamespaceSpec namespace. If not set, the default is the name of the CR.
  47. type: string
  48. x-kubernetes-validations:
  49. - message: name is immutable
  50. rule: self == oldSelf
  51. required:
  52. - blockPoolName
  53. type: object
  54. status:
  55. description: Status represents the status of a CephBlockPool Rados Namespace
  56. properties:
  57. info:
  58. additionalProperties:
  59. type: string
  60. nullable: true
  61. type: object
  62. phase:
  63. description: ConditionType represent a resource's status
  64. type: string
  65. type: object
  66. x-kubernetes-preserve-unknown-fields: true
  67. required:
  68. - metadata
  69. - spec
  70. type: object
  71. served: true
  72. storage: true
  73. subresources:
  74. status: {}
  75. ---
  76. apiVersion: apiextensions.k8s.io/v1
  77. kind: CustomResourceDefinition
  78. metadata:
  79. annotations:
  80. controller-gen.kubebuilder.io/version: v0.11.3
  81. creationTimestamp: null
  82. name: cephblockpools.ceph.rook.io
  83. spec:
  84. group: ceph.rook.io
  85. names:
  86. kind: CephBlockPool
  87. listKind: CephBlockPoolList
  88. plural: cephblockpools
  89. singular: cephblockpool
  90. scope: Namespaced
  91. versions:
  92. - additionalPrinterColumns:
  93. - jsonPath: .status.phase
  94. name: Phase
  95. type: string
  96. name: v1
  97. schema:
  98. openAPIV3Schema:
  99. description: CephBlockPool represents a Ceph Storage Pool
  100. properties:
  101. apiVersion:
  102. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  103. type: string
  104. kind:
  105. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  106. type: string
  107. metadata:
  108. type: object
  109. spec:
  110. description: NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.
  111. properties:
  112. compressionMode:
  113. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  114. enum:
  115. - none
  116. - passive
  117. - aggressive
  118. - force
  119. - ""
  120. nullable: true
  121. type: string
  122. crushRoot:
  123. description: The root of the crush hierarchy utilized by the pool
  124. nullable: true
  125. type: string
  126. deviceClass:
  127. description: The device class the OSD should set to for use in the pool
  128. nullable: true
  129. type: string
  130. enableRBDStats:
  131. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  132. type: boolean
  133. erasureCoded:
  134. description: The erasure code settings
  135. properties:
  136. algorithm:
  137. description: The algorithm for erasure coding
  138. type: string
  139. codingChunks:
  140. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  141. minimum: 0
  142. type: integer
  143. dataChunks:
  144. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  145. minimum: 0
  146. type: integer
  147. required:
  148. - codingChunks
  149. - dataChunks
  150. type: object
  151. failureDomain:
  152. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  153. type: string
  154. mirroring:
  155. description: The mirroring settings
  156. properties:
  157. enabled:
  158. description: Enabled whether this pool is mirrored or not
  159. type: boolean
  160. mode:
  161. description: 'Mode is the mirroring mode: either pool or image'
  162. type: string
  163. peers:
  164. description: Peers represents the peers spec
  165. nullable: true
  166. properties:
  167. secretNames:
  168. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  169. items:
  170. type: string
  171. type: array
  172. type: object
  173. snapshotSchedules:
  174. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  175. items:
  176. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  177. properties:
  178. interval:
  179. description: Interval represent the periodicity of the snapshot.
  180. type: string
  181. path:
  182. description: Path is the path to snapshot, only valid for CephFS
  183. type: string
  184. startTime:
  185. description: StartTime indicates when to start the snapshot
  186. type: string
  187. type: object
  188. type: array
  189. type: object
  190. name:
  191. description: The desired name of the pool if different from the CephBlockPool CR name.
  192. enum:
  193. - device_health_metrics
  194. - .nfs
  195. - .mgr
  196. type: string
  197. parameters:
  198. additionalProperties:
  199. type: string
  200. description: Parameters is a list of properties to enable on a given pool
  201. nullable: true
  202. type: object
  203. x-kubernetes-preserve-unknown-fields: true
  204. quotas:
  205. description: The quota settings
  206. nullable: true
  207. properties:
  208. maxBytes:
  209. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  210. format: int64
  211. type: integer
  212. maxObjects:
  213. description: MaxObjects represents the quota in objects
  214. format: int64
  215. type: integer
  216. maxSize:
  217. description: MaxSize represents the quota in bytes as a string
  218. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  219. type: string
  220. type: object
  221. replicated:
  222. description: The replication settings
  223. properties:
  224. hybridStorage:
  225. description: HybridStorage represents hybrid storage tier settings
  226. nullable: true
  227. properties:
  228. primaryDeviceClass:
  229. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  230. minLength: 1
  231. type: string
  232. secondaryDeviceClass:
  233. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  234. minLength: 1
  235. type: string
  236. required:
  237. - primaryDeviceClass
  238. - secondaryDeviceClass
  239. type: object
  240. replicasPerFailureDomain:
  241. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  242. minimum: 1
  243. type: integer
  244. requireSafeReplicaSize:
  245. description: RequireSafeReplicaSize if false allows you to set replica 1
  246. type: boolean
  247. size:
  248. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  249. minimum: 0
  250. type: integer
  251. subFailureDomain:
  252. description: SubFailureDomain the name of the sub-failure domain
  253. type: string
  254. targetSizeRatio:
  255. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  256. type: number
  257. required:
  258. - size
  259. type: object
  260. statusCheck:
  261. description: The mirroring statusCheck
  262. properties:
  263. mirror:
  264. description: HealthCheckSpec represents the health check of an object store bucket
  265. nullable: true
  266. properties:
  267. disabled:
  268. type: boolean
  269. interval:
  270. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  271. type: string
  272. timeout:
  273. type: string
  274. type: object
  275. type: object
  276. x-kubernetes-preserve-unknown-fields: true
  277. type: object
  278. status:
  279. description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
  280. properties:
  281. conditions:
  282. items:
  283. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  284. properties:
  285. lastHeartbeatTime:
  286. format: date-time
  287. type: string
  288. lastTransitionTime:
  289. format: date-time
  290. type: string
  291. message:
  292. type: string
  293. reason:
  294. description: ConditionReason is a reason for a condition
  295. type: string
  296. status:
  297. type: string
  298. type:
  299. description: ConditionType represent a resource's status
  300. type: string
  301. type: object
  302. type: array
  303. info:
  304. additionalProperties:
  305. type: string
  306. nullable: true
  307. type: object
  308. mirroringInfo:
  309. description: MirroringInfoSpec is the status of the pool mirroring
  310. properties:
  311. details:
  312. type: string
  313. lastChanged:
  314. type: string
  315. lastChecked:
  316. type: string
  317. mode:
  318. description: Mode is the mirroring mode
  319. type: string
  320. peers:
  321. description: Peers are the list of peer sites connected to that cluster
  322. items:
  323. description: PeersSpec contains peer details
  324. properties:
  325. client_name:
  326. description: ClientName is the CephX user used to connect to the peer
  327. type: string
  328. direction:
  329. description: Direction is the peer mirroring direction
  330. type: string
  331. mirror_uuid:
  332. description: MirrorUUID is the mirror UUID
  333. type: string
  334. site_name:
  335. description: SiteName is the current site name
  336. type: string
  337. uuid:
  338. description: UUID is the peer UUID
  339. type: string
  340. type: object
  341. type: array
  342. site_name:
  343. description: SiteName is the current site name
  344. type: string
  345. type: object
  346. mirroringStatus:
  347. description: MirroringStatusSpec is the status of the pool mirroring
  348. properties:
  349. details:
  350. description: Details contains potential status errors
  351. type: string
  352. lastChanged:
  353. description: LastChanged is the last time time the status last changed
  354. type: string
  355. lastChecked:
  356. description: LastChecked is the last time time the status was checked
  357. type: string
  358. summary:
  359. description: Summary is the mirroring status summary
  360. properties:
  361. daemon_health:
  362. description: DaemonHealth is the health of the mirroring daemon
  363. type: string
  364. health:
  365. description: Health is the mirroring health
  366. type: string
  367. image_health:
  368. description: ImageHealth is the health of the mirrored image
  369. type: string
  370. states:
  371. description: States is the various state for all mirrored images
  372. nullable: true
  373. properties:
  374. error:
  375. description: Error is when the mirroring state is errored
  376. type: integer
  377. replaying:
  378. description: Replaying is when the replay of the mirroring journal is on-going
  379. type: integer
  380. starting_replay:
  381. description: StartingReplay is when the replay of the mirroring journal starts
  382. type: integer
  383. stopped:
  384. description: Stopped is when the mirroring state is stopped
  385. type: integer
  386. stopping_replay:
  387. description: StopReplaying is when the replay of the mirroring journal stops
  388. type: integer
  389. syncing:
  390. description: Syncing is when the image is syncing
  391. type: integer
  392. unknown:
  393. description: Unknown is when the mirroring state is unknown
  394. type: integer
  395. type: object
  396. type: object
  397. type: object
  398. observedGeneration:
  399. description: ObservedGeneration is the latest generation observed by the controller.
  400. format: int64
  401. type: integer
  402. phase:
  403. description: ConditionType represent a resource's status
  404. type: string
  405. snapshotScheduleStatus:
  406. description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
  407. properties:
  408. details:
  409. description: Details contains potential status errors
  410. type: string
  411. lastChanged:
  412. description: LastChanged is the last time time the status last changed
  413. type: string
  414. lastChecked:
  415. description: LastChecked is the last time time the status was checked
  416. type: string
  417. snapshotSchedules:
  418. description: SnapshotSchedules is the list of snapshots scheduled
  419. items:
  420. description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  421. properties:
  422. image:
  423. description: Image is the mirrored image
  424. type: string
  425. items:
  426. description: Items is the list schedules times for a given snapshot
  427. items:
  428. description: SnapshotSchedule is a schedule
  429. properties:
  430. interval:
  431. description: Interval is the interval in which snapshots will be taken
  432. type: string
  433. start_time:
  434. description: StartTime is the snapshot starting time
  435. type: string
  436. type: object
  437. type: array
  438. namespace:
  439. description: Namespace is the RADOS namespace the image is part of
  440. type: string
  441. pool:
  442. description: Pool is the pool name
  443. type: string
  444. type: object
  445. nullable: true
  446. type: array
  447. type: object
  448. type: object
  449. x-kubernetes-preserve-unknown-fields: true
  450. required:
  451. - metadata
  452. - spec
  453. type: object
  454. served: true
  455. storage: true
  456. subresources:
  457. status: {}
  458. ---
  459. apiVersion: apiextensions.k8s.io/v1
  460. kind: CustomResourceDefinition
  461. metadata:
  462. annotations:
  463. controller-gen.kubebuilder.io/version: v0.11.3
  464. creationTimestamp: null
  465. name: cephbucketnotifications.ceph.rook.io
  466. spec:
  467. group: ceph.rook.io
  468. names:
  469. kind: CephBucketNotification
  470. listKind: CephBucketNotificationList
  471. plural: cephbucketnotifications
  472. singular: cephbucketnotification
  473. scope: Namespaced
  474. versions:
  475. - name: v1
  476. schema:
  477. openAPIV3Schema:
  478. description: CephBucketNotification represents a Bucket Notifications
  479. properties:
  480. apiVersion:
  481. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  482. type: string
  483. kind:
  484. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  485. type: string
  486. metadata:
  487. type: object
  488. spec:
  489. description: BucketNotificationSpec represent the spec of a Bucket Notification
  490. properties:
  491. events:
  492. description: List of events that should trigger the notification
  493. items:
  494. description: BucketNotificationSpec represent the event type of the bucket notification
  495. enum:
  496. - s3:ObjectCreated:*
  497. - s3:ObjectCreated:Put
  498. - s3:ObjectCreated:Post
  499. - s3:ObjectCreated:Copy
  500. - s3:ObjectCreated:CompleteMultipartUpload
  501. - s3:ObjectRemoved:*
  502. - s3:ObjectRemoved:Delete
  503. - s3:ObjectRemoved:DeleteMarkerCreated
  504. type: string
  505. type: array
  506. filter:
  507. description: Spec of notification filter
  508. properties:
  509. keyFilters:
  510. description: Filters based on the object's key
  511. items:
  512. description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
  513. properties:
  514. name:
  515. description: Name of the filter - prefix/suffix/regex
  516. enum:
  517. - prefix
  518. - suffix
  519. - regex
  520. type: string
  521. value:
  522. description: Value to filter on
  523. type: string
  524. required:
  525. - name
  526. - value
  527. type: object
  528. type: array
  529. metadataFilters:
  530. description: Filters based on the object's metadata
  531. items:
  532. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  533. properties:
  534. name:
  535. description: Name of the metadata or tag
  536. minLength: 1
  537. type: string
  538. value:
  539. description: Value to filter on
  540. type: string
  541. required:
  542. - name
  543. - value
  544. type: object
  545. type: array
  546. tagFilters:
  547. description: Filters based on the object's tags
  548. items:
  549. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  550. properties:
  551. name:
  552. description: Name of the metadata or tag
  553. minLength: 1
  554. type: string
  555. value:
  556. description: Value to filter on
  557. type: string
  558. required:
  559. - name
  560. - value
  561. type: object
  562. type: array
  563. type: object
  564. topic:
  565. description: The name of the topic associated with this notification
  566. minLength: 1
  567. type: string
  568. required:
  569. - topic
  570. type: object
  571. status:
  572. description: Status represents the status of an object
  573. properties:
  574. conditions:
  575. items:
  576. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  577. properties:
  578. lastHeartbeatTime:
  579. format: date-time
  580. type: string
  581. lastTransitionTime:
  582. format: date-time
  583. type: string
  584. message:
  585. type: string
  586. reason:
  587. description: ConditionReason is a reason for a condition
  588. type: string
  589. status:
  590. type: string
  591. type:
  592. description: ConditionType represent a resource's status
  593. type: string
  594. type: object
  595. type: array
  596. observedGeneration:
  597. description: ObservedGeneration is the latest generation observed by the controller.
  598. format: int64
  599. type: integer
  600. phase:
  601. type: string
  602. type: object
  603. x-kubernetes-preserve-unknown-fields: true
  604. required:
  605. - metadata
  606. - spec
  607. type: object
  608. served: true
  609. storage: true
  610. subresources:
  611. status: {}
  612. ---
  613. apiVersion: apiextensions.k8s.io/v1
  614. kind: CustomResourceDefinition
  615. metadata:
  616. annotations:
  617. controller-gen.kubebuilder.io/version: v0.11.3
  618. creationTimestamp: null
  619. name: cephbuckettopics.ceph.rook.io
  620. spec:
  621. group: ceph.rook.io
  622. names:
  623. kind: CephBucketTopic
  624. listKind: CephBucketTopicList
  625. plural: cephbuckettopics
  626. singular: cephbuckettopic
  627. scope: Namespaced
  628. versions:
  629. - additionalPrinterColumns:
  630. - jsonPath: .status.phase
  631. name: Phase
  632. type: string
  633. name: v1
  634. schema:
  635. openAPIV3Schema:
  636. description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
  637. properties:
  638. apiVersion:
  639. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  640. type: string
  641. kind:
  642. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  643. type: string
  644. metadata:
  645. type: object
  646. spec:
  647. description: BucketTopicSpec represent the spec of a Bucket Topic
  648. properties:
  649. endpoint:
  650. description: Contains the endpoint spec of the topic
  651. properties:
  652. amqp:
  653. description: Spec of AMQP endpoint
  654. properties:
  655. ackLevel:
  656. default: broker
  657. description: The ack level required for this topic (none/broker/routeable)
  658. enum:
  659. - none
  660. - broker
  661. - routeable
  662. type: string
  663. disableVerifySSL:
  664. description: Indicate whether the server certificate is validated by the client or not
  665. type: boolean
  666. exchange:
  667. description: Name of the exchange that is used to route messages based on topics
  668. minLength: 1
  669. type: string
  670. uri:
  671. description: The URI of the AMQP endpoint to push notification to
  672. minLength: 1
  673. type: string
  674. required:
  675. - exchange
  676. - uri
  677. type: object
  678. http:
  679. description: Spec of HTTP endpoint
  680. properties:
  681. disableVerifySSL:
  682. description: Indicate whether the server certificate is validated by the client or not
  683. type: boolean
  684. sendCloudEvents:
  685. description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md'
  686. type: boolean
  687. uri:
  688. description: The URI of the HTTP endpoint to push notification to
  689. minLength: 1
  690. type: string
  691. required:
  692. - uri
  693. type: object
  694. kafka:
  695. description: Spec of Kafka endpoint
  696. properties:
  697. ackLevel:
  698. default: broker
  699. description: The ack level required for this topic (none/broker)
  700. enum:
  701. - none
  702. - broker
  703. type: string
  704. disableVerifySSL:
  705. description: Indicate whether the server certificate is validated by the client or not
  706. type: boolean
  707. uri:
  708. description: The URI of the Kafka endpoint to push notification to
  709. minLength: 1
  710. type: string
  711. useSSL:
  712. description: Indicate whether to use SSL when communicating with the broker
  713. type: boolean
  714. required:
  715. - uri
  716. type: object
  717. type: object
  718. objectStoreName:
  719. description: The name of the object store on which to define the topic
  720. minLength: 1
  721. type: string
  722. objectStoreNamespace:
  723. description: The namespace of the object store on which to define the topic
  724. minLength: 1
  725. type: string
  726. opaqueData:
  727. description: Data which is sent in each event
  728. type: string
  729. persistent:
  730. description: Indication whether notifications to this endpoint are persistent or not
  731. type: boolean
  732. required:
  733. - endpoint
  734. - objectStoreName
  735. - objectStoreNamespace
  736. type: object
  737. status:
  738. description: BucketTopicStatus represents the Status of a CephBucketTopic
  739. properties:
  740. ARN:
  741. description: The ARN of the topic generated by the RGW
  742. nullable: true
  743. type: string
  744. observedGeneration:
  745. description: ObservedGeneration is the latest generation observed by the controller.
  746. format: int64
  747. type: integer
  748. phase:
  749. type: string
  750. type: object
  751. x-kubernetes-preserve-unknown-fields: true
  752. required:
  753. - metadata
  754. - spec
  755. type: object
  756. served: true
  757. storage: true
  758. subresources:
  759. status: {}
  760. ---
  761. apiVersion: apiextensions.k8s.io/v1
  762. kind: CustomResourceDefinition
  763. metadata:
  764. annotations:
  765. controller-gen.kubebuilder.io/version: v0.11.3
  766. creationTimestamp: null
  767. name: cephclients.ceph.rook.io
  768. spec:
  769. group: ceph.rook.io
  770. names:
  771. kind: CephClient
  772. listKind: CephClientList
  773. plural: cephclients
  774. singular: cephclient
  775. scope: Namespaced
  776. versions:
  777. - additionalPrinterColumns:
  778. - jsonPath: .status.phase
  779. name: Phase
  780. type: string
  781. name: v1
  782. schema:
  783. openAPIV3Schema:
  784. description: CephClient represents a Ceph Client
  785. properties:
  786. apiVersion:
  787. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  788. type: string
  789. kind:
  790. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  791. type: string
  792. metadata:
  793. type: object
  794. spec:
  795. description: Spec represents the specification of a Ceph Client
  796. properties:
  797. caps:
  798. additionalProperties:
  799. type: string
  800. type: object
  801. x-kubernetes-preserve-unknown-fields: true
  802. name:
  803. type: string
  804. required:
  805. - caps
  806. type: object
  807. status:
  808. description: Status represents the status of a Ceph Client
  809. properties:
  810. info:
  811. additionalProperties:
  812. type: string
  813. nullable: true
  814. type: object
  815. observedGeneration:
  816. description: ObservedGeneration is the latest generation observed by the controller.
  817. format: int64
  818. type: integer
  819. phase:
  820. description: ConditionType represent a resource's status
  821. type: string
  822. type: object
  823. x-kubernetes-preserve-unknown-fields: true
  824. required:
  825. - metadata
  826. - spec
  827. type: object
  828. served: true
  829. storage: true
  830. subresources:
  831. status: {}
  832. ---
  833. apiVersion: apiextensions.k8s.io/v1
  834. kind: CustomResourceDefinition
  835. metadata:
  836. annotations:
  837. controller-gen.kubebuilder.io/version: v0.11.3
  838. creationTimestamp: null
  839. name: cephclusters.ceph.rook.io
  840. spec:
  841. group: ceph.rook.io
  842. names:
  843. kind: CephCluster
  844. listKind: CephClusterList
  845. plural: cephclusters
  846. singular: cephcluster
  847. scope: Namespaced
  848. versions:
  849. - additionalPrinterColumns:
  850. - description: Directory used on the K8s nodes
  851. jsonPath: .spec.dataDirHostPath
  852. name: DataDirHostPath
  853. type: string
  854. - description: Number of MONs
  855. jsonPath: .spec.mon.count
  856. name: MonCount
  857. type: string
  858. - jsonPath: .metadata.creationTimestamp
  859. name: Age
  860. type: date
  861. - jsonPath: .status.phase
  862. name: Phase
  863. type: string
  864. - description: Message
  865. jsonPath: .status.message
  866. name: Message
  867. type: string
  868. - description: Ceph Health
  869. jsonPath: .status.ceph.health
  870. name: Health
  871. type: string
  872. - jsonPath: .spec.external.enable
  873. name: External
  874. type: boolean
  875. - description: Ceph FSID
  876. jsonPath: .status.ceph.fsid
  877. name: FSID
  878. type: string
  879. name: v1
  880. schema:
  881. openAPIV3Schema:
  882. description: CephCluster is a Ceph storage cluster
  883. properties:
  884. apiVersion:
  885. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  886. type: string
  887. kind:
  888. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  889. type: string
  890. metadata:
  891. type: object
  892. spec:
  893. description: ClusterSpec represents the specification of Ceph Cluster
  894. properties:
  895. annotations:
  896. additionalProperties:
  897. additionalProperties:
  898. type: string
  899. description: Annotations are annotations
  900. type: object
  901. description: The annotations-related configuration to add/set on each Pod related object.
  902. nullable: true
  903. type: object
  904. x-kubernetes-preserve-unknown-fields: true
  905. cephConfig:
  906. additionalProperties:
  907. additionalProperties:
  908. type: string
  909. type: object
  910. description: Ceph Config options
  911. nullable: true
  912. type: object
  913. cephVersion:
  914. description: The version information that instructs Rook to orchestrate a particular version of Ceph.
  915. nullable: true
  916. properties:
  917. allowUnsupported:
  918. description: Whether to allow unsupported versions (do not set to true in production)
  919. type: boolean
  920. image:
  921. description: Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph:<tag> The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags
  922. type: string
  923. imagePullPolicy:
  924. description: ImagePullPolicy describes a policy for if/when to pull a container image One of Always, Never, IfNotPresent.
  925. enum:
  926. - IfNotPresent
  927. - Always
  928. - Never
  929. - ""
  930. type: string
  931. type: object
  932. cleanupPolicy:
  933. description: Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster deletion is not imminent.
  934. nullable: true
  935. properties:
  936. allowUninstallWithVolumes:
  937. description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
  938. type: boolean
  939. confirmation:
  940. description: Confirmation represents the cleanup confirmation
  941. nullable: true
  942. pattern: ^$|^yes-really-destroy-data$
  943. type: string
  944. sanitizeDisks:
  945. description: SanitizeDisks represents way we sanitize disks
  946. nullable: true
  947. properties:
  948. dataSource:
  949. description: DataSource is the data source to use to sanitize the disk with
  950. enum:
  951. - zero
  952. - random
  953. type: string
  954. iteration:
  955. description: Iteration is the number of pass to apply the sanitizing
  956. format: int32
  957. type: integer
  958. method:
  959. description: Method is the method we use to sanitize disks
  960. enum:
  961. - complete
  962. - quick
  963. type: string
  964. type: object
  965. type: object
  966. continueUpgradeAfterChecksEvenIfNotHealthy:
  967. description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
  968. type: boolean
  969. crashCollector:
  970. description: A spec for the crash controller
  971. nullable: true
  972. properties:
  973. daysToRetain:
  974. description: DaysToRetain represents the number of days to retain crash until they get pruned
  975. type: integer
  976. disable:
  977. description: Disable determines whether we should enable the crash collector
  978. type: boolean
  979. type: object
  980. csi:
  981. description: CSI Driver Options applied per cluster.
  982. properties:
  983. cephfs:
  984. description: CephFS defines CSI Driver settings for CephFS driver.
  985. properties:
  986. fuseMountOptions:
  987. description: FuseMountOptions defines the mount options for ceph fuse mounter.
  988. type: string
  989. kernelMountOptions:
  990. description: KernelMountOptions defines the mount options for kernel mounter.
  991. type: string
  992. type: object
  993. readAffinity:
  994. description: ReadAffinity defines the read affinity settings for CSI driver.
  995. properties:
  996. crushLocationLabels:
  997. description: CrushLocationLabels defines which node labels to use as CRUSH location. This should correspond to the values set in the CRUSH map.
  998. items:
  999. type: string
  1000. type: array
  1001. enabled:
  1002. description: Enables read affinity for CSI driver.
  1003. type: boolean
  1004. type: object
  1005. type: object
  1006. dashboard:
  1007. description: Dashboard settings
  1008. nullable: true
  1009. properties:
  1010. enabled:
  1011. description: Enabled determines whether to enable the dashboard
  1012. type: boolean
  1013. port:
  1014. description: Port is the dashboard webserver port
  1015. maximum: 65535
  1016. minimum: 0
  1017. type: integer
  1018. prometheusEndpoint:
  1019. description: Endpoint for the Prometheus host
  1020. type: string
  1021. prometheusEndpointSSLVerify:
  1022. description: Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert.
  1023. type: boolean
  1024. ssl:
  1025. description: SSL determines whether SSL should be used
  1026. type: boolean
  1027. urlPrefix:
  1028. description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
  1029. type: string
  1030. type: object
  1031. dataDirHostPath:
  1032. description: The path on the host where config and data can be persisted
  1033. pattern: ^/(\S+)
  1034. type: string
  1035. x-kubernetes-validations:
  1036. - message: DataDirHostPath is immutable
  1037. rule: self == oldSelf
  1038. disruptionManagement:
  1039. description: A spec for configuring disruption management.
  1040. nullable: true
  1041. properties:
  1042. machineDisruptionBudgetNamespace:
  1043. description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController
  1044. type: string
  1045. manageMachineDisruptionBudgets:
  1046. description: Deprecated. This enables management of machinedisruptionbudgets.
  1047. type: boolean
  1048. managePodBudgets:
  1049. description: This enables management of poddisruptionbudgets
  1050. type: boolean
  1051. osdMaintenanceTimeout:
  1052. description: OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure domains it only works if managePodBudgets is true. the default is 30 minutes
  1053. format: int64
  1054. type: integer
  1055. pgHealthCheckTimeout:
  1056. description: PGHealthCheckTimeout is the time (in minutes) that the operator will wait for the placement groups to become healthy (active+clean) after a drain was completed and OSDs came back up. Rook will continue with the next drain if the timeout exceeds. It only works if managePodBudgets is true. No values or 0 means that the operator will wait until the placement groups are healthy before unblocking the next drain.
  1057. format: int64
  1058. type: integer
  1059. pgHealthyRegex:
  1060. description: PgHealthyRegex is the regular expression that is used to determine which PG states should be considered healthy. The default is `^(active\+clean|active\+clean\+scrubbing|active\+clean\+scrubbing\+deep)$`
  1061. type: string
  1062. type: object
  1063. external:
  1064. description: Whether the Ceph Cluster is running external to this Kubernetes cluster mon, mgr, osd, mds, and discover daemons will not be created for external clusters.
  1065. nullable: true
  1066. properties:
  1067. enable:
  1068. description: Enable determines whether external mode is enabled or not
  1069. type: boolean
  1070. type: object
  1071. x-kubernetes-preserve-unknown-fields: true
  1072. healthCheck:
  1073. description: Internal daemon healthchecks and liveness probe
  1074. nullable: true
  1075. properties:
  1076. daemonHealth:
  1077. description: DaemonHealth is the health check for a given daemon
  1078. nullable: true
  1079. properties:
  1080. mon:
  1081. description: Monitor represents the health check settings for the Ceph monitor
  1082. nullable: true
  1083. properties:
  1084. disabled:
  1085. type: boolean
  1086. interval:
  1087. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1088. type: string
  1089. timeout:
  1090. type: string
  1091. type: object
  1092. osd:
  1093. description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs
  1094. nullable: true
  1095. properties:
  1096. disabled:
  1097. type: boolean
  1098. interval:
  1099. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1100. type: string
  1101. timeout:
  1102. type: string
  1103. type: object
  1104. status:
  1105. description: Status represents the health check settings for the Ceph health
  1106. nullable: true
  1107. properties:
  1108. disabled:
  1109. type: boolean
  1110. interval:
  1111. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1112. type: string
  1113. timeout:
  1114. type: string
  1115. type: object
  1116. type: object
  1117. livenessProbe:
  1118. additionalProperties:
  1119. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1120. properties:
  1121. disabled:
  1122. description: Disabled determines whether probe is disable or not
  1123. type: boolean
  1124. probe:
  1125. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1126. properties:
  1127. exec:
  1128. description: Exec specifies the action to take.
  1129. properties:
  1130. command:
  1131. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1132. items:
  1133. type: string
  1134. type: array
  1135. type: object
  1136. failureThreshold:
  1137. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1138. format: int32
  1139. type: integer
  1140. grpc:
  1141. description: GRPC specifies an action involving a GRPC port.
  1142. properties:
  1143. port:
  1144. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1145. format: int32
  1146. type: integer
  1147. service:
  1148. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  1149. type: string
  1150. required:
  1151. - port
  1152. type: object
  1153. httpGet:
  1154. description: HTTPGet specifies the http request to perform.
  1155. properties:
  1156. host:
  1157. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1158. type: string
  1159. httpHeaders:
  1160. description: Custom headers to set in the request. HTTP allows repeated headers.
  1161. items:
  1162. description: HTTPHeader describes a custom header to be used in HTTP probes
  1163. properties:
  1164. name:
  1165. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1166. type: string
  1167. value:
  1168. description: The header field value
  1169. type: string
  1170. required:
  1171. - name
  1172. - value
  1173. type: object
  1174. type: array
  1175. path:
  1176. description: Path to access on the HTTP server.
  1177. type: string
  1178. port:
  1179. anyOf:
  1180. - type: integer
  1181. - type: string
  1182. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1183. x-kubernetes-int-or-string: true
  1184. scheme:
  1185. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1186. type: string
  1187. required:
  1188. - port
  1189. type: object
  1190. initialDelaySeconds:
  1191. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1192. format: int32
  1193. type: integer
  1194. periodSeconds:
  1195. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1196. format: int32
  1197. type: integer
  1198. successThreshold:
  1199. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1200. format: int32
  1201. type: integer
  1202. tcpSocket:
  1203. description: TCPSocket specifies an action involving a TCP port.
  1204. properties:
  1205. host:
  1206. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1207. type: string
  1208. port:
  1209. anyOf:
  1210. - type: integer
  1211. - type: string
  1212. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1213. x-kubernetes-int-or-string: true
  1214. required:
  1215. - port
  1216. type: object
  1217. terminationGracePeriodSeconds:
  1218. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  1219. format: int64
  1220. type: integer
  1221. timeoutSeconds:
  1222. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1223. format: int32
  1224. type: integer
  1225. type: object
  1226. type: object
  1227. description: LivenessProbe allows changing the livenessProbe configuration for a given daemon
  1228. type: object
  1229. startupProbe:
  1230. additionalProperties:
  1231. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1232. properties:
  1233. disabled:
  1234. description: Disabled determines whether probe is disable or not
  1235. type: boolean
  1236. probe:
  1237. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1238. properties:
  1239. exec:
  1240. description: Exec specifies the action to take.
  1241. properties:
  1242. command:
  1243. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1244. items:
  1245. type: string
  1246. type: array
  1247. type: object
  1248. failureThreshold:
  1249. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1250. format: int32
  1251. type: integer
  1252. grpc:
  1253. description: GRPC specifies an action involving a GRPC port.
  1254. properties:
  1255. port:
  1256. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1257. format: int32
  1258. type: integer
  1259. service:
  1260. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  1261. type: string
  1262. required:
  1263. - port
  1264. type: object
  1265. httpGet:
  1266. description: HTTPGet specifies the http request to perform.
  1267. properties:
  1268. host:
  1269. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1270. type: string
  1271. httpHeaders:
  1272. description: Custom headers to set in the request. HTTP allows repeated headers.
  1273. items:
  1274. description: HTTPHeader describes a custom header to be used in HTTP probes
  1275. properties:
  1276. name:
  1277. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1278. type: string
  1279. value:
  1280. description: The header field value
  1281. type: string
  1282. required:
  1283. - name
  1284. - value
  1285. type: object
  1286. type: array
  1287. path:
  1288. description: Path to access on the HTTP server.
  1289. type: string
  1290. port:
  1291. anyOf:
  1292. - type: integer
  1293. - type: string
  1294. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1295. x-kubernetes-int-or-string: true
  1296. scheme:
  1297. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1298. type: string
  1299. required:
  1300. - port
  1301. type: object
  1302. initialDelaySeconds:
  1303. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1304. format: int32
  1305. type: integer
  1306. periodSeconds:
  1307. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1308. format: int32
  1309. type: integer
  1310. successThreshold:
  1311. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1312. format: int32
  1313. type: integer
  1314. tcpSocket:
  1315. description: TCPSocket specifies an action involving a TCP port.
  1316. properties:
  1317. host:
  1318. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1319. type: string
  1320. port:
  1321. anyOf:
  1322. - type: integer
  1323. - type: string
  1324. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1325. x-kubernetes-int-or-string: true
  1326. required:
  1327. - port
  1328. type: object
  1329. terminationGracePeriodSeconds:
  1330. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  1331. format: int64
  1332. type: integer
  1333. timeoutSeconds:
  1334. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1335. format: int32
  1336. type: integer
  1337. type: object
  1338. type: object
  1339. description: StartupProbe allows changing the startupProbe configuration for a given daemon
  1340. type: object
  1341. type: object
  1342. labels:
  1343. additionalProperties:
  1344. additionalProperties:
  1345. type: string
  1346. description: Labels are label for a given daemons
  1347. type: object
  1348. description: The labels-related configuration to add/set on each Pod related object.
  1349. nullable: true
  1350. type: object
  1351. x-kubernetes-preserve-unknown-fields: true
  1352. logCollector:
  1353. description: Logging represents loggings settings
  1354. nullable: true
  1355. properties:
  1356. enabled:
  1357. description: Enabled represents whether the log collector is enabled
  1358. type: boolean
  1359. maxLogSize:
  1360. anyOf:
  1361. - type: integer
  1362. - type: string
  1363. description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
  1364. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1365. x-kubernetes-int-or-string: true
  1366. periodicity:
  1367. description: Periodicity is the periodicity of the log rotation.
  1368. pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$
  1369. type: string
  1370. type: object
  1371. mgr:
  1372. description: A spec for mgr related options
  1373. nullable: true
  1374. properties:
  1375. allowMultiplePerNode:
  1376. description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
  1377. type: boolean
  1378. count:
  1379. description: Count is the number of manager daemons to run
  1380. maximum: 5
  1381. minimum: 0
  1382. type: integer
  1383. modules:
  1384. description: Modules is the list of ceph manager modules to enable/disable
  1385. items:
  1386. description: Module represents mgr modules that the user wants to enable or disable
  1387. properties:
  1388. enabled:
  1389. description: Enabled determines whether a module should be enabled or not
  1390. type: boolean
  1391. name:
  1392. description: Name is the name of the ceph manager module
  1393. type: string
  1394. type: object
  1395. nullable: true
  1396. type: array
  1397. type: object
  1398. mon:
  1399. description: A spec for mon related options
  1400. nullable: true
  1401. properties:
  1402. allowMultiplePerNode:
  1403. description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
  1404. type: boolean
  1405. count:
  1406. description: Count is the number of Ceph monitors
  1407. maximum: 9
  1408. minimum: 0
  1409. type: integer
  1410. failureDomainLabel:
  1411. type: string
  1412. stretchCluster:
  1413. description: StretchCluster is the stretch cluster specification
  1414. properties:
  1415. failureDomainLabel:
  1416. description: 'FailureDomainLabel the failure domain name (e,g: zone)'
  1417. type: string
  1418. subFailureDomain:
  1419. description: SubFailureDomain is the failure domain within a zone
  1420. type: string
  1421. zones:
  1422. description: Zones is the list of zones
  1423. items:
  1424. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  1425. properties:
  1426. arbiter:
  1427. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  1428. type: boolean
  1429. name:
  1430. description: Name is the name of the zone
  1431. type: string
  1432. volumeClaimTemplate:
  1433. description: VolumeClaimTemplate is the PVC template
  1434. properties:
  1435. apiVersion:
  1436. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1437. type: string
  1438. kind:
  1439. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1440. type: string
  1441. metadata:
  1442. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1443. properties:
  1444. annotations:
  1445. additionalProperties:
  1446. type: string
  1447. type: object
  1448. finalizers:
  1449. items:
  1450. type: string
  1451. type: array
  1452. labels:
  1453. additionalProperties:
  1454. type: string
  1455. type: object
  1456. name:
  1457. type: string
  1458. namespace:
  1459. type: string
  1460. type: object
  1461. spec:
  1462. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1463. properties:
  1464. accessModes:
  1465. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1466. items:
  1467. type: string
  1468. type: array
  1469. dataSource:
  1470. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  1471. properties:
  1472. apiGroup:
  1473. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1474. type: string
  1475. kind:
  1476. description: Kind is the type of resource being referenced
  1477. type: string
  1478. name:
  1479. description: Name is the name of resource being referenced
  1480. type: string
  1481. required:
  1482. - kind
  1483. - name
  1484. type: object
  1485. x-kubernetes-map-type: atomic
  1486. dataSourceRef:
  1487. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  1488. properties:
  1489. apiGroup:
  1490. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1491. type: string
  1492. kind:
  1493. description: Kind is the type of resource being referenced
  1494. type: string
  1495. name:
  1496. description: Name is the name of resource being referenced
  1497. type: string
  1498. namespace:
  1499. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  1500. type: string
  1501. required:
  1502. - kind
  1503. - name
  1504. type: object
  1505. resources:
  1506. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1507. properties:
  1508. claims:
  1509. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  1510. items:
  1511. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1512. properties:
  1513. name:
  1514. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  1515. type: string
  1516. required:
  1517. - name
  1518. type: object
  1519. type: array
  1520. x-kubernetes-list-map-keys:
  1521. - name
  1522. x-kubernetes-list-type: map
  1523. limits:
  1524. additionalProperties:
  1525. anyOf:
  1526. - type: integer
  1527. - type: string
  1528. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1529. x-kubernetes-int-or-string: true
  1530. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1531. type: object
  1532. requests:
  1533. additionalProperties:
  1534. anyOf:
  1535. - type: integer
  1536. - type: string
  1537. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1538. x-kubernetes-int-or-string: true
  1539. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1540. type: object
  1541. type: object
  1542. selector:
  1543. description: selector is a label query over volumes to consider for binding.
  1544. properties:
  1545. matchExpressions:
  1546. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1547. items:
  1548. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1549. properties:
  1550. key:
  1551. description: key is the label key that the selector applies to.
  1552. type: string
  1553. operator:
  1554. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1555. type: string
  1556. values:
  1557. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1558. items:
  1559. type: string
  1560. type: array
  1561. required:
  1562. - key
  1563. - operator
  1564. type: object
  1565. type: array
  1566. matchLabels:
  1567. additionalProperties:
  1568. type: string
  1569. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1570. type: object
  1571. type: object
  1572. x-kubernetes-map-type: atomic
  1573. storageClassName:
  1574. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1575. type: string
  1576. volumeMode:
  1577. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1578. type: string
  1579. volumeName:
  1580. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1581. type: string
  1582. type: object
  1583. status:
  1584. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1585. properties:
  1586. accessModes:
  1587. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1588. items:
  1589. type: string
  1590. type: array
  1591. allocatedResourceStatuses:
  1592. additionalProperties:
  1593. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  1594. type: string
  1595. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1596. type: object
  1597. x-kubernetes-map-type: granular
  1598. allocatedResources:
  1599. additionalProperties:
  1600. anyOf:
  1601. - type: integer
  1602. - type: string
  1603. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1604. x-kubernetes-int-or-string: true
  1605. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1606. type: object
  1607. capacity:
  1608. additionalProperties:
  1609. anyOf:
  1610. - type: integer
  1611. - type: string
  1612. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1613. x-kubernetes-int-or-string: true
  1614. description: capacity represents the actual resources of the underlying volume.
  1615. type: object
  1616. conditions:
  1617. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  1618. items:
  1619. description: PersistentVolumeClaimCondition contains details about state of pvc
  1620. properties:
  1621. lastProbeTime:
  1622. description: lastProbeTime is the time we probed the condition.
  1623. format: date-time
  1624. type: string
  1625. lastTransitionTime:
  1626. description: lastTransitionTime is the time the condition transitioned from one status to another.
  1627. format: date-time
  1628. type: string
  1629. message:
  1630. description: message is the human-readable message indicating details about last transition.
  1631. type: string
  1632. reason:
  1633. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  1634. type: string
  1635. status:
  1636. type: string
  1637. type:
  1638. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  1639. type: string
  1640. required:
  1641. - status
  1642. - type
  1643. type: object
  1644. type: array
  1645. phase:
  1646. description: phase represents the current phase of PersistentVolumeClaim.
  1647. type: string
  1648. type: object
  1649. type: object
  1650. x-kubernetes-preserve-unknown-fields: true
  1651. type: object
  1652. nullable: true
  1653. type: array
  1654. type: object
  1655. volumeClaimTemplate:
  1656. description: VolumeClaimTemplate is the PVC definition
  1657. properties:
  1658. apiVersion:
  1659. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1660. type: string
  1661. kind:
  1662. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1663. type: string
  1664. metadata:
  1665. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1666. properties:
  1667. annotations:
  1668. additionalProperties:
  1669. type: string
  1670. type: object
  1671. finalizers:
  1672. items:
  1673. type: string
  1674. type: array
  1675. labels:
  1676. additionalProperties:
  1677. type: string
  1678. type: object
  1679. name:
  1680. type: string
  1681. namespace:
  1682. type: string
  1683. type: object
  1684. spec:
  1685. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1686. properties:
  1687. accessModes:
  1688. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1689. items:
  1690. type: string
  1691. type: array
  1692. dataSource:
  1693. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  1694. properties:
  1695. apiGroup:
  1696. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1697. type: string
  1698. kind:
  1699. description: Kind is the type of resource being referenced
  1700. type: string
  1701. name:
  1702. description: Name is the name of resource being referenced
  1703. type: string
  1704. required:
  1705. - kind
  1706. - name
  1707. type: object
  1708. x-kubernetes-map-type: atomic
  1709. dataSourceRef:
  1710. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  1711. properties:
  1712. apiGroup:
  1713. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1714. type: string
  1715. kind:
  1716. description: Kind is the type of resource being referenced
  1717. type: string
  1718. name:
  1719. description: Name is the name of resource being referenced
  1720. type: string
  1721. namespace:
  1722. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  1723. type: string
  1724. required:
  1725. - kind
  1726. - name
  1727. type: object
  1728. resources:
  1729. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1730. properties:
  1731. claims:
  1732. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  1733. items:
  1734. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1735. properties:
  1736. name:
  1737. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  1738. type: string
  1739. required:
  1740. - name
  1741. type: object
  1742. type: array
  1743. x-kubernetes-list-map-keys:
  1744. - name
  1745. x-kubernetes-list-type: map
  1746. limits:
  1747. additionalProperties:
  1748. anyOf:
  1749. - type: integer
  1750. - type: string
  1751. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1752. x-kubernetes-int-or-string: true
  1753. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1754. type: object
  1755. requests:
  1756. additionalProperties:
  1757. anyOf:
  1758. - type: integer
  1759. - type: string
  1760. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1761. x-kubernetes-int-or-string: true
  1762. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1763. type: object
  1764. type: object
  1765. selector:
  1766. description: selector is a label query over volumes to consider for binding.
  1767. properties:
  1768. matchExpressions:
  1769. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1770. items:
  1771. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1772. properties:
  1773. key:
  1774. description: key is the label key that the selector applies to.
  1775. type: string
  1776. operator:
  1777. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1778. type: string
  1779. values:
  1780. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1781. items:
  1782. type: string
  1783. type: array
  1784. required:
  1785. - key
  1786. - operator
  1787. type: object
  1788. type: array
  1789. matchLabels:
  1790. additionalProperties:
  1791. type: string
  1792. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1793. type: object
  1794. type: object
  1795. x-kubernetes-map-type: atomic
  1796. storageClassName:
  1797. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1798. type: string
  1799. volumeMode:
  1800. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1801. type: string
  1802. volumeName:
  1803. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1804. type: string
  1805. type: object
  1806. status:
  1807. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1808. properties:
  1809. accessModes:
  1810. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1811. items:
  1812. type: string
  1813. type: array
  1814. allocatedResourceStatuses:
  1815. additionalProperties:
  1816. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  1817. type: string
  1818. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1819. type: object
  1820. x-kubernetes-map-type: granular
  1821. allocatedResources:
  1822. additionalProperties:
  1823. anyOf:
  1824. - type: integer
  1825. - type: string
  1826. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1827. x-kubernetes-int-or-string: true
  1828. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1829. type: object
  1830. capacity:
  1831. additionalProperties:
  1832. anyOf:
  1833. - type: integer
  1834. - type: string
  1835. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1836. x-kubernetes-int-or-string: true
  1837. description: capacity represents the actual resources of the underlying volume.
  1838. type: object
  1839. conditions:
  1840. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  1841. items:
  1842. description: PersistentVolumeClaimCondition contains details about state of pvc
  1843. properties:
  1844. lastProbeTime:
  1845. description: lastProbeTime is the time we probed the condition.
  1846. format: date-time
  1847. type: string
  1848. lastTransitionTime:
  1849. description: lastTransitionTime is the time the condition transitioned from one status to another.
  1850. format: date-time
  1851. type: string
  1852. message:
  1853. description: message is the human-readable message indicating details about last transition.
  1854. type: string
  1855. reason:
  1856. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  1857. type: string
  1858. status:
  1859. type: string
  1860. type:
  1861. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  1862. type: string
  1863. required:
  1864. - status
  1865. - type
  1866. type: object
  1867. type: array
  1868. phase:
  1869. description: phase represents the current phase of PersistentVolumeClaim.
  1870. type: string
  1871. type: object
  1872. type: object
  1873. x-kubernetes-preserve-unknown-fields: true
  1874. zones:
  1875. description: Zones are specified when we want to provide zonal awareness to mons
  1876. items:
  1877. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  1878. properties:
  1879. arbiter:
  1880. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  1881. type: boolean
  1882. name:
  1883. description: Name is the name of the zone
  1884. type: string
  1885. volumeClaimTemplate:
  1886. description: VolumeClaimTemplate is the PVC template
  1887. properties:
  1888. apiVersion:
  1889. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1890. type: string
  1891. kind:
  1892. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1893. type: string
  1894. metadata:
  1895. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1896. properties:
  1897. annotations:
  1898. additionalProperties:
  1899. type: string
  1900. type: object
  1901. finalizers:
  1902. items:
  1903. type: string
  1904. type: array
  1905. labels:
  1906. additionalProperties:
  1907. type: string
  1908. type: object
  1909. name:
  1910. type: string
  1911. namespace:
  1912. type: string
  1913. type: object
  1914. spec:
  1915. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1916. properties:
  1917. accessModes:
  1918. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1919. items:
  1920. type: string
  1921. type: array
  1922. dataSource:
  1923. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  1924. properties:
  1925. apiGroup:
  1926. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1927. type: string
  1928. kind:
  1929. description: Kind is the type of resource being referenced
  1930. type: string
  1931. name:
  1932. description: Name is the name of resource being referenced
  1933. type: string
  1934. required:
  1935. - kind
  1936. - name
  1937. type: object
  1938. x-kubernetes-map-type: atomic
  1939. dataSourceRef:
  1940. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  1941. properties:
  1942. apiGroup:
  1943. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1944. type: string
  1945. kind:
  1946. description: Kind is the type of resource being referenced
  1947. type: string
  1948. name:
  1949. description: Name is the name of resource being referenced
  1950. type: string
  1951. namespace:
  1952. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  1953. type: string
  1954. required:
  1955. - kind
  1956. - name
  1957. type: object
  1958. resources:
  1959. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1960. properties:
  1961. claims:
  1962. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  1963. items:
  1964. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1965. properties:
  1966. name:
  1967. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  1968. type: string
  1969. required:
  1970. - name
  1971. type: object
  1972. type: array
  1973. x-kubernetes-list-map-keys:
  1974. - name
  1975. x-kubernetes-list-type: map
  1976. limits:
  1977. additionalProperties:
  1978. anyOf:
  1979. - type: integer
  1980. - type: string
  1981. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1982. x-kubernetes-int-or-string: true
  1983. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1984. type: object
  1985. requests:
  1986. additionalProperties:
  1987. anyOf:
  1988. - type: integer
  1989. - type: string
  1990. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1991. x-kubernetes-int-or-string: true
  1992. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1993. type: object
  1994. type: object
  1995. selector:
  1996. description: selector is a label query over volumes to consider for binding.
  1997. properties:
  1998. matchExpressions:
  1999. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2000. items:
  2001. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2002. properties:
  2003. key:
  2004. description: key is the label key that the selector applies to.
  2005. type: string
  2006. operator:
  2007. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2008. type: string
  2009. values:
  2010. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2011. items:
  2012. type: string
  2013. type: array
  2014. required:
  2015. - key
  2016. - operator
  2017. type: object
  2018. type: array
  2019. matchLabels:
  2020. additionalProperties:
  2021. type: string
  2022. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2023. type: object
  2024. type: object
  2025. x-kubernetes-map-type: atomic
  2026. storageClassName:
  2027. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  2028. type: string
  2029. volumeMode:
  2030. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  2031. type: string
  2032. volumeName:
  2033. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2034. type: string
  2035. type: object
  2036. status:
  2037. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2038. properties:
  2039. accessModes:
  2040. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  2041. items:
  2042. type: string
  2043. type: array
  2044. allocatedResourceStatuses:
  2045. additionalProperties:
  2046. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  2047. type: string
  2048. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  2049. type: object
  2050. x-kubernetes-map-type: granular
  2051. allocatedResources:
  2052. additionalProperties:
  2053. anyOf:
  2054. - type: integer
  2055. - type: string
  2056. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2057. x-kubernetes-int-or-string: true
  2058. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  2059. type: object
  2060. capacity:
  2061. additionalProperties:
  2062. anyOf:
  2063. - type: integer
  2064. - type: string
  2065. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2066. x-kubernetes-int-or-string: true
  2067. description: capacity represents the actual resources of the underlying volume.
  2068. type: object
  2069. conditions:
  2070. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  2071. items:
  2072. description: PersistentVolumeClaimCondition contains details about state of pvc
  2073. properties:
  2074. lastProbeTime:
  2075. description: lastProbeTime is the time we probed the condition.
  2076. format: date-time
  2077. type: string
  2078. lastTransitionTime:
  2079. description: lastTransitionTime is the time the condition transitioned from one status to another.
  2080. format: date-time
  2081. type: string
  2082. message:
  2083. description: message is the human-readable message indicating details about last transition.
  2084. type: string
  2085. reason:
  2086. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  2087. type: string
  2088. status:
  2089. type: string
  2090. type:
  2091. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  2092. type: string
  2093. required:
  2094. - status
  2095. - type
  2096. type: object
  2097. type: array
  2098. phase:
  2099. description: phase represents the current phase of PersistentVolumeClaim.
  2100. type: string
  2101. type: object
  2102. type: object
  2103. x-kubernetes-preserve-unknown-fields: true
  2104. type: object
  2105. type: array
  2106. type: object
  2107. x-kubernetes-validations:
  2108. - message: zones must be less than or equal to count
  2109. rule: '!has(self.zones) || (has(self.zones) && (size(self.zones) <= self.count))'
  2110. - message: stretchCluster zones must be equal to 3
  2111. rule: '!has(self.stretchCluster) || (has(self.stretchCluster) && (size(self.stretchCluster.zones) > 0) && (size(self.stretchCluster.zones) == 3))'
  2112. monitoring:
  2113. description: Prometheus based Monitoring settings
  2114. nullable: true
  2115. properties:
  2116. enabled:
  2117. description: Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus types must exist or the creation will fail. Default is false.
  2118. type: boolean
  2119. externalMgrEndpoints:
  2120. description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
  2121. items:
  2122. description: EndpointAddress is a tuple that describes single IP address.
  2123. properties:
  2124. hostname:
  2125. description: The Hostname of this endpoint
  2126. type: string
  2127. ip:
  2128. description: The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).
  2129. type: string
  2130. nodeName:
  2131. description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.'
  2132. type: string
  2133. targetRef:
  2134. description: Reference to object providing the endpoint.
  2135. properties:
  2136. apiVersion:
  2137. description: API version of the referent.
  2138. type: string
  2139. fieldPath:
  2140. description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
  2141. type: string
  2142. kind:
  2143. description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2144. type: string
  2145. name:
  2146. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2147. type: string
  2148. namespace:
  2149. description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2150. type: string
  2151. resourceVersion:
  2152. description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2153. type: string
  2154. uid:
  2155. description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2156. type: string
  2157. type: object
  2158. x-kubernetes-map-type: atomic
  2159. required:
  2160. - ip
  2161. type: object
  2162. x-kubernetes-map-type: atomic
  2163. nullable: true
  2164. type: array
  2165. externalMgrPrometheusPort:
  2166. description: ExternalMgrPrometheusPort Prometheus exporter port
  2167. maximum: 65535
  2168. minimum: 0
  2169. type: integer
  2170. interval:
  2171. description: Interval determines prometheus scrape interval
  2172. type: string
  2173. metricsDisabled:
  2174. description: Whether to disable the metrics reported by Ceph. If false, the prometheus mgr module and Ceph exporter are enabled. If true, the prometheus mgr module and Ceph exporter are both disabled. Default is false.
  2175. type: boolean
  2176. port:
  2177. description: Port is the prometheus server port
  2178. maximum: 65535
  2179. minimum: 0
  2180. type: integer
  2181. type: object
  2182. network:
  2183. description: Network related configuration
  2184. nullable: true
  2185. properties:
  2186. addressRanges:
  2187. description: AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or 'cluster_network' configurations. This config section may be used for the "host" or "multus" network providers.
  2188. nullable: true
  2189. properties:
  2190. cluster:
  2191. description: Cluster defines a list of CIDRs to use for Ceph cluster network communication.
  2192. items:
  2193. description: "An IPv4 or IPv6 network CIDR. \n This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code."
  2194. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2195. type: string
  2196. type: array
  2197. public:
  2198. description: Public defines a list of CIDRs to use for Ceph public network communication.
  2199. items:
  2200. description: "An IPv4 or IPv6 network CIDR. \n This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code."
  2201. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2202. type: string
  2203. type: array
  2204. type: object
  2205. connections:
  2206. description: Settings for network connections such as compression and encryption across the wire.
  2207. nullable: true
  2208. properties:
  2209. compression:
  2210. description: Compression settings for the network connections.
  2211. nullable: true
  2212. properties:
  2213. enabled:
  2214. description: Whether to compress the data in transit across the wire. The default is not set.
  2215. type: boolean
  2216. type: object
  2217. encryption:
  2218. description: Encryption settings for the network connections.
  2219. nullable: true
  2220. properties:
  2221. enabled:
  2222. description: Whether to encrypt the data in transit across the wire to prevent eavesdropping the data on the network. The default is not set. Even if encryption is not enabled, clients still establish a strong initial authentication for the connection and data integrity is still validated with a crc check. When encryption is enabled, all communication between clients and Ceph daemons, or between Ceph daemons will be encrypted.
  2223. type: boolean
  2224. type: object
  2225. requireMsgr2:
  2226. description: Whether to require msgr2 (port 3300) even if compression or encryption are not enabled. If true, the msgr1 port (6789) will be disabled. Requires a kernel that supports msgr2 (kernel 5.11 or CentOS 8.4 or newer).
  2227. type: boolean
  2228. type: object
  2229. dualStack:
  2230. description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
  2231. type: boolean
  2232. hostNetwork:
  2233. description: HostNetwork to enable host network. If host networking is enabled or disabled on a running cluster, then the operator will automatically fail over all the mons to apply the new network settings.
  2234. type: boolean
  2235. ipFamily:
  2236. description: IPFamily is the single stack IPv6 or IPv4 protocol
  2237. enum:
  2238. - IPv4
  2239. - IPv6
  2240. nullable: true
  2241. type: string
  2242. multiClusterService:
  2243. description: Enable multiClusterService to export the Services between peer clusters
  2244. properties:
  2245. clusterID:
  2246. description: 'ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported services. For example: <clusterid>.<svc>.<ns>.svc.clusterset.local'
  2247. type: string
  2248. enabled:
  2249. description: Enable multiClusterService to export the mon and OSD services to peer cluster. Ensure that peer clusters are connected using an MCS API compatible application, like Globalnet Submariner.
  2250. type: boolean
  2251. type: object
  2252. provider:
  2253. description: Provider is what provides network connectivity to the cluster e.g. "host" or "multus". If the Provider is updated from being empty to "host" on a running cluster, then the operator will automatically fail over all the mons to apply the "host" network settings.
  2254. enum:
  2255. - ""
  2256. - host
  2257. - multus
  2258. nullable: true
  2259. type: string
  2260. x-kubernetes-validations:
  2261. - message: network provider must be disabled (reverted to empty string) before a new provider is enabled
  2262. rule: self == '' || self == oldSelf
  2263. selectors:
  2264. additionalProperties:
  2265. type: string
  2266. description: "Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster networks when the \"multus\" network provider is used. This config section is not used for other network providers. \n Valid keys are \"public\" and \"cluster\". Refer to Ceph networking documentation for more: https://docs.ceph.com/en/reef/rados/configuration/network-config-ref/ \n Refer to Multus network annotation documentation for help selecting values: https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation \n Rook will make a best-effort attempt to automatically detect CIDR address ranges for given network attachment definitions. Rook's methods are robust but may be imprecise for sufficiently complicated networks. Rook's auto-detection process obtains a new IP address lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only partially detects, or if underlying networks do not support reusing old IP addresses, it is best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster. \n As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client traffic and a theoretical Rook-only network for Ceph replication traffic as shown: selectors: public: \"default/cluster-fast-net\" cluster: \"rook-ceph/ceph-backend-net\""
  2267. nullable: true
  2268. type: object
  2269. type: object
  2270. x-kubernetes-preserve-unknown-fields: true
  2271. x-kubernetes-validations:
  2272. - message: at least one network selector must be specified when using multus
  2273. rule: '!has(self.provider) || (self.provider != ''multus'' || (self.provider == ''multus'' && size(self.selectors) > 0))'
  2274. placement:
  2275. additionalProperties:
  2276. description: Placement is the placement for an object
  2277. properties:
  2278. nodeAffinity:
  2279. description: NodeAffinity is a group of node affinity scheduling rules
  2280. properties:
  2281. preferredDuringSchedulingIgnoredDuringExecution:
  2282. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  2283. items:
  2284. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  2285. properties:
  2286. preference:
  2287. description: A node selector term, associated with the corresponding weight.
  2288. properties:
  2289. matchExpressions:
  2290. description: A list of node selector requirements by node's labels.
  2291. items:
  2292. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2293. properties:
  2294. key:
  2295. description: The label key that the selector applies to.
  2296. type: string
  2297. operator:
  2298. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2299. type: string
  2300. values:
  2301. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2302. items:
  2303. type: string
  2304. type: array
  2305. required:
  2306. - key
  2307. - operator
  2308. type: object
  2309. type: array
  2310. matchFields:
  2311. description: A list of node selector requirements by node's fields.
  2312. items:
  2313. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2314. properties:
  2315. key:
  2316. description: The label key that the selector applies to.
  2317. type: string
  2318. operator:
  2319. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2320. type: string
  2321. values:
  2322. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2323. items:
  2324. type: string
  2325. type: array
  2326. required:
  2327. - key
  2328. - operator
  2329. type: object
  2330. type: array
  2331. type: object
  2332. x-kubernetes-map-type: atomic
  2333. weight:
  2334. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  2335. format: int32
  2336. type: integer
  2337. required:
  2338. - preference
  2339. - weight
  2340. type: object
  2341. type: array
  2342. requiredDuringSchedulingIgnoredDuringExecution:
  2343. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  2344. properties:
  2345. nodeSelectorTerms:
  2346. description: Required. A list of node selector terms. The terms are ORed.
  2347. items:
  2348. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  2349. properties:
  2350. matchExpressions:
  2351. description: A list of node selector requirements by node's labels.
  2352. items:
  2353. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2354. properties:
  2355. key:
  2356. description: The label key that the selector applies to.
  2357. type: string
  2358. operator:
  2359. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2360. type: string
  2361. values:
  2362. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2363. items:
  2364. type: string
  2365. type: array
  2366. required:
  2367. - key
  2368. - operator
  2369. type: object
  2370. type: array
  2371. matchFields:
  2372. description: A list of node selector requirements by node's fields.
  2373. items:
  2374. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2375. properties:
  2376. key:
  2377. description: The label key that the selector applies to.
  2378. type: string
  2379. operator:
  2380. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2381. type: string
  2382. values:
  2383. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2384. items:
  2385. type: string
  2386. type: array
  2387. required:
  2388. - key
  2389. - operator
  2390. type: object
  2391. type: array
  2392. type: object
  2393. x-kubernetes-map-type: atomic
  2394. type: array
  2395. required:
  2396. - nodeSelectorTerms
  2397. type: object
  2398. x-kubernetes-map-type: atomic
  2399. type: object
  2400. podAffinity:
  2401. description: PodAffinity is a group of inter pod affinity scheduling rules
  2402. properties:
  2403. preferredDuringSchedulingIgnoredDuringExecution:
  2404. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2405. items:
  2406. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2407. properties:
  2408. podAffinityTerm:
  2409. description: Required. A pod affinity term, associated with the corresponding weight.
  2410. properties:
  2411. labelSelector:
  2412. description: A label query over a set of resources, in this case pods.
  2413. properties:
  2414. matchExpressions:
  2415. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2416. items:
  2417. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2418. properties:
  2419. key:
  2420. description: key is the label key that the selector applies to.
  2421. type: string
  2422. operator:
  2423. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2424. type: string
  2425. values:
  2426. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2427. items:
  2428. type: string
  2429. type: array
  2430. required:
  2431. - key
  2432. - operator
  2433. type: object
  2434. type: array
  2435. matchLabels:
  2436. additionalProperties:
  2437. type: string
  2438. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2439. type: object
  2440. type: object
  2441. x-kubernetes-map-type: atomic
  2442. namespaceSelector:
  2443. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2444. properties:
  2445. matchExpressions:
  2446. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2447. items:
  2448. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2449. properties:
  2450. key:
  2451. description: key is the label key that the selector applies to.
  2452. type: string
  2453. operator:
  2454. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2455. type: string
  2456. values:
  2457. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2458. items:
  2459. type: string
  2460. type: array
  2461. required:
  2462. - key
  2463. - operator
  2464. type: object
  2465. type: array
  2466. matchLabels:
  2467. additionalProperties:
  2468. type: string
  2469. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2470. type: object
  2471. type: object
  2472. x-kubernetes-map-type: atomic
  2473. namespaces:
  2474. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2475. items:
  2476. type: string
  2477. type: array
  2478. topologyKey:
  2479. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2480. type: string
  2481. required:
  2482. - topologyKey
  2483. type: object
  2484. weight:
  2485. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2486. format: int32
  2487. type: integer
  2488. required:
  2489. - podAffinityTerm
  2490. - weight
  2491. type: object
  2492. type: array
  2493. requiredDuringSchedulingIgnoredDuringExecution:
  2494. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2495. items:
  2496. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2497. properties:
  2498. labelSelector:
  2499. description: A label query over a set of resources, in this case pods.
  2500. properties:
  2501. matchExpressions:
  2502. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2503. items:
  2504. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2505. properties:
  2506. key:
  2507. description: key is the label key that the selector applies to.
  2508. type: string
  2509. operator:
  2510. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2511. type: string
  2512. values:
  2513. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2514. items:
  2515. type: string
  2516. type: array
  2517. required:
  2518. - key
  2519. - operator
  2520. type: object
  2521. type: array
  2522. matchLabels:
  2523. additionalProperties:
  2524. type: string
  2525. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2526. type: object
  2527. type: object
  2528. x-kubernetes-map-type: atomic
  2529. namespaceSelector:
  2530. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2531. properties:
  2532. matchExpressions:
  2533. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2534. items:
  2535. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2536. properties:
  2537. key:
  2538. description: key is the label key that the selector applies to.
  2539. type: string
  2540. operator:
  2541. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2542. type: string
  2543. values:
  2544. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2545. items:
  2546. type: string
  2547. type: array
  2548. required:
  2549. - key
  2550. - operator
  2551. type: object
  2552. type: array
  2553. matchLabels:
  2554. additionalProperties:
  2555. type: string
  2556. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2557. type: object
  2558. type: object
  2559. x-kubernetes-map-type: atomic
  2560. namespaces:
  2561. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2562. items:
  2563. type: string
  2564. type: array
  2565. topologyKey:
  2566. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2567. type: string
  2568. required:
  2569. - topologyKey
  2570. type: object
  2571. type: array
  2572. type: object
  2573. podAntiAffinity:
  2574. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  2575. properties:
  2576. preferredDuringSchedulingIgnoredDuringExecution:
  2577. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2578. items:
  2579. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2580. properties:
  2581. podAffinityTerm:
  2582. description: Required. A pod affinity term, associated with the corresponding weight.
  2583. properties:
  2584. labelSelector:
  2585. description: A label query over a set of resources, in this case pods.
  2586. properties:
  2587. matchExpressions:
  2588. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2589. items:
  2590. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2591. properties:
  2592. key:
  2593. description: key is the label key that the selector applies to.
  2594. type: string
  2595. operator:
  2596. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2597. type: string
  2598. values:
  2599. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2600. items:
  2601. type: string
  2602. type: array
  2603. required:
  2604. - key
  2605. - operator
  2606. type: object
  2607. type: array
  2608. matchLabels:
  2609. additionalProperties:
  2610. type: string
  2611. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2612. type: object
  2613. type: object
  2614. x-kubernetes-map-type: atomic
  2615. namespaceSelector:
  2616. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2617. properties:
  2618. matchExpressions:
  2619. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2620. items:
  2621. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2622. properties:
  2623. key:
  2624. description: key is the label key that the selector applies to.
  2625. type: string
  2626. operator:
  2627. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2628. type: string
  2629. values:
  2630. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2631. items:
  2632. type: string
  2633. type: array
  2634. required:
  2635. - key
  2636. - operator
  2637. type: object
  2638. type: array
  2639. matchLabels:
  2640. additionalProperties:
  2641. type: string
  2642. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2643. type: object
  2644. type: object
  2645. x-kubernetes-map-type: atomic
  2646. namespaces:
  2647. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2648. items:
  2649. type: string
  2650. type: array
  2651. topologyKey:
  2652. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2653. type: string
  2654. required:
  2655. - topologyKey
  2656. type: object
  2657. weight:
  2658. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2659. format: int32
  2660. type: integer
  2661. required:
  2662. - podAffinityTerm
  2663. - weight
  2664. type: object
  2665. type: array
  2666. requiredDuringSchedulingIgnoredDuringExecution:
  2667. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2668. items:
  2669. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2670. properties:
  2671. labelSelector:
  2672. description: A label query over a set of resources, in this case pods.
  2673. properties:
  2674. matchExpressions:
  2675. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2676. items:
  2677. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2678. properties:
  2679. key:
  2680. description: key is the label key that the selector applies to.
  2681. type: string
  2682. operator:
  2683. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2684. type: string
  2685. values:
  2686. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2687. items:
  2688. type: string
  2689. type: array
  2690. required:
  2691. - key
  2692. - operator
  2693. type: object
  2694. type: array
  2695. matchLabels:
  2696. additionalProperties:
  2697. type: string
  2698. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2699. type: object
  2700. type: object
  2701. x-kubernetes-map-type: atomic
  2702. namespaceSelector:
  2703. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2704. properties:
  2705. matchExpressions:
  2706. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2707. items:
  2708. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2709. properties:
  2710. key:
  2711. description: key is the label key that the selector applies to.
  2712. type: string
  2713. operator:
  2714. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2715. type: string
  2716. values:
  2717. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2718. items:
  2719. type: string
  2720. type: array
  2721. required:
  2722. - key
  2723. - operator
  2724. type: object
  2725. type: array
  2726. matchLabels:
  2727. additionalProperties:
  2728. type: string
  2729. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2730. type: object
  2731. type: object
  2732. x-kubernetes-map-type: atomic
  2733. namespaces:
  2734. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2735. items:
  2736. type: string
  2737. type: array
  2738. topologyKey:
  2739. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2740. type: string
  2741. required:
  2742. - topologyKey
  2743. type: object
  2744. type: array
  2745. type: object
  2746. tolerations:
  2747. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  2748. items:
  2749. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  2750. properties:
  2751. effect:
  2752. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  2753. type: string
  2754. key:
  2755. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  2756. type: string
  2757. operator:
  2758. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  2759. type: string
  2760. tolerationSeconds:
  2761. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  2762. format: int64
  2763. type: integer
  2764. value:
  2765. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  2766. type: string
  2767. type: object
  2768. type: array
  2769. topologySpreadConstraints:
  2770. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  2771. items:
  2772. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  2773. properties:
  2774. labelSelector:
  2775. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  2776. properties:
  2777. matchExpressions:
  2778. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2779. items:
  2780. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2781. properties:
  2782. key:
  2783. description: key is the label key that the selector applies to.
  2784. type: string
  2785. operator:
  2786. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2787. type: string
  2788. values:
  2789. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2790. items:
  2791. type: string
  2792. type: array
  2793. required:
  2794. - key
  2795. - operator
  2796. type: object
  2797. type: array
  2798. matchLabels:
  2799. additionalProperties:
  2800. type: string
  2801. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2802. type: object
  2803. type: object
  2804. x-kubernetes-map-type: atomic
  2805. matchLabelKeys:
  2806. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  2807. items:
  2808. type: string
  2809. type: array
  2810. x-kubernetes-list-type: atomic
  2811. maxSkew:
  2812. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  2813. format: int32
  2814. type: integer
  2815. minDomains:
  2816. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  2817. format: int32
  2818. type: integer
  2819. nodeAffinityPolicy:
  2820. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2821. type: string
  2822. nodeTaintsPolicy:
  2823. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2824. type: string
  2825. topologyKey:
  2826. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  2827. type: string
  2828. whenUnsatisfiable:
  2829. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  2830. type: string
  2831. required:
  2832. - maxSkew
  2833. - topologyKey
  2834. - whenUnsatisfiable
  2835. type: object
  2836. type: array
  2837. type: object
  2838. description: The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).
  2839. nullable: true
  2840. type: object
  2841. x-kubernetes-preserve-unknown-fields: true
  2842. priorityClassNames:
  2843. additionalProperties:
  2844. type: string
  2845. description: PriorityClassNames sets priority classes on components
  2846. nullable: true
  2847. type: object
  2848. x-kubernetes-preserve-unknown-fields: true
  2849. removeOSDsIfOutAndSafeToRemove:
  2850. description: Remove the OSD that is out and safe to remove only if this option is true
  2851. type: boolean
  2852. resources:
  2853. additionalProperties:
  2854. description: ResourceRequirements describes the compute resource requirements.
  2855. properties:
  2856. claims:
  2857. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  2858. items:
  2859. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  2860. properties:
  2861. name:
  2862. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  2863. type: string
  2864. required:
  2865. - name
  2866. type: object
  2867. type: array
  2868. x-kubernetes-list-map-keys:
  2869. - name
  2870. x-kubernetes-list-type: map
  2871. limits:
  2872. additionalProperties:
  2873. anyOf:
  2874. - type: integer
  2875. - type: string
  2876. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2877. x-kubernetes-int-or-string: true
  2878. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2879. type: object
  2880. requests:
  2881. additionalProperties:
  2882. anyOf:
  2883. - type: integer
  2884. - type: string
  2885. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2886. x-kubernetes-int-or-string: true
  2887. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2888. type: object
  2889. type: object
  2890. description: Resources set resource requests and limits
  2891. nullable: true
  2892. type: object
  2893. x-kubernetes-preserve-unknown-fields: true
  2894. security:
  2895. description: Security represents security settings
  2896. nullable: true
  2897. properties:
  2898. keyRotation:
  2899. description: KeyRotation defines options for Key Rotation.
  2900. nullable: true
  2901. properties:
  2902. enabled:
  2903. default: false
  2904. description: Enabled represents whether the key rotation is enabled.
  2905. type: boolean
  2906. schedule:
  2907. description: Schedule represents the cron schedule for key rotation.
  2908. type: string
  2909. type: object
  2910. kms:
  2911. description: KeyManagementService is the main Key Management option
  2912. nullable: true
  2913. properties:
  2914. connectionDetails:
  2915. additionalProperties:
  2916. type: string
  2917. description: ConnectionDetails contains the KMS connection details (address, port etc)
  2918. nullable: true
  2919. type: object
  2920. x-kubernetes-preserve-unknown-fields: true
  2921. tokenSecretName:
  2922. description: TokenSecretName is the kubernetes secret containing the KMS token
  2923. type: string
  2924. type: object
  2925. type: object
  2926. skipUpgradeChecks:
  2927. description: SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
  2928. type: boolean
  2929. storage:
  2930. description: A spec for available storage in the cluster and how it should be used
  2931. nullable: true
  2932. properties:
  2933. config:
  2934. additionalProperties:
  2935. type: string
  2936. nullable: true
  2937. type: object
  2938. x-kubernetes-preserve-unknown-fields: true
  2939. deviceFilter:
  2940. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  2941. type: string
  2942. devicePathFilter:
  2943. description: A regular expression to allow more fine-grained selection of devices with path names
  2944. type: string
  2945. devices:
  2946. description: List of devices to use as storage devices
  2947. items:
  2948. description: Device represents a disk to use in the cluster
  2949. properties:
  2950. config:
  2951. additionalProperties:
  2952. type: string
  2953. nullable: true
  2954. type: object
  2955. x-kubernetes-preserve-unknown-fields: true
  2956. fullpath:
  2957. type: string
  2958. name:
  2959. type: string
  2960. type: object
  2961. nullable: true
  2962. type: array
  2963. x-kubernetes-preserve-unknown-fields: true
  2964. flappingRestartIntervalHours:
  2965. description: FlappingRestartIntervalHours defines the time for which the OSD pods, that failed with zero exit code, will sleep before restarting. This is needed for OSD flapping where OSD daemons are marked down more than 5 times in 600 seconds by Ceph. Preventing the OSD pods to restart immediately in such scenarios will prevent Rook from marking OSD as `up` and thus peering of the PGs mapped to the OSD. User needs to manually restart the OSD pod if they manage to fix the underlying OSD flapping issue before the restart interval. The sleep will be disabled if this interval is set to 0.
  2966. type: integer
  2967. nodes:
  2968. items:
  2969. description: Node is a storage nodes
  2970. properties:
  2971. config:
  2972. additionalProperties:
  2973. type: string
  2974. nullable: true
  2975. type: object
  2976. x-kubernetes-preserve-unknown-fields: true
  2977. deviceFilter:
  2978. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  2979. type: string
  2980. devicePathFilter:
  2981. description: A regular expression to allow more fine-grained selection of devices with path names
  2982. type: string
  2983. devices:
  2984. description: List of devices to use as storage devices
  2985. items:
  2986. description: Device represents a disk to use in the cluster
  2987. properties:
  2988. config:
  2989. additionalProperties:
  2990. type: string
  2991. nullable: true
  2992. type: object
  2993. x-kubernetes-preserve-unknown-fields: true
  2994. fullpath:
  2995. type: string
  2996. name:
  2997. type: string
  2998. type: object
  2999. nullable: true
  3000. type: array
  3001. x-kubernetes-preserve-unknown-fields: true
  3002. name:
  3003. type: string
  3004. resources:
  3005. description: ResourceRequirements describes the compute resource requirements.
  3006. nullable: true
  3007. properties:
  3008. claims:
  3009. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  3010. items:
  3011. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3012. properties:
  3013. name:
  3014. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  3015. type: string
  3016. required:
  3017. - name
  3018. type: object
  3019. type: array
  3020. x-kubernetes-list-map-keys:
  3021. - name
  3022. x-kubernetes-list-type: map
  3023. limits:
  3024. additionalProperties:
  3025. anyOf:
  3026. - type: integer
  3027. - type: string
  3028. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3029. x-kubernetes-int-or-string: true
  3030. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3031. type: object
  3032. requests:
  3033. additionalProperties:
  3034. anyOf:
  3035. - type: integer
  3036. - type: string
  3037. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3038. x-kubernetes-int-or-string: true
  3039. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3040. type: object
  3041. type: object
  3042. x-kubernetes-preserve-unknown-fields: true
  3043. useAllDevices:
  3044. description: Whether to consume all the storage devices found on a machine
  3045. type: boolean
  3046. volumeClaimTemplates:
  3047. description: PersistentVolumeClaims to use as storage
  3048. items:
  3049. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  3050. properties:
  3051. apiVersion:
  3052. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3053. type: string
  3054. kind:
  3055. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3056. type: string
  3057. metadata:
  3058. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  3059. properties:
  3060. annotations:
  3061. additionalProperties:
  3062. type: string
  3063. type: object
  3064. finalizers:
  3065. items:
  3066. type: string
  3067. type: array
  3068. labels:
  3069. additionalProperties:
  3070. type: string
  3071. type: object
  3072. name:
  3073. type: string
  3074. namespace:
  3075. type: string
  3076. type: object
  3077. spec:
  3078. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  3079. properties:
  3080. accessModes:
  3081. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  3082. items:
  3083. type: string
  3084. type: array
  3085. dataSource:
  3086. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  3087. properties:
  3088. apiGroup:
  3089. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  3090. type: string
  3091. kind:
  3092. description: Kind is the type of resource being referenced
  3093. type: string
  3094. name:
  3095. description: Name is the name of resource being referenced
  3096. type: string
  3097. required:
  3098. - kind
  3099. - name
  3100. type: object
  3101. x-kubernetes-map-type: atomic
  3102. dataSourceRef:
  3103. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  3104. properties:
  3105. apiGroup:
  3106. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  3107. type: string
  3108. kind:
  3109. description: Kind is the type of resource being referenced
  3110. type: string
  3111. name:
  3112. description: Name is the name of resource being referenced
  3113. type: string
  3114. namespace:
  3115. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  3116. type: string
  3117. required:
  3118. - kind
  3119. - name
  3120. type: object
  3121. resources:
  3122. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  3123. properties:
  3124. claims:
  3125. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  3126. items:
  3127. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3128. properties:
  3129. name:
  3130. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  3131. type: string
  3132. required:
  3133. - name
  3134. type: object
  3135. type: array
  3136. x-kubernetes-list-map-keys:
  3137. - name
  3138. x-kubernetes-list-type: map
  3139. limits:
  3140. additionalProperties:
  3141. anyOf:
  3142. - type: integer
  3143. - type: string
  3144. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3145. x-kubernetes-int-or-string: true
  3146. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3147. type: object
  3148. requests:
  3149. additionalProperties:
  3150. anyOf:
  3151. - type: integer
  3152. - type: string
  3153. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3154. x-kubernetes-int-or-string: true
  3155. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3156. type: object
  3157. type: object
  3158. selector:
  3159. description: selector is a label query over volumes to consider for binding.
  3160. properties:
  3161. matchExpressions:
  3162. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3163. items:
  3164. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3165. properties:
  3166. key:
  3167. description: key is the label key that the selector applies to.
  3168. type: string
  3169. operator:
  3170. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3171. type: string
  3172. values:
  3173. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3174. items:
  3175. type: string
  3176. type: array
  3177. required:
  3178. - key
  3179. - operator
  3180. type: object
  3181. type: array
  3182. matchLabels:
  3183. additionalProperties:
  3184. type: string
  3185. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3186. type: object
  3187. type: object
  3188. x-kubernetes-map-type: atomic
  3189. storageClassName:
  3190. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  3191. type: string
  3192. volumeMode:
  3193. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  3194. type: string
  3195. volumeName:
  3196. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  3197. type: string
  3198. type: object
  3199. status:
  3200. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  3201. properties:
  3202. accessModes:
  3203. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  3204. items:
  3205. type: string
  3206. type: array
  3207. allocatedResourceStatuses:
  3208. additionalProperties:
  3209. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  3210. type: string
  3211. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  3212. type: object
  3213. x-kubernetes-map-type: granular
  3214. allocatedResources:
  3215. additionalProperties:
  3216. anyOf:
  3217. - type: integer
  3218. - type: string
  3219. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3220. x-kubernetes-int-or-string: true
  3221. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  3222. type: object
  3223. capacity:
  3224. additionalProperties:
  3225. anyOf:
  3226. - type: integer
  3227. - type: string
  3228. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3229. x-kubernetes-int-or-string: true
  3230. description: capacity represents the actual resources of the underlying volume.
  3231. type: object
  3232. conditions:
  3233. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  3234. items:
  3235. description: PersistentVolumeClaimCondition contains details about state of pvc
  3236. properties:
  3237. lastProbeTime:
  3238. description: lastProbeTime is the time we probed the condition.
  3239. format: date-time
  3240. type: string
  3241. lastTransitionTime:
  3242. description: lastTransitionTime is the time the condition transitioned from one status to another.
  3243. format: date-time
  3244. type: string
  3245. message:
  3246. description: message is the human-readable message indicating details about last transition.
  3247. type: string
  3248. reason:
  3249. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  3250. type: string
  3251. status:
  3252. type: string
  3253. type:
  3254. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  3255. type: string
  3256. required:
  3257. - status
  3258. - type
  3259. type: object
  3260. type: array
  3261. phase:
  3262. description: phase represents the current phase of PersistentVolumeClaim.
  3263. type: string
  3264. type: object
  3265. type: object
  3266. type: array
  3267. type: object
  3268. nullable: true
  3269. type: array
  3270. onlyApplyOSDPlacement:
  3271. type: boolean
  3272. storageClassDeviceSets:
  3273. items:
  3274. description: StorageClassDeviceSet is a storage class device set
  3275. properties:
  3276. config:
  3277. additionalProperties:
  3278. type: string
  3279. description: Provider-specific device configuration
  3280. nullable: true
  3281. type: object
  3282. x-kubernetes-preserve-unknown-fields: true
  3283. count:
  3284. description: Count is the number of devices in this set
  3285. minimum: 1
  3286. type: integer
  3287. encrypted:
  3288. description: Whether to encrypt the deviceSet
  3289. type: boolean
  3290. name:
  3291. description: Name is a unique identifier for the set
  3292. type: string
  3293. placement:
  3294. description: Placement is the placement for an object
  3295. nullable: true
  3296. properties:
  3297. nodeAffinity:
  3298. description: NodeAffinity is a group of node affinity scheduling rules
  3299. properties:
  3300. preferredDuringSchedulingIgnoredDuringExecution:
  3301. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  3302. items:
  3303. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3304. properties:
  3305. preference:
  3306. description: A node selector term, associated with the corresponding weight.
  3307. properties:
  3308. matchExpressions:
  3309. description: A list of node selector requirements by node's labels.
  3310. items:
  3311. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3312. properties:
  3313. key:
  3314. description: The label key that the selector applies to.
  3315. type: string
  3316. operator:
  3317. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3318. type: string
  3319. values:
  3320. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3321. items:
  3322. type: string
  3323. type: array
  3324. required:
  3325. - key
  3326. - operator
  3327. type: object
  3328. type: array
  3329. matchFields:
  3330. description: A list of node selector requirements by node's fields.
  3331. items:
  3332. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3333. properties:
  3334. key:
  3335. description: The label key that the selector applies to.
  3336. type: string
  3337. operator:
  3338. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3339. type: string
  3340. values:
  3341. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3342. items:
  3343. type: string
  3344. type: array
  3345. required:
  3346. - key
  3347. - operator
  3348. type: object
  3349. type: array
  3350. type: object
  3351. x-kubernetes-map-type: atomic
  3352. weight:
  3353. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  3354. format: int32
  3355. type: integer
  3356. required:
  3357. - preference
  3358. - weight
  3359. type: object
  3360. type: array
  3361. requiredDuringSchedulingIgnoredDuringExecution:
  3362. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  3363. properties:
  3364. nodeSelectorTerms:
  3365. description: Required. A list of node selector terms. The terms are ORed.
  3366. items:
  3367. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  3368. properties:
  3369. matchExpressions:
  3370. description: A list of node selector requirements by node's labels.
  3371. items:
  3372. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3373. properties:
  3374. key:
  3375. description: The label key that the selector applies to.
  3376. type: string
  3377. operator:
  3378. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3379. type: string
  3380. values:
  3381. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3382. items:
  3383. type: string
  3384. type: array
  3385. required:
  3386. - key
  3387. - operator
  3388. type: object
  3389. type: array
  3390. matchFields:
  3391. description: A list of node selector requirements by node's fields.
  3392. items:
  3393. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3394. properties:
  3395. key:
  3396. description: The label key that the selector applies to.
  3397. type: string
  3398. operator:
  3399. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3400. type: string
  3401. values:
  3402. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3403. items:
  3404. type: string
  3405. type: array
  3406. required:
  3407. - key
  3408. - operator
  3409. type: object
  3410. type: array
  3411. type: object
  3412. x-kubernetes-map-type: atomic
  3413. type: array
  3414. required:
  3415. - nodeSelectorTerms
  3416. type: object
  3417. x-kubernetes-map-type: atomic
  3418. type: object
  3419. podAffinity:
  3420. description: PodAffinity is a group of inter pod affinity scheduling rules
  3421. properties:
  3422. preferredDuringSchedulingIgnoredDuringExecution:
  3423. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3424. items:
  3425. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3426. properties:
  3427. podAffinityTerm:
  3428. description: Required. A pod affinity term, associated with the corresponding weight.
  3429. properties:
  3430. labelSelector:
  3431. description: A label query over a set of resources, in this case pods.
  3432. properties:
  3433. matchExpressions:
  3434. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3435. items:
  3436. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3437. properties:
  3438. key:
  3439. description: key is the label key that the selector applies to.
  3440. type: string
  3441. operator:
  3442. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3443. type: string
  3444. values:
  3445. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3446. items:
  3447. type: string
  3448. type: array
  3449. required:
  3450. - key
  3451. - operator
  3452. type: object
  3453. type: array
  3454. matchLabels:
  3455. additionalProperties:
  3456. type: string
  3457. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3458. type: object
  3459. type: object
  3460. x-kubernetes-map-type: atomic
  3461. namespaceSelector:
  3462. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3463. properties:
  3464. matchExpressions:
  3465. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3466. items:
  3467. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3468. properties:
  3469. key:
  3470. description: key is the label key that the selector applies to.
  3471. type: string
  3472. operator:
  3473. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3474. type: string
  3475. values:
  3476. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3477. items:
  3478. type: string
  3479. type: array
  3480. required:
  3481. - key
  3482. - operator
  3483. type: object
  3484. type: array
  3485. matchLabels:
  3486. additionalProperties:
  3487. type: string
  3488. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3489. type: object
  3490. type: object
  3491. x-kubernetes-map-type: atomic
  3492. namespaces:
  3493. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3494. items:
  3495. type: string
  3496. type: array
  3497. topologyKey:
  3498. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3499. type: string
  3500. required:
  3501. - topologyKey
  3502. type: object
  3503. weight:
  3504. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3505. format: int32
  3506. type: integer
  3507. required:
  3508. - podAffinityTerm
  3509. - weight
  3510. type: object
  3511. type: array
  3512. requiredDuringSchedulingIgnoredDuringExecution:
  3513. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3514. items:
  3515. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3516. properties:
  3517. labelSelector:
  3518. description: A label query over a set of resources, in this case pods.
  3519. properties:
  3520. matchExpressions:
  3521. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3522. items:
  3523. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3524. properties:
  3525. key:
  3526. description: key is the label key that the selector applies to.
  3527. type: string
  3528. operator:
  3529. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3530. type: string
  3531. values:
  3532. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3533. items:
  3534. type: string
  3535. type: array
  3536. required:
  3537. - key
  3538. - operator
  3539. type: object
  3540. type: array
  3541. matchLabels:
  3542. additionalProperties:
  3543. type: string
  3544. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3545. type: object
  3546. type: object
  3547. x-kubernetes-map-type: atomic
  3548. namespaceSelector:
  3549. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3550. properties:
  3551. matchExpressions:
  3552. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3553. items:
  3554. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3555. properties:
  3556. key:
  3557. description: key is the label key that the selector applies to.
  3558. type: string
  3559. operator:
  3560. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3561. type: string
  3562. values:
  3563. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3564. items:
  3565. type: string
  3566. type: array
  3567. required:
  3568. - key
  3569. - operator
  3570. type: object
  3571. type: array
  3572. matchLabels:
  3573. additionalProperties:
  3574. type: string
  3575. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3576. type: object
  3577. type: object
  3578. x-kubernetes-map-type: atomic
  3579. namespaces:
  3580. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3581. items:
  3582. type: string
  3583. type: array
  3584. topologyKey:
  3585. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3586. type: string
  3587. required:
  3588. - topologyKey
  3589. type: object
  3590. type: array
  3591. type: object
  3592. podAntiAffinity:
  3593. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  3594. properties:
  3595. preferredDuringSchedulingIgnoredDuringExecution:
  3596. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3597. items:
  3598. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3599. properties:
  3600. podAffinityTerm:
  3601. description: Required. A pod affinity term, associated with the corresponding weight.
  3602. properties:
  3603. labelSelector:
  3604. description: A label query over a set of resources, in this case pods.
  3605. properties:
  3606. matchExpressions:
  3607. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3608. items:
  3609. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3610. properties:
  3611. key:
  3612. description: key is the label key that the selector applies to.
  3613. type: string
  3614. operator:
  3615. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3616. type: string
  3617. values:
  3618. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3619. items:
  3620. type: string
  3621. type: array
  3622. required:
  3623. - key
  3624. - operator
  3625. type: object
  3626. type: array
  3627. matchLabels:
  3628. additionalProperties:
  3629. type: string
  3630. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3631. type: object
  3632. type: object
  3633. x-kubernetes-map-type: atomic
  3634. namespaceSelector:
  3635. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3636. properties:
  3637. matchExpressions:
  3638. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3639. items:
  3640. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3641. properties:
  3642. key:
  3643. description: key is the label key that the selector applies to.
  3644. type: string
  3645. operator:
  3646. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3647. type: string
  3648. values:
  3649. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3650. items:
  3651. type: string
  3652. type: array
  3653. required:
  3654. - key
  3655. - operator
  3656. type: object
  3657. type: array
  3658. matchLabels:
  3659. additionalProperties:
  3660. type: string
  3661. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3662. type: object
  3663. type: object
  3664. x-kubernetes-map-type: atomic
  3665. namespaces:
  3666. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3667. items:
  3668. type: string
  3669. type: array
  3670. topologyKey:
  3671. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3672. type: string
  3673. required:
  3674. - topologyKey
  3675. type: object
  3676. weight:
  3677. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3678. format: int32
  3679. type: integer
  3680. required:
  3681. - podAffinityTerm
  3682. - weight
  3683. type: object
  3684. type: array
  3685. requiredDuringSchedulingIgnoredDuringExecution:
  3686. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3687. items:
  3688. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3689. properties:
  3690. labelSelector:
  3691. description: A label query over a set of resources, in this case pods.
  3692. properties:
  3693. matchExpressions:
  3694. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3695. items:
  3696. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3697. properties:
  3698. key:
  3699. description: key is the label key that the selector applies to.
  3700. type: string
  3701. operator:
  3702. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3703. type: string
  3704. values:
  3705. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3706. items:
  3707. type: string
  3708. type: array
  3709. required:
  3710. - key
  3711. - operator
  3712. type: object
  3713. type: array
  3714. matchLabels:
  3715. additionalProperties:
  3716. type: string
  3717. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3718. type: object
  3719. type: object
  3720. x-kubernetes-map-type: atomic
  3721. namespaceSelector:
  3722. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3723. properties:
  3724. matchExpressions:
  3725. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3726. items:
  3727. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3728. properties:
  3729. key:
  3730. description: key is the label key that the selector applies to.
  3731. type: string
  3732. operator:
  3733. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3734. type: string
  3735. values:
  3736. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3737. items:
  3738. type: string
  3739. type: array
  3740. required:
  3741. - key
  3742. - operator
  3743. type: object
  3744. type: array
  3745. matchLabels:
  3746. additionalProperties:
  3747. type: string
  3748. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3749. type: object
  3750. type: object
  3751. x-kubernetes-map-type: atomic
  3752. namespaces:
  3753. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3754. items:
  3755. type: string
  3756. type: array
  3757. topologyKey:
  3758. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3759. type: string
  3760. required:
  3761. - topologyKey
  3762. type: object
  3763. type: array
  3764. type: object
  3765. tolerations:
  3766. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  3767. items:
  3768. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  3769. properties:
  3770. effect:
  3771. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  3772. type: string
  3773. key:
  3774. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  3775. type: string
  3776. operator:
  3777. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  3778. type: string
  3779. tolerationSeconds:
  3780. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  3781. format: int64
  3782. type: integer
  3783. value:
  3784. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  3785. type: string
  3786. type: object
  3787. type: array
  3788. topologySpreadConstraints:
  3789. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  3790. items:
  3791. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  3792. properties:
  3793. labelSelector:
  3794. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  3795. properties:
  3796. matchExpressions:
  3797. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3798. items:
  3799. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3800. properties:
  3801. key:
  3802. description: key is the label key that the selector applies to.
  3803. type: string
  3804. operator:
  3805. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3806. type: string
  3807. values:
  3808. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3809. items:
  3810. type: string
  3811. type: array
  3812. required:
  3813. - key
  3814. - operator
  3815. type: object
  3816. type: array
  3817. matchLabels:
  3818. additionalProperties:
  3819. type: string
  3820. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3821. type: object
  3822. type: object
  3823. x-kubernetes-map-type: atomic
  3824. matchLabelKeys:
  3825. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  3826. items:
  3827. type: string
  3828. type: array
  3829. x-kubernetes-list-type: atomic
  3830. maxSkew:
  3831. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  3832. format: int32
  3833. type: integer
  3834. minDomains:
  3835. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  3836. format: int32
  3837. type: integer
  3838. nodeAffinityPolicy:
  3839. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  3840. type: string
  3841. nodeTaintsPolicy:
  3842. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  3843. type: string
  3844. topologyKey:
  3845. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  3846. type: string
  3847. whenUnsatisfiable:
  3848. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  3849. type: string
  3850. required:
  3851. - maxSkew
  3852. - topologyKey
  3853. - whenUnsatisfiable
  3854. type: object
  3855. type: array
  3856. type: object
  3857. x-kubernetes-preserve-unknown-fields: true
  3858. portable:
  3859. description: Portable represents OSD portability across the hosts
  3860. type: boolean
  3861. preparePlacement:
  3862. description: Placement is the placement for an object
  3863. nullable: true
  3864. properties:
  3865. nodeAffinity:
  3866. description: NodeAffinity is a group of node affinity scheduling rules
  3867. properties:
  3868. preferredDuringSchedulingIgnoredDuringExecution:
  3869. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  3870. items:
  3871. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3872. properties:
  3873. preference:
  3874. description: A node selector term, associated with the corresponding weight.
  3875. properties:
  3876. matchExpressions:
  3877. description: A list of node selector requirements by node's labels.
  3878. items:
  3879. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3880. properties:
  3881. key:
  3882. description: The label key that the selector applies to.
  3883. type: string
  3884. operator:
  3885. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3886. type: string
  3887. values:
  3888. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3889. items:
  3890. type: string
  3891. type: array
  3892. required:
  3893. - key
  3894. - operator
  3895. type: object
  3896. type: array
  3897. matchFields:
  3898. description: A list of node selector requirements by node's fields.
  3899. items:
  3900. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3901. properties:
  3902. key:
  3903. description: The label key that the selector applies to.
  3904. type: string
  3905. operator:
  3906. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3907. type: string
  3908. values:
  3909. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3910. items:
  3911. type: string
  3912. type: array
  3913. required:
  3914. - key
  3915. - operator
  3916. type: object
  3917. type: array
  3918. type: object
  3919. x-kubernetes-map-type: atomic
  3920. weight:
  3921. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  3922. format: int32
  3923. type: integer
  3924. required:
  3925. - preference
  3926. - weight
  3927. type: object
  3928. type: array
  3929. requiredDuringSchedulingIgnoredDuringExecution:
  3930. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  3931. properties:
  3932. nodeSelectorTerms:
  3933. description: Required. A list of node selector terms. The terms are ORed.
  3934. items:
  3935. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  3936. properties:
  3937. matchExpressions:
  3938. description: A list of node selector requirements by node's labels.
  3939. items:
  3940. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3941. properties:
  3942. key:
  3943. description: The label key that the selector applies to.
  3944. type: string
  3945. operator:
  3946. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3947. type: string
  3948. values:
  3949. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3950. items:
  3951. type: string
  3952. type: array
  3953. required:
  3954. - key
  3955. - operator
  3956. type: object
  3957. type: array
  3958. matchFields:
  3959. description: A list of node selector requirements by node's fields.
  3960. items:
  3961. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3962. properties:
  3963. key:
  3964. description: The label key that the selector applies to.
  3965. type: string
  3966. operator:
  3967. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3968. type: string
  3969. values:
  3970. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3971. items:
  3972. type: string
  3973. type: array
  3974. required:
  3975. - key
  3976. - operator
  3977. type: object
  3978. type: array
  3979. type: object
  3980. x-kubernetes-map-type: atomic
  3981. type: array
  3982. required:
  3983. - nodeSelectorTerms
  3984. type: object
  3985. x-kubernetes-map-type: atomic
  3986. type: object
  3987. podAffinity:
  3988. description: PodAffinity is a group of inter pod affinity scheduling rules
  3989. properties:
  3990. preferredDuringSchedulingIgnoredDuringExecution:
  3991. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3992. items:
  3993. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3994. properties:
  3995. podAffinityTerm:
  3996. description: Required. A pod affinity term, associated with the corresponding weight.
  3997. properties:
  3998. labelSelector:
  3999. description: A label query over a set of resources, in this case pods.
  4000. properties:
  4001. matchExpressions:
  4002. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4003. items:
  4004. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4005. properties:
  4006. key:
  4007. description: key is the label key that the selector applies to.
  4008. type: string
  4009. operator:
  4010. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4011. type: string
  4012. values:
  4013. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4014. items:
  4015. type: string
  4016. type: array
  4017. required:
  4018. - key
  4019. - operator
  4020. type: object
  4021. type: array
  4022. matchLabels:
  4023. additionalProperties:
  4024. type: string
  4025. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4026. type: object
  4027. type: object
  4028. x-kubernetes-map-type: atomic
  4029. namespaceSelector:
  4030. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4031. properties:
  4032. matchExpressions:
  4033. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4034. items:
  4035. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4036. properties:
  4037. key:
  4038. description: key is the label key that the selector applies to.
  4039. type: string
  4040. operator:
  4041. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4042. type: string
  4043. values:
  4044. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4045. items:
  4046. type: string
  4047. type: array
  4048. required:
  4049. - key
  4050. - operator
  4051. type: object
  4052. type: array
  4053. matchLabels:
  4054. additionalProperties:
  4055. type: string
  4056. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4057. type: object
  4058. type: object
  4059. x-kubernetes-map-type: atomic
  4060. namespaces:
  4061. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4062. items:
  4063. type: string
  4064. type: array
  4065. topologyKey:
  4066. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4067. type: string
  4068. required:
  4069. - topologyKey
  4070. type: object
  4071. weight:
  4072. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4073. format: int32
  4074. type: integer
  4075. required:
  4076. - podAffinityTerm
  4077. - weight
  4078. type: object
  4079. type: array
  4080. requiredDuringSchedulingIgnoredDuringExecution:
  4081. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4082. items:
  4083. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  4084. properties:
  4085. labelSelector:
  4086. description: A label query over a set of resources, in this case pods.
  4087. properties:
  4088. matchExpressions:
  4089. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4090. items:
  4091. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4092. properties:
  4093. key:
  4094. description: key is the label key that the selector applies to.
  4095. type: string
  4096. operator:
  4097. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4098. type: string
  4099. values:
  4100. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4101. items:
  4102. type: string
  4103. type: array
  4104. required:
  4105. - key
  4106. - operator
  4107. type: object
  4108. type: array
  4109. matchLabels:
  4110. additionalProperties:
  4111. type: string
  4112. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4113. type: object
  4114. type: object
  4115. x-kubernetes-map-type: atomic
  4116. namespaceSelector:
  4117. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4118. properties:
  4119. matchExpressions:
  4120. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4121. items:
  4122. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4123. properties:
  4124. key:
  4125. description: key is the label key that the selector applies to.
  4126. type: string
  4127. operator:
  4128. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4129. type: string
  4130. values:
  4131. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4132. items:
  4133. type: string
  4134. type: array
  4135. required:
  4136. - key
  4137. - operator
  4138. type: object
  4139. type: array
  4140. matchLabels:
  4141. additionalProperties:
  4142. type: string
  4143. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4144. type: object
  4145. type: object
  4146. x-kubernetes-map-type: atomic
  4147. namespaces:
  4148. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4149. items:
  4150. type: string
  4151. type: array
  4152. topologyKey:
  4153. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4154. type: string
  4155. required:
  4156. - topologyKey
  4157. type: object
  4158. type: array
  4159. type: object
  4160. podAntiAffinity:
  4161. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  4162. properties:
  4163. preferredDuringSchedulingIgnoredDuringExecution:
  4164. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  4165. items:
  4166. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  4167. properties:
  4168. podAffinityTerm:
  4169. description: Required. A pod affinity term, associated with the corresponding weight.
  4170. properties:
  4171. labelSelector:
  4172. description: A label query over a set of resources, in this case pods.
  4173. properties:
  4174. matchExpressions:
  4175. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4176. items:
  4177. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4178. properties:
  4179. key:
  4180. description: key is the label key that the selector applies to.
  4181. type: string
  4182. operator:
  4183. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4184. type: string
  4185. values:
  4186. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4187. items:
  4188. type: string
  4189. type: array
  4190. required:
  4191. - key
  4192. - operator
  4193. type: object
  4194. type: array
  4195. matchLabels:
  4196. additionalProperties:
  4197. type: string
  4198. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4199. type: object
  4200. type: object
  4201. x-kubernetes-map-type: atomic
  4202. namespaceSelector:
  4203. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4204. properties:
  4205. matchExpressions:
  4206. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4207. items:
  4208. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4209. properties:
  4210. key:
  4211. description: key is the label key that the selector applies to.
  4212. type: string
  4213. operator:
  4214. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4215. type: string
  4216. values:
  4217. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4218. items:
  4219. type: string
  4220. type: array
  4221. required:
  4222. - key
  4223. - operator
  4224. type: object
  4225. type: array
  4226. matchLabels:
  4227. additionalProperties:
  4228. type: string
  4229. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4230. type: object
  4231. type: object
  4232. x-kubernetes-map-type: atomic
  4233. namespaces:
  4234. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4235. items:
  4236. type: string
  4237. type: array
  4238. topologyKey:
  4239. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4240. type: string
  4241. required:
  4242. - topologyKey
  4243. type: object
  4244. weight:
  4245. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4246. format: int32
  4247. type: integer
  4248. required:
  4249. - podAffinityTerm
  4250. - weight
  4251. type: object
  4252. type: array
  4253. requiredDuringSchedulingIgnoredDuringExecution:
  4254. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4255. items:
  4256. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  4257. properties:
  4258. labelSelector:
  4259. description: A label query over a set of resources, in this case pods.
  4260. properties:
  4261. matchExpressions:
  4262. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4263. items:
  4264. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4265. properties:
  4266. key:
  4267. description: key is the label key that the selector applies to.
  4268. type: string
  4269. operator:
  4270. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4271. type: string
  4272. values:
  4273. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4274. items:
  4275. type: string
  4276. type: array
  4277. required:
  4278. - key
  4279. - operator
  4280. type: object
  4281. type: array
  4282. matchLabels:
  4283. additionalProperties:
  4284. type: string
  4285. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4286. type: object
  4287. type: object
  4288. x-kubernetes-map-type: atomic
  4289. namespaceSelector:
  4290. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4291. properties:
  4292. matchExpressions:
  4293. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4294. items:
  4295. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4296. properties:
  4297. key:
  4298. description: key is the label key that the selector applies to.
  4299. type: string
  4300. operator:
  4301. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4302. type: string
  4303. values:
  4304. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4305. items:
  4306. type: string
  4307. type: array
  4308. required:
  4309. - key
  4310. - operator
  4311. type: object
  4312. type: array
  4313. matchLabels:
  4314. additionalProperties:
  4315. type: string
  4316. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4317. type: object
  4318. type: object
  4319. x-kubernetes-map-type: atomic
  4320. namespaces:
  4321. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4322. items:
  4323. type: string
  4324. type: array
  4325. topologyKey:
  4326. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4327. type: string
  4328. required:
  4329. - topologyKey
  4330. type: object
  4331. type: array
  4332. type: object
  4333. tolerations:
  4334. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  4335. items:
  4336. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  4337. properties:
  4338. effect:
  4339. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  4340. type: string
  4341. key:
  4342. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  4343. type: string
  4344. operator:
  4345. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  4346. type: string
  4347. tolerationSeconds:
  4348. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  4349. format: int64
  4350. type: integer
  4351. value:
  4352. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  4353. type: string
  4354. type: object
  4355. type: array
  4356. topologySpreadConstraints:
  4357. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  4358. items:
  4359. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  4360. properties:
  4361. labelSelector:
  4362. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  4363. properties:
  4364. matchExpressions:
  4365. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4366. items:
  4367. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4368. properties:
  4369. key:
  4370. description: key is the label key that the selector applies to.
  4371. type: string
  4372. operator:
  4373. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4374. type: string
  4375. values:
  4376. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4377. items:
  4378. type: string
  4379. type: array
  4380. required:
  4381. - key
  4382. - operator
  4383. type: object
  4384. type: array
  4385. matchLabels:
  4386. additionalProperties:
  4387. type: string
  4388. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4389. type: object
  4390. type: object
  4391. x-kubernetes-map-type: atomic
  4392. matchLabelKeys:
  4393. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  4394. items:
  4395. type: string
  4396. type: array
  4397. x-kubernetes-list-type: atomic
  4398. maxSkew:
  4399. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  4400. format: int32
  4401. type: integer
  4402. minDomains:
  4403. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  4404. format: int32
  4405. type: integer
  4406. nodeAffinityPolicy:
  4407. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4408. type: string
  4409. nodeTaintsPolicy:
  4410. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4411. type: string
  4412. topologyKey:
  4413. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  4414. type: string
  4415. whenUnsatisfiable:
  4416. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  4417. type: string
  4418. required:
  4419. - maxSkew
  4420. - topologyKey
  4421. - whenUnsatisfiable
  4422. type: object
  4423. type: array
  4424. type: object
  4425. x-kubernetes-preserve-unknown-fields: true
  4426. resources:
  4427. description: ResourceRequirements describes the compute resource requirements.
  4428. nullable: true
  4429. properties:
  4430. claims:
  4431. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4432. items:
  4433. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4434. properties:
  4435. name:
  4436. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4437. type: string
  4438. required:
  4439. - name
  4440. type: object
  4441. type: array
  4442. x-kubernetes-list-map-keys:
  4443. - name
  4444. x-kubernetes-list-type: map
  4445. limits:
  4446. additionalProperties:
  4447. anyOf:
  4448. - type: integer
  4449. - type: string
  4450. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4451. x-kubernetes-int-or-string: true
  4452. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4453. type: object
  4454. requests:
  4455. additionalProperties:
  4456. anyOf:
  4457. - type: integer
  4458. - type: string
  4459. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4460. x-kubernetes-int-or-string: true
  4461. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4462. type: object
  4463. type: object
  4464. x-kubernetes-preserve-unknown-fields: true
  4465. schedulerName:
  4466. description: Scheduler name for OSD pod placement
  4467. type: string
  4468. tuneDeviceClass:
  4469. description: TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
  4470. type: boolean
  4471. tuneFastDeviceClass:
  4472. description: TuneFastDeviceClass Tune the OSD when running on a fast Device Class
  4473. type: boolean
  4474. volumeClaimTemplates:
  4475. description: VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
  4476. items:
  4477. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4478. properties:
  4479. apiVersion:
  4480. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4481. type: string
  4482. kind:
  4483. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4484. type: string
  4485. metadata:
  4486. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4487. properties:
  4488. annotations:
  4489. additionalProperties:
  4490. type: string
  4491. type: object
  4492. x-kubernetes-preserve-unknown-fields: true
  4493. finalizers:
  4494. items:
  4495. type: string
  4496. type: array
  4497. labels:
  4498. additionalProperties:
  4499. type: string
  4500. type: object
  4501. name:
  4502. type: string
  4503. namespace:
  4504. type: string
  4505. type: object
  4506. spec:
  4507. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4508. properties:
  4509. accessModes:
  4510. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4511. items:
  4512. type: string
  4513. type: array
  4514. dataSource:
  4515. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  4516. properties:
  4517. apiGroup:
  4518. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4519. type: string
  4520. kind:
  4521. description: Kind is the type of resource being referenced
  4522. type: string
  4523. name:
  4524. description: Name is the name of resource being referenced
  4525. type: string
  4526. required:
  4527. - kind
  4528. - name
  4529. type: object
  4530. x-kubernetes-map-type: atomic
  4531. dataSourceRef:
  4532. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  4533. properties:
  4534. apiGroup:
  4535. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4536. type: string
  4537. kind:
  4538. description: Kind is the type of resource being referenced
  4539. type: string
  4540. name:
  4541. description: Name is the name of resource being referenced
  4542. type: string
  4543. namespace:
  4544. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  4545. type: string
  4546. required:
  4547. - kind
  4548. - name
  4549. type: object
  4550. resources:
  4551. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  4552. properties:
  4553. claims:
  4554. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4555. items:
  4556. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4557. properties:
  4558. name:
  4559. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4560. type: string
  4561. required:
  4562. - name
  4563. type: object
  4564. type: array
  4565. x-kubernetes-list-map-keys:
  4566. - name
  4567. x-kubernetes-list-type: map
  4568. limits:
  4569. additionalProperties:
  4570. anyOf:
  4571. - type: integer
  4572. - type: string
  4573. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4574. x-kubernetes-int-or-string: true
  4575. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4576. type: object
  4577. requests:
  4578. additionalProperties:
  4579. anyOf:
  4580. - type: integer
  4581. - type: string
  4582. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4583. x-kubernetes-int-or-string: true
  4584. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4585. type: object
  4586. type: object
  4587. selector:
  4588. description: selector is a label query over volumes to consider for binding.
  4589. properties:
  4590. matchExpressions:
  4591. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4592. items:
  4593. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4594. properties:
  4595. key:
  4596. description: key is the label key that the selector applies to.
  4597. type: string
  4598. operator:
  4599. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4600. type: string
  4601. values:
  4602. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4603. items:
  4604. type: string
  4605. type: array
  4606. required:
  4607. - key
  4608. - operator
  4609. type: object
  4610. type: array
  4611. matchLabels:
  4612. additionalProperties:
  4613. type: string
  4614. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4615. type: object
  4616. type: object
  4617. x-kubernetes-map-type: atomic
  4618. storageClassName:
  4619. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  4620. type: string
  4621. volumeMode:
  4622. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4623. type: string
  4624. volumeName:
  4625. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4626. type: string
  4627. type: object
  4628. status:
  4629. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4630. properties:
  4631. accessModes:
  4632. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4633. items:
  4634. type: string
  4635. type: array
  4636. allocatedResourceStatuses:
  4637. additionalProperties:
  4638. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  4639. type: string
  4640. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4641. type: object
  4642. x-kubernetes-map-type: granular
  4643. allocatedResources:
  4644. additionalProperties:
  4645. anyOf:
  4646. - type: integer
  4647. - type: string
  4648. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4649. x-kubernetes-int-or-string: true
  4650. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4651. type: object
  4652. capacity:
  4653. additionalProperties:
  4654. anyOf:
  4655. - type: integer
  4656. - type: string
  4657. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4658. x-kubernetes-int-or-string: true
  4659. description: capacity represents the actual resources of the underlying volume.
  4660. type: object
  4661. conditions:
  4662. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  4663. items:
  4664. description: PersistentVolumeClaimCondition contains details about state of pvc
  4665. properties:
  4666. lastProbeTime:
  4667. description: lastProbeTime is the time we probed the condition.
  4668. format: date-time
  4669. type: string
  4670. lastTransitionTime:
  4671. description: lastTransitionTime is the time the condition transitioned from one status to another.
  4672. format: date-time
  4673. type: string
  4674. message:
  4675. description: message is the human-readable message indicating details about last transition.
  4676. type: string
  4677. reason:
  4678. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  4679. type: string
  4680. status:
  4681. type: string
  4682. type:
  4683. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  4684. type: string
  4685. required:
  4686. - status
  4687. - type
  4688. type: object
  4689. type: array
  4690. phase:
  4691. description: phase represents the current phase of PersistentVolumeClaim.
  4692. type: string
  4693. type: object
  4694. type: object
  4695. type: array
  4696. required:
  4697. - count
  4698. - name
  4699. - volumeClaimTemplates
  4700. type: object
  4701. nullable: true
  4702. type: array
  4703. store:
  4704. description: OSDStore is the backend storage type used for creating the OSDs
  4705. properties:
  4706. type:
  4707. description: Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used
  4708. enum:
  4709. - bluestore
  4710. - bluestore-rdr
  4711. type: string
  4712. updateStore:
  4713. description: UpdateStore updates the backend store for existing OSDs. It destroys each OSD one at a time, cleans up the backing disk and prepares same OSD on that disk
  4714. pattern: ^$|^yes-really-update-store$
  4715. type: string
  4716. type: object
  4717. useAllDevices:
  4718. description: Whether to consume all the storage devices found on a machine
  4719. type: boolean
  4720. useAllNodes:
  4721. type: boolean
  4722. volumeClaimTemplates:
  4723. description: PersistentVolumeClaims to use as storage
  4724. items:
  4725. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4726. properties:
  4727. apiVersion:
  4728. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4729. type: string
  4730. kind:
  4731. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4732. type: string
  4733. metadata:
  4734. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4735. properties:
  4736. annotations:
  4737. additionalProperties:
  4738. type: string
  4739. type: object
  4740. finalizers:
  4741. items:
  4742. type: string
  4743. type: array
  4744. labels:
  4745. additionalProperties:
  4746. type: string
  4747. type: object
  4748. name:
  4749. type: string
  4750. namespace:
  4751. type: string
  4752. type: object
  4753. spec:
  4754. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4755. properties:
  4756. accessModes:
  4757. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4758. items:
  4759. type: string
  4760. type: array
  4761. dataSource:
  4762. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  4763. properties:
  4764. apiGroup:
  4765. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4766. type: string
  4767. kind:
  4768. description: Kind is the type of resource being referenced
  4769. type: string
  4770. name:
  4771. description: Name is the name of resource being referenced
  4772. type: string
  4773. required:
  4774. - kind
  4775. - name
  4776. type: object
  4777. x-kubernetes-map-type: atomic
  4778. dataSourceRef:
  4779. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  4780. properties:
  4781. apiGroup:
  4782. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4783. type: string
  4784. kind:
  4785. description: Kind is the type of resource being referenced
  4786. type: string
  4787. name:
  4788. description: Name is the name of resource being referenced
  4789. type: string
  4790. namespace:
  4791. description: Namespace is the namespace of resource being referenced 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. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  4792. type: string
  4793. required:
  4794. - kind
  4795. - name
  4796. type: object
  4797. resources:
  4798. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  4799. properties:
  4800. claims:
  4801. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4802. items:
  4803. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4804. properties:
  4805. name:
  4806. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4807. type: string
  4808. required:
  4809. - name
  4810. type: object
  4811. type: array
  4812. x-kubernetes-list-map-keys:
  4813. - name
  4814. x-kubernetes-list-type: map
  4815. limits:
  4816. additionalProperties:
  4817. anyOf:
  4818. - type: integer
  4819. - type: string
  4820. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4821. x-kubernetes-int-or-string: true
  4822. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4823. type: object
  4824. requests:
  4825. additionalProperties:
  4826. anyOf:
  4827. - type: integer
  4828. - type: string
  4829. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4830. x-kubernetes-int-or-string: true
  4831. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4832. type: object
  4833. type: object
  4834. selector:
  4835. description: selector is a label query over volumes to consider for binding.
  4836. properties:
  4837. matchExpressions:
  4838. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4839. items:
  4840. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4841. properties:
  4842. key:
  4843. description: key is the label key that the selector applies to.
  4844. type: string
  4845. operator:
  4846. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4847. type: string
  4848. values:
  4849. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4850. items:
  4851. type: string
  4852. type: array
  4853. required:
  4854. - key
  4855. - operator
  4856. type: object
  4857. type: array
  4858. matchLabels:
  4859. additionalProperties:
  4860. type: string
  4861. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4862. type: object
  4863. type: object
  4864. x-kubernetes-map-type: atomic
  4865. storageClassName:
  4866. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  4867. type: string
  4868. volumeMode:
  4869. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4870. type: string
  4871. volumeName:
  4872. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4873. type: string
  4874. type: object
  4875. status:
  4876. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4877. properties:
  4878. accessModes:
  4879. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4880. items:
  4881. type: string
  4882. type: array
  4883. allocatedResourceStatuses:
  4884. additionalProperties:
  4885. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  4886. type: string
  4887. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4888. type: object
  4889. x-kubernetes-map-type: granular
  4890. allocatedResources:
  4891. additionalProperties:
  4892. anyOf:
  4893. - type: integer
  4894. - type: string
  4895. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4896. x-kubernetes-int-or-string: true
  4897. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4898. type: object
  4899. capacity:
  4900. additionalProperties:
  4901. anyOf:
  4902. - type: integer
  4903. - type: string
  4904. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4905. x-kubernetes-int-or-string: true
  4906. description: capacity represents the actual resources of the underlying volume.
  4907. type: object
  4908. conditions:
  4909. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  4910. items:
  4911. description: PersistentVolumeClaimCondition contains details about state of pvc
  4912. properties:
  4913. lastProbeTime:
  4914. description: lastProbeTime is the time we probed the condition.
  4915. format: date-time
  4916. type: string
  4917. lastTransitionTime:
  4918. description: lastTransitionTime is the time the condition transitioned from one status to another.
  4919. format: date-time
  4920. type: string
  4921. message:
  4922. description: message is the human-readable message indicating details about last transition.
  4923. type: string
  4924. reason:
  4925. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  4926. type: string
  4927. status:
  4928. type: string
  4929. type:
  4930. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  4931. type: string
  4932. required:
  4933. - status
  4934. - type
  4935. type: object
  4936. type: array
  4937. phase:
  4938. description: phase represents the current phase of PersistentVolumeClaim.
  4939. type: string
  4940. type: object
  4941. type: object
  4942. type: array
  4943. type: object
  4944. waitTimeoutForHealthyOSDInMinutes:
  4945. description: WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart. If the timeout exceeds and OSD is not ok to stop, then the operator would skip upgrade for the current OSD and proceed with the next one if `continueUpgradeAfterChecksEvenIfNotHealthy` is `false`. If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would continue with the upgrade of an OSD even if its not ok to stop after the timeout. This timeout won't be applied if `skipUpgradeChecks` is `true`. The default wait timeout is 10 minutes.
  4946. format: int64
  4947. type: integer
  4948. type: object
  4949. status:
  4950. description: ClusterStatus represents the status of a Ceph cluster
  4951. nullable: true
  4952. properties:
  4953. ceph:
  4954. description: CephStatus is the details health of a Ceph Cluster
  4955. properties:
  4956. capacity:
  4957. description: Capacity is the capacity information of a Ceph Cluster
  4958. properties:
  4959. bytesAvailable:
  4960. format: int64
  4961. type: integer
  4962. bytesTotal:
  4963. format: int64
  4964. type: integer
  4965. bytesUsed:
  4966. format: int64
  4967. type: integer
  4968. lastUpdated:
  4969. type: string
  4970. type: object
  4971. details:
  4972. additionalProperties:
  4973. description: CephHealthMessage represents the health message of a Ceph Cluster
  4974. properties:
  4975. message:
  4976. type: string
  4977. severity:
  4978. type: string
  4979. required:
  4980. - message
  4981. - severity
  4982. type: object
  4983. type: object
  4984. fsid:
  4985. type: string
  4986. health:
  4987. type: string
  4988. lastChanged:
  4989. type: string
  4990. lastChecked:
  4991. type: string
  4992. previousHealth:
  4993. type: string
  4994. versions:
  4995. description: CephDaemonsVersions show the current ceph version for different ceph daemons
  4996. properties:
  4997. cephfs-mirror:
  4998. additionalProperties:
  4999. type: integer
  5000. description: CephFSMirror shows CephFSMirror Ceph version
  5001. type: object
  5002. mds:
  5003. additionalProperties:
  5004. type: integer
  5005. description: Mds shows Mds Ceph version
  5006. type: object
  5007. mgr:
  5008. additionalProperties:
  5009. type: integer
  5010. description: Mgr shows Mgr Ceph version
  5011. type: object
  5012. mon:
  5013. additionalProperties:
  5014. type: integer
  5015. description: Mon shows Mon Ceph version
  5016. type: object
  5017. osd:
  5018. additionalProperties:
  5019. type: integer
  5020. description: Osd shows Osd Ceph version
  5021. type: object
  5022. overall:
  5023. additionalProperties:
  5024. type: integer
  5025. description: Overall shows overall Ceph version
  5026. type: object
  5027. rbd-mirror:
  5028. additionalProperties:
  5029. type: integer
  5030. description: RbdMirror shows RbdMirror Ceph version
  5031. type: object
  5032. rgw:
  5033. additionalProperties:
  5034. type: integer
  5035. description: Rgw shows Rgw Ceph version
  5036. type: object
  5037. type: object
  5038. type: object
  5039. conditions:
  5040. items:
  5041. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  5042. properties:
  5043. lastHeartbeatTime:
  5044. format: date-time
  5045. type: string
  5046. lastTransitionTime:
  5047. format: date-time
  5048. type: string
  5049. message:
  5050. type: string
  5051. reason:
  5052. description: ConditionReason is a reason for a condition
  5053. type: string
  5054. status:
  5055. type: string
  5056. type:
  5057. description: ConditionType represent a resource's status
  5058. type: string
  5059. type: object
  5060. type: array
  5061. message:
  5062. type: string
  5063. observedGeneration:
  5064. description: ObservedGeneration is the latest generation observed by the controller.
  5065. format: int64
  5066. type: integer
  5067. phase:
  5068. description: ConditionType represent a resource's status
  5069. type: string
  5070. state:
  5071. description: ClusterState represents the state of a Ceph Cluster
  5072. type: string
  5073. storage:
  5074. description: CephStorage represents flavors of Ceph Cluster Storage
  5075. properties:
  5076. deviceClasses:
  5077. items:
  5078. description: DeviceClasses represents device classes of a Ceph Cluster
  5079. properties:
  5080. name:
  5081. type: string
  5082. type: object
  5083. type: array
  5084. osd:
  5085. description: OSDStatus represents OSD status of the ceph Cluster
  5086. properties:
  5087. storeType:
  5088. additionalProperties:
  5089. type: integer
  5090. description: StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
  5091. type: object
  5092. type: object
  5093. type: object
  5094. version:
  5095. description: ClusterVersion represents the version of a Ceph Cluster
  5096. properties:
  5097. image:
  5098. type: string
  5099. version:
  5100. type: string
  5101. type: object
  5102. type: object
  5103. x-kubernetes-preserve-unknown-fields: true
  5104. required:
  5105. - metadata
  5106. - spec
  5107. type: object
  5108. served: true
  5109. storage: true
  5110. subresources:
  5111. status: {}
  5112. ---
  5113. apiVersion: apiextensions.k8s.io/v1
  5114. kind: CustomResourceDefinition
  5115. metadata:
  5116. annotations:
  5117. controller-gen.kubebuilder.io/version: v0.11.3
  5118. creationTimestamp: null
  5119. name: cephcosidrivers.ceph.rook.io
  5120. spec:
  5121. group: ceph.rook.io
  5122. names:
  5123. kind: CephCOSIDriver
  5124. listKind: CephCOSIDriverList
  5125. plural: cephcosidrivers
  5126. shortNames:
  5127. - cephcosi
  5128. singular: cephcosidriver
  5129. scope: Namespaced
  5130. versions:
  5131. - name: v1
  5132. schema:
  5133. openAPIV3Schema:
  5134. description: CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment
  5135. properties:
  5136. apiVersion:
  5137. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5138. type: string
  5139. kind:
  5140. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5141. type: string
  5142. metadata:
  5143. type: object
  5144. spec:
  5145. description: Spec represents the specification of a Ceph COSI Driver
  5146. properties:
  5147. deploymentStrategy:
  5148. description: DeploymentStrategy is the strategy to use to deploy the COSI driver.
  5149. enum:
  5150. - Never
  5151. - Auto
  5152. - Always
  5153. type: string
  5154. image:
  5155. description: Image is the container image to run the Ceph COSI driver
  5156. type: string
  5157. objectProvisionerImage:
  5158. description: ObjectProvisionerImage is the container image to run the COSI driver sidecar
  5159. type: string
  5160. placement:
  5161. description: Placement is the placement strategy to use for the COSI driver
  5162. properties:
  5163. nodeAffinity:
  5164. description: NodeAffinity is a group of node affinity scheduling rules
  5165. properties:
  5166. preferredDuringSchedulingIgnoredDuringExecution:
  5167. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  5168. items:
  5169. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  5170. properties:
  5171. preference:
  5172. description: A node selector term, associated with the corresponding weight.
  5173. properties:
  5174. matchExpressions:
  5175. description: A list of node selector requirements by node's labels.
  5176. items:
  5177. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5178. properties:
  5179. key:
  5180. description: The label key that the selector applies to.
  5181. type: string
  5182. operator:
  5183. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5184. type: string
  5185. values:
  5186. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5187. items:
  5188. type: string
  5189. type: array
  5190. required:
  5191. - key
  5192. - operator
  5193. type: object
  5194. type: array
  5195. matchFields:
  5196. description: A list of node selector requirements by node's fields.
  5197. items:
  5198. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5199. properties:
  5200. key:
  5201. description: The label key that the selector applies to.
  5202. type: string
  5203. operator:
  5204. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5205. type: string
  5206. values:
  5207. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5208. items:
  5209. type: string
  5210. type: array
  5211. required:
  5212. - key
  5213. - operator
  5214. type: object
  5215. type: array
  5216. type: object
  5217. x-kubernetes-map-type: atomic
  5218. weight:
  5219. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5220. format: int32
  5221. type: integer
  5222. required:
  5223. - preference
  5224. - weight
  5225. type: object
  5226. type: array
  5227. requiredDuringSchedulingIgnoredDuringExecution:
  5228. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  5229. properties:
  5230. nodeSelectorTerms:
  5231. description: Required. A list of node selector terms. The terms are ORed.
  5232. items:
  5233. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  5234. properties:
  5235. matchExpressions:
  5236. description: A list of node selector requirements by node's labels.
  5237. items:
  5238. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5239. properties:
  5240. key:
  5241. description: The label key that the selector applies to.
  5242. type: string
  5243. operator:
  5244. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5245. type: string
  5246. values:
  5247. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5248. items:
  5249. type: string
  5250. type: array
  5251. required:
  5252. - key
  5253. - operator
  5254. type: object
  5255. type: array
  5256. matchFields:
  5257. description: A list of node selector requirements by node's fields.
  5258. items:
  5259. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5260. properties:
  5261. key:
  5262. description: The label key that the selector applies to.
  5263. type: string
  5264. operator:
  5265. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5266. type: string
  5267. values:
  5268. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5269. items:
  5270. type: string
  5271. type: array
  5272. required:
  5273. - key
  5274. - operator
  5275. type: object
  5276. type: array
  5277. type: object
  5278. x-kubernetes-map-type: atomic
  5279. type: array
  5280. required:
  5281. - nodeSelectorTerms
  5282. type: object
  5283. x-kubernetes-map-type: atomic
  5284. type: object
  5285. podAffinity:
  5286. description: PodAffinity is a group of inter pod affinity scheduling rules
  5287. properties:
  5288. preferredDuringSchedulingIgnoredDuringExecution:
  5289. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5290. items:
  5291. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5292. properties:
  5293. podAffinityTerm:
  5294. description: Required. A pod affinity term, associated with the corresponding weight.
  5295. properties:
  5296. labelSelector:
  5297. description: A label query over a set of resources, in this case pods.
  5298. properties:
  5299. matchExpressions:
  5300. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5301. items:
  5302. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5303. properties:
  5304. key:
  5305. description: key is the label key that the selector applies to.
  5306. type: string
  5307. operator:
  5308. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5309. type: string
  5310. values:
  5311. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5312. items:
  5313. type: string
  5314. type: array
  5315. required:
  5316. - key
  5317. - operator
  5318. type: object
  5319. type: array
  5320. matchLabels:
  5321. additionalProperties:
  5322. type: string
  5323. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5324. type: object
  5325. type: object
  5326. x-kubernetes-map-type: atomic
  5327. namespaceSelector:
  5328. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5329. properties:
  5330. matchExpressions:
  5331. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5332. items:
  5333. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5334. properties:
  5335. key:
  5336. description: key is the label key that the selector applies to.
  5337. type: string
  5338. operator:
  5339. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5340. type: string
  5341. values:
  5342. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5343. items:
  5344. type: string
  5345. type: array
  5346. required:
  5347. - key
  5348. - operator
  5349. type: object
  5350. type: array
  5351. matchLabels:
  5352. additionalProperties:
  5353. type: string
  5354. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5355. type: object
  5356. type: object
  5357. x-kubernetes-map-type: atomic
  5358. namespaces:
  5359. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5360. items:
  5361. type: string
  5362. type: array
  5363. topologyKey:
  5364. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5365. type: string
  5366. required:
  5367. - topologyKey
  5368. type: object
  5369. weight:
  5370. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5371. format: int32
  5372. type: integer
  5373. required:
  5374. - podAffinityTerm
  5375. - weight
  5376. type: object
  5377. type: array
  5378. requiredDuringSchedulingIgnoredDuringExecution:
  5379. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5380. items:
  5381. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5382. properties:
  5383. labelSelector:
  5384. description: A label query over a set of resources, in this case pods.
  5385. properties:
  5386. matchExpressions:
  5387. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5388. items:
  5389. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5390. properties:
  5391. key:
  5392. description: key is the label key that the selector applies to.
  5393. type: string
  5394. operator:
  5395. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5396. type: string
  5397. values:
  5398. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5399. items:
  5400. type: string
  5401. type: array
  5402. required:
  5403. - key
  5404. - operator
  5405. type: object
  5406. type: array
  5407. matchLabels:
  5408. additionalProperties:
  5409. type: string
  5410. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5411. type: object
  5412. type: object
  5413. x-kubernetes-map-type: atomic
  5414. namespaceSelector:
  5415. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5416. properties:
  5417. matchExpressions:
  5418. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5419. items:
  5420. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5421. properties:
  5422. key:
  5423. description: key is the label key that the selector applies to.
  5424. type: string
  5425. operator:
  5426. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5427. type: string
  5428. values:
  5429. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5430. items:
  5431. type: string
  5432. type: array
  5433. required:
  5434. - key
  5435. - operator
  5436. type: object
  5437. type: array
  5438. matchLabels:
  5439. additionalProperties:
  5440. type: string
  5441. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5442. type: object
  5443. type: object
  5444. x-kubernetes-map-type: atomic
  5445. namespaces:
  5446. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5447. items:
  5448. type: string
  5449. type: array
  5450. topologyKey:
  5451. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5452. type: string
  5453. required:
  5454. - topologyKey
  5455. type: object
  5456. type: array
  5457. type: object
  5458. podAntiAffinity:
  5459. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  5460. properties:
  5461. preferredDuringSchedulingIgnoredDuringExecution:
  5462. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5463. items:
  5464. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5465. properties:
  5466. podAffinityTerm:
  5467. description: Required. A pod affinity term, associated with the corresponding weight.
  5468. properties:
  5469. labelSelector:
  5470. description: A label query over a set of resources, in this case pods.
  5471. properties:
  5472. matchExpressions:
  5473. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5474. items:
  5475. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5476. properties:
  5477. key:
  5478. description: key is the label key that the selector applies to.
  5479. type: string
  5480. operator:
  5481. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5482. type: string
  5483. values:
  5484. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5485. items:
  5486. type: string
  5487. type: array
  5488. required:
  5489. - key
  5490. - operator
  5491. type: object
  5492. type: array
  5493. matchLabels:
  5494. additionalProperties:
  5495. type: string
  5496. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5497. type: object
  5498. type: object
  5499. x-kubernetes-map-type: atomic
  5500. namespaceSelector:
  5501. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5502. properties:
  5503. matchExpressions:
  5504. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5505. items:
  5506. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5507. properties:
  5508. key:
  5509. description: key is the label key that the selector applies to.
  5510. type: string
  5511. operator:
  5512. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5513. type: string
  5514. values:
  5515. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5516. items:
  5517. type: string
  5518. type: array
  5519. required:
  5520. - key
  5521. - operator
  5522. type: object
  5523. type: array
  5524. matchLabels:
  5525. additionalProperties:
  5526. type: string
  5527. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5528. type: object
  5529. type: object
  5530. x-kubernetes-map-type: atomic
  5531. namespaces:
  5532. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5533. items:
  5534. type: string
  5535. type: array
  5536. topologyKey:
  5537. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5538. type: string
  5539. required:
  5540. - topologyKey
  5541. type: object
  5542. weight:
  5543. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5544. format: int32
  5545. type: integer
  5546. required:
  5547. - podAffinityTerm
  5548. - weight
  5549. type: object
  5550. type: array
  5551. requiredDuringSchedulingIgnoredDuringExecution:
  5552. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5553. items:
  5554. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5555. properties:
  5556. labelSelector:
  5557. description: A label query over a set of resources, in this case pods.
  5558. properties:
  5559. matchExpressions:
  5560. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5561. items:
  5562. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5563. properties:
  5564. key:
  5565. description: key is the label key that the selector applies to.
  5566. type: string
  5567. operator:
  5568. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5569. type: string
  5570. values:
  5571. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5572. items:
  5573. type: string
  5574. type: array
  5575. required:
  5576. - key
  5577. - operator
  5578. type: object
  5579. type: array
  5580. matchLabels:
  5581. additionalProperties:
  5582. type: string
  5583. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5584. type: object
  5585. type: object
  5586. x-kubernetes-map-type: atomic
  5587. namespaceSelector:
  5588. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5589. properties:
  5590. matchExpressions:
  5591. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5592. items:
  5593. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5594. properties:
  5595. key:
  5596. description: key is the label key that the selector applies to.
  5597. type: string
  5598. operator:
  5599. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5600. type: string
  5601. values:
  5602. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5603. items:
  5604. type: string
  5605. type: array
  5606. required:
  5607. - key
  5608. - operator
  5609. type: object
  5610. type: array
  5611. matchLabels:
  5612. additionalProperties:
  5613. type: string
  5614. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5615. type: object
  5616. type: object
  5617. x-kubernetes-map-type: atomic
  5618. namespaces:
  5619. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5620. items:
  5621. type: string
  5622. type: array
  5623. topologyKey:
  5624. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5625. type: string
  5626. required:
  5627. - topologyKey
  5628. type: object
  5629. type: array
  5630. type: object
  5631. tolerations:
  5632. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  5633. items:
  5634. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  5635. properties:
  5636. effect:
  5637. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  5638. type: string
  5639. key:
  5640. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  5641. type: string
  5642. operator:
  5643. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  5644. type: string
  5645. tolerationSeconds:
  5646. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  5647. format: int64
  5648. type: integer
  5649. value:
  5650. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  5651. type: string
  5652. type: object
  5653. type: array
  5654. topologySpreadConstraints:
  5655. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  5656. items:
  5657. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  5658. properties:
  5659. labelSelector:
  5660. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  5661. properties:
  5662. matchExpressions:
  5663. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5664. items:
  5665. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5666. properties:
  5667. key:
  5668. description: key is the label key that the selector applies to.
  5669. type: string
  5670. operator:
  5671. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5672. type: string
  5673. values:
  5674. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5675. items:
  5676. type: string
  5677. type: array
  5678. required:
  5679. - key
  5680. - operator
  5681. type: object
  5682. type: array
  5683. matchLabels:
  5684. additionalProperties:
  5685. type: string
  5686. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5687. type: object
  5688. type: object
  5689. x-kubernetes-map-type: atomic
  5690. matchLabelKeys:
  5691. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  5692. items:
  5693. type: string
  5694. type: array
  5695. x-kubernetes-list-type: atomic
  5696. maxSkew:
  5697. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  5698. format: int32
  5699. type: integer
  5700. minDomains:
  5701. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  5702. format: int32
  5703. type: integer
  5704. nodeAffinityPolicy:
  5705. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  5706. type: string
  5707. nodeTaintsPolicy:
  5708. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  5709. type: string
  5710. topologyKey:
  5711. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  5712. type: string
  5713. whenUnsatisfiable:
  5714. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  5715. type: string
  5716. required:
  5717. - maxSkew
  5718. - topologyKey
  5719. - whenUnsatisfiable
  5720. type: object
  5721. type: array
  5722. type: object
  5723. resources:
  5724. description: Resources is the resource requirements for the COSI driver
  5725. properties:
  5726. claims:
  5727. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  5728. items:
  5729. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  5730. properties:
  5731. name:
  5732. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  5733. type: string
  5734. required:
  5735. - name
  5736. type: object
  5737. type: array
  5738. x-kubernetes-list-map-keys:
  5739. - name
  5740. x-kubernetes-list-type: map
  5741. limits:
  5742. additionalProperties:
  5743. anyOf:
  5744. - type: integer
  5745. - type: string
  5746. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5747. x-kubernetes-int-or-string: true
  5748. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  5749. type: object
  5750. requests:
  5751. additionalProperties:
  5752. anyOf:
  5753. - type: integer
  5754. - type: string
  5755. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5756. x-kubernetes-int-or-string: true
  5757. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  5758. type: object
  5759. type: object
  5760. type: object
  5761. required:
  5762. - metadata
  5763. - spec
  5764. type: object
  5765. served: true
  5766. storage: true
  5767. ---
  5768. apiVersion: apiextensions.k8s.io/v1
  5769. kind: CustomResourceDefinition
  5770. metadata:
  5771. annotations:
  5772. controller-gen.kubebuilder.io/version: v0.11.3
  5773. creationTimestamp: null
  5774. name: cephfilesystemmirrors.ceph.rook.io
  5775. spec:
  5776. group: ceph.rook.io
  5777. names:
  5778. kind: CephFilesystemMirror
  5779. listKind: CephFilesystemMirrorList
  5780. plural: cephfilesystemmirrors
  5781. singular: cephfilesystemmirror
  5782. scope: Namespaced
  5783. versions:
  5784. - additionalPrinterColumns:
  5785. - jsonPath: .status.phase
  5786. name: Phase
  5787. type: string
  5788. name: v1
  5789. schema:
  5790. openAPIV3Schema:
  5791. description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
  5792. properties:
  5793. apiVersion:
  5794. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5795. type: string
  5796. kind:
  5797. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5798. type: string
  5799. metadata:
  5800. type: object
  5801. spec:
  5802. description: FilesystemMirroringSpec is the filesystem mirroring specification
  5803. properties:
  5804. annotations:
  5805. additionalProperties:
  5806. type: string
  5807. description: The annotations-related configuration to add/set on each Pod related object.
  5808. nullable: true
  5809. type: object
  5810. labels:
  5811. additionalProperties:
  5812. type: string
  5813. description: The labels-related configuration to add/set on each Pod related object.
  5814. nullable: true
  5815. type: object
  5816. placement:
  5817. description: The affinity to place the rgw pods (default is to place on any available node)
  5818. nullable: true
  5819. properties:
  5820. nodeAffinity:
  5821. description: NodeAffinity is a group of node affinity scheduling rules
  5822. properties:
  5823. preferredDuringSchedulingIgnoredDuringExecution:
  5824. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  5825. items:
  5826. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  5827. properties:
  5828. preference:
  5829. description: A node selector term, associated with the corresponding weight.
  5830. properties:
  5831. matchExpressions:
  5832. description: A list of node selector requirements by node's labels.
  5833. items:
  5834. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5835. properties:
  5836. key:
  5837. description: The label key that the selector applies to.
  5838. type: string
  5839. operator:
  5840. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5841. type: string
  5842. values:
  5843. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5844. items:
  5845. type: string
  5846. type: array
  5847. required:
  5848. - key
  5849. - operator
  5850. type: object
  5851. type: array
  5852. matchFields:
  5853. description: A list of node selector requirements by node's fields.
  5854. items:
  5855. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5856. properties:
  5857. key:
  5858. description: The label key that the selector applies to.
  5859. type: string
  5860. operator:
  5861. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5862. type: string
  5863. values:
  5864. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5865. items:
  5866. type: string
  5867. type: array
  5868. required:
  5869. - key
  5870. - operator
  5871. type: object
  5872. type: array
  5873. type: object
  5874. x-kubernetes-map-type: atomic
  5875. weight:
  5876. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5877. format: int32
  5878. type: integer
  5879. required:
  5880. - preference
  5881. - weight
  5882. type: object
  5883. type: array
  5884. requiredDuringSchedulingIgnoredDuringExecution:
  5885. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  5886. properties:
  5887. nodeSelectorTerms:
  5888. description: Required. A list of node selector terms. The terms are ORed.
  5889. items:
  5890. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  5891. properties:
  5892. matchExpressions:
  5893. description: A list of node selector requirements by node's labels.
  5894. items:
  5895. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5896. properties:
  5897. key:
  5898. description: The label key that the selector applies to.
  5899. type: string
  5900. operator:
  5901. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5902. type: string
  5903. values:
  5904. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5905. items:
  5906. type: string
  5907. type: array
  5908. required:
  5909. - key
  5910. - operator
  5911. type: object
  5912. type: array
  5913. matchFields:
  5914. description: A list of node selector requirements by node's fields.
  5915. items:
  5916. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5917. properties:
  5918. key:
  5919. description: The label key that the selector applies to.
  5920. type: string
  5921. operator:
  5922. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5923. type: string
  5924. values:
  5925. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5926. items:
  5927. type: string
  5928. type: array
  5929. required:
  5930. - key
  5931. - operator
  5932. type: object
  5933. type: array
  5934. type: object
  5935. x-kubernetes-map-type: atomic
  5936. type: array
  5937. required:
  5938. - nodeSelectorTerms
  5939. type: object
  5940. x-kubernetes-map-type: atomic
  5941. type: object
  5942. podAffinity:
  5943. description: PodAffinity is a group of inter pod affinity scheduling rules
  5944. properties:
  5945. preferredDuringSchedulingIgnoredDuringExecution:
  5946. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5947. items:
  5948. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5949. properties:
  5950. podAffinityTerm:
  5951. description: Required. A pod affinity term, associated with the corresponding weight.
  5952. properties:
  5953. labelSelector:
  5954. description: A label query over a set of resources, in this case pods.
  5955. properties:
  5956. matchExpressions:
  5957. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5958. items:
  5959. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5960. properties:
  5961. key:
  5962. description: key is the label key that the selector applies to.
  5963. type: string
  5964. operator:
  5965. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5966. type: string
  5967. values:
  5968. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5969. items:
  5970. type: string
  5971. type: array
  5972. required:
  5973. - key
  5974. - operator
  5975. type: object
  5976. type: array
  5977. matchLabels:
  5978. additionalProperties:
  5979. type: string
  5980. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5981. type: object
  5982. type: object
  5983. x-kubernetes-map-type: atomic
  5984. namespaceSelector:
  5985. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5986. properties:
  5987. matchExpressions:
  5988. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5989. items:
  5990. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5991. properties:
  5992. key:
  5993. description: key is the label key that the selector applies to.
  5994. type: string
  5995. operator:
  5996. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5997. type: string
  5998. values:
  5999. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6000. items:
  6001. type: string
  6002. type: array
  6003. required:
  6004. - key
  6005. - operator
  6006. type: object
  6007. type: array
  6008. matchLabels:
  6009. additionalProperties:
  6010. type: string
  6011. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6012. type: object
  6013. type: object
  6014. x-kubernetes-map-type: atomic
  6015. namespaces:
  6016. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6017. items:
  6018. type: string
  6019. type: array
  6020. topologyKey:
  6021. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6022. type: string
  6023. required:
  6024. - topologyKey
  6025. type: object
  6026. weight:
  6027. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6028. format: int32
  6029. type: integer
  6030. required:
  6031. - podAffinityTerm
  6032. - weight
  6033. type: object
  6034. type: array
  6035. requiredDuringSchedulingIgnoredDuringExecution:
  6036. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6037. items:
  6038. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6039. properties:
  6040. labelSelector:
  6041. description: A label query over a set of resources, in this case pods.
  6042. properties:
  6043. matchExpressions:
  6044. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6045. items:
  6046. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6047. properties:
  6048. key:
  6049. description: key is the label key that the selector applies to.
  6050. type: string
  6051. operator:
  6052. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6053. type: string
  6054. values:
  6055. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6056. items:
  6057. type: string
  6058. type: array
  6059. required:
  6060. - key
  6061. - operator
  6062. type: object
  6063. type: array
  6064. matchLabels:
  6065. additionalProperties:
  6066. type: string
  6067. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6068. type: object
  6069. type: object
  6070. x-kubernetes-map-type: atomic
  6071. namespaceSelector:
  6072. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6073. properties:
  6074. matchExpressions:
  6075. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6076. items:
  6077. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6078. properties:
  6079. key:
  6080. description: key is the label key that the selector applies to.
  6081. type: string
  6082. operator:
  6083. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6084. type: string
  6085. values:
  6086. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6087. items:
  6088. type: string
  6089. type: array
  6090. required:
  6091. - key
  6092. - operator
  6093. type: object
  6094. type: array
  6095. matchLabels:
  6096. additionalProperties:
  6097. type: string
  6098. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6099. type: object
  6100. type: object
  6101. x-kubernetes-map-type: atomic
  6102. namespaces:
  6103. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6104. items:
  6105. type: string
  6106. type: array
  6107. topologyKey:
  6108. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6109. type: string
  6110. required:
  6111. - topologyKey
  6112. type: object
  6113. type: array
  6114. type: object
  6115. podAntiAffinity:
  6116. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  6117. properties:
  6118. preferredDuringSchedulingIgnoredDuringExecution:
  6119. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  6120. items:
  6121. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6122. properties:
  6123. podAffinityTerm:
  6124. description: Required. A pod affinity term, associated with the corresponding weight.
  6125. properties:
  6126. labelSelector:
  6127. description: A label query over a set of resources, in this case pods.
  6128. properties:
  6129. matchExpressions:
  6130. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6131. items:
  6132. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6133. properties:
  6134. key:
  6135. description: key is the label key that the selector applies to.
  6136. type: string
  6137. operator:
  6138. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6139. type: string
  6140. values:
  6141. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6142. items:
  6143. type: string
  6144. type: array
  6145. required:
  6146. - key
  6147. - operator
  6148. type: object
  6149. type: array
  6150. matchLabels:
  6151. additionalProperties:
  6152. type: string
  6153. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6154. type: object
  6155. type: object
  6156. x-kubernetes-map-type: atomic
  6157. namespaceSelector:
  6158. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6159. properties:
  6160. matchExpressions:
  6161. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6162. items:
  6163. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6164. properties:
  6165. key:
  6166. description: key is the label key that the selector applies to.
  6167. type: string
  6168. operator:
  6169. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6170. type: string
  6171. values:
  6172. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6173. items:
  6174. type: string
  6175. type: array
  6176. required:
  6177. - key
  6178. - operator
  6179. type: object
  6180. type: array
  6181. matchLabels:
  6182. additionalProperties:
  6183. type: string
  6184. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6185. type: object
  6186. type: object
  6187. x-kubernetes-map-type: atomic
  6188. namespaces:
  6189. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6190. items:
  6191. type: string
  6192. type: array
  6193. topologyKey:
  6194. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6195. type: string
  6196. required:
  6197. - topologyKey
  6198. type: object
  6199. weight:
  6200. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6201. format: int32
  6202. type: integer
  6203. required:
  6204. - podAffinityTerm
  6205. - weight
  6206. type: object
  6207. type: array
  6208. requiredDuringSchedulingIgnoredDuringExecution:
  6209. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6210. items:
  6211. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6212. properties:
  6213. labelSelector:
  6214. description: A label query over a set of resources, in this case pods.
  6215. properties:
  6216. matchExpressions:
  6217. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6218. items:
  6219. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6220. properties:
  6221. key:
  6222. description: key is the label key that the selector applies to.
  6223. type: string
  6224. operator:
  6225. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6226. type: string
  6227. values:
  6228. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6229. items:
  6230. type: string
  6231. type: array
  6232. required:
  6233. - key
  6234. - operator
  6235. type: object
  6236. type: array
  6237. matchLabels:
  6238. additionalProperties:
  6239. type: string
  6240. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6241. type: object
  6242. type: object
  6243. x-kubernetes-map-type: atomic
  6244. namespaceSelector:
  6245. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6246. properties:
  6247. matchExpressions:
  6248. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6249. items:
  6250. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6251. properties:
  6252. key:
  6253. description: key is the label key that the selector applies to.
  6254. type: string
  6255. operator:
  6256. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6257. type: string
  6258. values:
  6259. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6260. items:
  6261. type: string
  6262. type: array
  6263. required:
  6264. - key
  6265. - operator
  6266. type: object
  6267. type: array
  6268. matchLabels:
  6269. additionalProperties:
  6270. type: string
  6271. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6272. type: object
  6273. type: object
  6274. x-kubernetes-map-type: atomic
  6275. namespaces:
  6276. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6277. items:
  6278. type: string
  6279. type: array
  6280. topologyKey:
  6281. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6282. type: string
  6283. required:
  6284. - topologyKey
  6285. type: object
  6286. type: array
  6287. type: object
  6288. tolerations:
  6289. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  6290. items:
  6291. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  6292. properties:
  6293. effect:
  6294. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  6295. type: string
  6296. key:
  6297. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  6298. type: string
  6299. operator:
  6300. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  6301. type: string
  6302. tolerationSeconds:
  6303. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  6304. format: int64
  6305. type: integer
  6306. value:
  6307. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  6308. type: string
  6309. type: object
  6310. type: array
  6311. topologySpreadConstraints:
  6312. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  6313. items:
  6314. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  6315. properties:
  6316. labelSelector:
  6317. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  6318. properties:
  6319. matchExpressions:
  6320. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6321. items:
  6322. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6323. properties:
  6324. key:
  6325. description: key is the label key that the selector applies to.
  6326. type: string
  6327. operator:
  6328. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6329. type: string
  6330. values:
  6331. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6332. items:
  6333. type: string
  6334. type: array
  6335. required:
  6336. - key
  6337. - operator
  6338. type: object
  6339. type: array
  6340. matchLabels:
  6341. additionalProperties:
  6342. type: string
  6343. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6344. type: object
  6345. type: object
  6346. x-kubernetes-map-type: atomic
  6347. matchLabelKeys:
  6348. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  6349. items:
  6350. type: string
  6351. type: array
  6352. x-kubernetes-list-type: atomic
  6353. maxSkew:
  6354. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  6355. format: int32
  6356. type: integer
  6357. minDomains:
  6358. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  6359. format: int32
  6360. type: integer
  6361. nodeAffinityPolicy:
  6362. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  6363. type: string
  6364. nodeTaintsPolicy:
  6365. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  6366. type: string
  6367. topologyKey:
  6368. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  6369. type: string
  6370. whenUnsatisfiable:
  6371. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  6372. type: string
  6373. required:
  6374. - maxSkew
  6375. - topologyKey
  6376. - whenUnsatisfiable
  6377. type: object
  6378. type: array
  6379. type: object
  6380. priorityClassName:
  6381. description: PriorityClassName sets priority class on the cephfs-mirror pods
  6382. type: string
  6383. resources:
  6384. description: The resource requirements for the cephfs-mirror pods
  6385. nullable: true
  6386. properties:
  6387. claims:
  6388. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  6389. items:
  6390. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  6391. properties:
  6392. name:
  6393. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  6394. type: string
  6395. required:
  6396. - name
  6397. type: object
  6398. type: array
  6399. x-kubernetes-list-map-keys:
  6400. - name
  6401. x-kubernetes-list-type: map
  6402. limits:
  6403. additionalProperties:
  6404. anyOf:
  6405. - type: integer
  6406. - type: string
  6407. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6408. x-kubernetes-int-or-string: true
  6409. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  6410. type: object
  6411. requests:
  6412. additionalProperties:
  6413. anyOf:
  6414. - type: integer
  6415. - type: string
  6416. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6417. x-kubernetes-int-or-string: true
  6418. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  6419. type: object
  6420. type: object
  6421. type: object
  6422. status:
  6423. description: Status represents the status of an object
  6424. properties:
  6425. conditions:
  6426. items:
  6427. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  6428. properties:
  6429. lastHeartbeatTime:
  6430. format: date-time
  6431. type: string
  6432. lastTransitionTime:
  6433. format: date-time
  6434. type: string
  6435. message:
  6436. type: string
  6437. reason:
  6438. description: ConditionReason is a reason for a condition
  6439. type: string
  6440. status:
  6441. type: string
  6442. type:
  6443. description: ConditionType represent a resource's status
  6444. type: string
  6445. type: object
  6446. type: array
  6447. observedGeneration:
  6448. description: ObservedGeneration is the latest generation observed by the controller.
  6449. format: int64
  6450. type: integer
  6451. phase:
  6452. type: string
  6453. type: object
  6454. required:
  6455. - metadata
  6456. - spec
  6457. type: object
  6458. served: true
  6459. storage: true
  6460. subresources:
  6461. status: {}
  6462. ---
  6463. apiVersion: apiextensions.k8s.io/v1
  6464. kind: CustomResourceDefinition
  6465. metadata:
  6466. annotations:
  6467. controller-gen.kubebuilder.io/version: v0.11.3
  6468. creationTimestamp: null
  6469. name: cephfilesystems.ceph.rook.io
  6470. spec:
  6471. group: ceph.rook.io
  6472. names:
  6473. kind: CephFilesystem
  6474. listKind: CephFilesystemList
  6475. plural: cephfilesystems
  6476. singular: cephfilesystem
  6477. scope: Namespaced
  6478. versions:
  6479. - additionalPrinterColumns:
  6480. - description: Number of desired active MDS daemons
  6481. jsonPath: .spec.metadataServer.activeCount
  6482. name: ActiveMDS
  6483. type: string
  6484. - jsonPath: .metadata.creationTimestamp
  6485. name: Age
  6486. type: date
  6487. - jsonPath: .status.phase
  6488. name: Phase
  6489. type: string
  6490. name: v1
  6491. schema:
  6492. openAPIV3Schema:
  6493. description: CephFilesystem represents a Ceph Filesystem
  6494. properties:
  6495. apiVersion:
  6496. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6497. type: string
  6498. kind:
  6499. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6500. type: string
  6501. metadata:
  6502. type: object
  6503. spec:
  6504. description: FilesystemSpec represents the spec of a file system
  6505. properties:
  6506. dataPools:
  6507. description: The data pool settings, with optional predefined pool name.
  6508. items:
  6509. description: NamedPoolSpec represents the named ceph pool spec
  6510. properties:
  6511. compressionMode:
  6512. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6513. enum:
  6514. - none
  6515. - passive
  6516. - aggressive
  6517. - force
  6518. - ""
  6519. nullable: true
  6520. type: string
  6521. crushRoot:
  6522. description: The root of the crush hierarchy utilized by the pool
  6523. nullable: true
  6524. type: string
  6525. deviceClass:
  6526. description: The device class the OSD should set to for use in the pool
  6527. nullable: true
  6528. type: string
  6529. enableRBDStats:
  6530. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6531. type: boolean
  6532. erasureCoded:
  6533. description: The erasure code settings
  6534. properties:
  6535. algorithm:
  6536. description: The algorithm for erasure coding
  6537. type: string
  6538. codingChunks:
  6539. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6540. minimum: 0
  6541. type: integer
  6542. dataChunks:
  6543. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6544. minimum: 0
  6545. type: integer
  6546. required:
  6547. - codingChunks
  6548. - dataChunks
  6549. type: object
  6550. failureDomain:
  6551. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6552. type: string
  6553. mirroring:
  6554. description: The mirroring settings
  6555. properties:
  6556. enabled:
  6557. description: Enabled whether this pool is mirrored or not
  6558. type: boolean
  6559. mode:
  6560. description: 'Mode is the mirroring mode: either pool or image'
  6561. type: string
  6562. peers:
  6563. description: Peers represents the peers spec
  6564. nullable: true
  6565. properties:
  6566. secretNames:
  6567. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6568. items:
  6569. type: string
  6570. type: array
  6571. type: object
  6572. snapshotSchedules:
  6573. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6574. items:
  6575. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6576. properties:
  6577. interval:
  6578. description: Interval represent the periodicity of the snapshot.
  6579. type: string
  6580. path:
  6581. description: Path is the path to snapshot, only valid for CephFS
  6582. type: string
  6583. startTime:
  6584. description: StartTime indicates when to start the snapshot
  6585. type: string
  6586. type: object
  6587. type: array
  6588. type: object
  6589. name:
  6590. description: Name of the pool
  6591. type: string
  6592. parameters:
  6593. additionalProperties:
  6594. type: string
  6595. description: Parameters is a list of properties to enable on a given pool
  6596. nullable: true
  6597. type: object
  6598. x-kubernetes-preserve-unknown-fields: true
  6599. quotas:
  6600. description: The quota settings
  6601. nullable: true
  6602. properties:
  6603. maxBytes:
  6604. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6605. format: int64
  6606. type: integer
  6607. maxObjects:
  6608. description: MaxObjects represents the quota in objects
  6609. format: int64
  6610. type: integer
  6611. maxSize:
  6612. description: MaxSize represents the quota in bytes as a string
  6613. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6614. type: string
  6615. type: object
  6616. replicated:
  6617. description: The replication settings
  6618. properties:
  6619. hybridStorage:
  6620. description: HybridStorage represents hybrid storage tier settings
  6621. nullable: true
  6622. properties:
  6623. primaryDeviceClass:
  6624. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6625. minLength: 1
  6626. type: string
  6627. secondaryDeviceClass:
  6628. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6629. minLength: 1
  6630. type: string
  6631. required:
  6632. - primaryDeviceClass
  6633. - secondaryDeviceClass
  6634. type: object
  6635. replicasPerFailureDomain:
  6636. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6637. minimum: 1
  6638. type: integer
  6639. requireSafeReplicaSize:
  6640. description: RequireSafeReplicaSize if false allows you to set replica 1
  6641. type: boolean
  6642. size:
  6643. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6644. minimum: 0
  6645. type: integer
  6646. subFailureDomain:
  6647. description: SubFailureDomain the name of the sub-failure domain
  6648. type: string
  6649. targetSizeRatio:
  6650. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6651. type: number
  6652. required:
  6653. - size
  6654. type: object
  6655. statusCheck:
  6656. description: The mirroring statusCheck
  6657. properties:
  6658. mirror:
  6659. description: HealthCheckSpec represents the health check of an object store bucket
  6660. nullable: true
  6661. properties:
  6662. disabled:
  6663. type: boolean
  6664. interval:
  6665. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  6666. type: string
  6667. timeout:
  6668. type: string
  6669. type: object
  6670. type: object
  6671. x-kubernetes-preserve-unknown-fields: true
  6672. type: object
  6673. nullable: true
  6674. type: array
  6675. metadataPool:
  6676. description: The metadata pool settings
  6677. nullable: true
  6678. properties:
  6679. compressionMode:
  6680. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6681. enum:
  6682. - none
  6683. - passive
  6684. - aggressive
  6685. - force
  6686. - ""
  6687. nullable: true
  6688. type: string
  6689. crushRoot:
  6690. description: The root of the crush hierarchy utilized by the pool
  6691. nullable: true
  6692. type: string
  6693. deviceClass:
  6694. description: The device class the OSD should set to for use in the pool
  6695. nullable: true
  6696. type: string
  6697. enableRBDStats:
  6698. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6699. type: boolean
  6700. erasureCoded:
  6701. description: The erasure code settings
  6702. properties:
  6703. algorithm:
  6704. description: The algorithm for erasure coding
  6705. type: string
  6706. codingChunks:
  6707. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6708. minimum: 0
  6709. type: integer
  6710. dataChunks:
  6711. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6712. minimum: 0
  6713. type: integer
  6714. required:
  6715. - codingChunks
  6716. - dataChunks
  6717. type: object
  6718. failureDomain:
  6719. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6720. type: string
  6721. mirroring:
  6722. description: The mirroring settings
  6723. properties:
  6724. enabled:
  6725. description: Enabled whether this pool is mirrored or not
  6726. type: boolean
  6727. mode:
  6728. description: 'Mode is the mirroring mode: either pool or image'
  6729. type: string
  6730. peers:
  6731. description: Peers represents the peers spec
  6732. nullable: true
  6733. properties:
  6734. secretNames:
  6735. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6736. items:
  6737. type: string
  6738. type: array
  6739. type: object
  6740. snapshotSchedules:
  6741. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6742. items:
  6743. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6744. properties:
  6745. interval:
  6746. description: Interval represent the periodicity of the snapshot.
  6747. type: string
  6748. path:
  6749. description: Path is the path to snapshot, only valid for CephFS
  6750. type: string
  6751. startTime:
  6752. description: StartTime indicates when to start the snapshot
  6753. type: string
  6754. type: object
  6755. type: array
  6756. type: object
  6757. parameters:
  6758. additionalProperties:
  6759. type: string
  6760. description: Parameters is a list of properties to enable on a given pool
  6761. nullable: true
  6762. type: object
  6763. x-kubernetes-preserve-unknown-fields: true
  6764. quotas:
  6765. description: The quota settings
  6766. nullable: true
  6767. properties:
  6768. maxBytes:
  6769. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6770. format: int64
  6771. type: integer
  6772. maxObjects:
  6773. description: MaxObjects represents the quota in objects
  6774. format: int64
  6775. type: integer
  6776. maxSize:
  6777. description: MaxSize represents the quota in bytes as a string
  6778. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6779. type: string
  6780. type: object
  6781. replicated:
  6782. description: The replication settings
  6783. properties:
  6784. hybridStorage:
  6785. description: HybridStorage represents hybrid storage tier settings
  6786. nullable: true
  6787. properties:
  6788. primaryDeviceClass:
  6789. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6790. minLength: 1
  6791. type: string
  6792. secondaryDeviceClass:
  6793. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6794. minLength: 1
  6795. type: string
  6796. required:
  6797. - primaryDeviceClass
  6798. - secondaryDeviceClass
  6799. type: object
  6800. replicasPerFailureDomain:
  6801. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6802. minimum: 1
  6803. type: integer
  6804. requireSafeReplicaSize:
  6805. description: RequireSafeReplicaSize if false allows you to set replica 1
  6806. type: boolean
  6807. size:
  6808. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6809. minimum: 0
  6810. type: integer
  6811. subFailureDomain:
  6812. description: SubFailureDomain the name of the sub-failure domain
  6813. type: string
  6814. targetSizeRatio:
  6815. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6816. type: number
  6817. required:
  6818. - size
  6819. type: object
  6820. statusCheck:
  6821. description: The mirroring statusCheck
  6822. properties:
  6823. mirror:
  6824. description: HealthCheckSpec represents the health check of an object store bucket
  6825. nullable: true
  6826. properties:
  6827. disabled:
  6828. type: boolean
  6829. interval:
  6830. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  6831. type: string
  6832. timeout:
  6833. type: string
  6834. type: object
  6835. type: object
  6836. x-kubernetes-preserve-unknown-fields: true
  6837. type: object
  6838. metadataServer:
  6839. description: The mds pod info
  6840. properties:
  6841. activeCount:
  6842. description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
  6843. format: int32
  6844. maximum: 10
  6845. minimum: 1
  6846. type: integer
  6847. activeStandby:
  6848. description: Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover. If false, standbys will still be available, but will not have a warm metadata cache.
  6849. type: boolean
  6850. annotations:
  6851. additionalProperties:
  6852. type: string
  6853. description: The annotations-related configuration to add/set on each Pod related object.
  6854. nullable: true
  6855. type: object
  6856. x-kubernetes-preserve-unknown-fields: true
  6857. labels:
  6858. additionalProperties:
  6859. type: string
  6860. description: The labels-related configuration to add/set on each Pod related object.
  6861. nullable: true
  6862. type: object
  6863. x-kubernetes-preserve-unknown-fields: true
  6864. livenessProbe:
  6865. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  6866. properties:
  6867. disabled:
  6868. description: Disabled determines whether probe is disable or not
  6869. type: boolean
  6870. probe:
  6871. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  6872. properties:
  6873. exec:
  6874. description: Exec specifies the action to take.
  6875. properties:
  6876. command:
  6877. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  6878. items:
  6879. type: string
  6880. type: array
  6881. type: object
  6882. failureThreshold:
  6883. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  6884. format: int32
  6885. type: integer
  6886. grpc:
  6887. description: GRPC specifies an action involving a GRPC port.
  6888. properties:
  6889. port:
  6890. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  6891. format: int32
  6892. type: integer
  6893. service:
  6894. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  6895. type: string
  6896. required:
  6897. - port
  6898. type: object
  6899. httpGet:
  6900. description: HTTPGet specifies the http request to perform.
  6901. properties:
  6902. host:
  6903. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  6904. type: string
  6905. httpHeaders:
  6906. description: Custom headers to set in the request. HTTP allows repeated headers.
  6907. items:
  6908. description: HTTPHeader describes a custom header to be used in HTTP probes
  6909. properties:
  6910. name:
  6911. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  6912. type: string
  6913. value:
  6914. description: The header field value
  6915. type: string
  6916. required:
  6917. - name
  6918. - value
  6919. type: object
  6920. type: array
  6921. path:
  6922. description: Path to access on the HTTP server.
  6923. type: string
  6924. port:
  6925. anyOf:
  6926. - type: integer
  6927. - type: string
  6928. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  6929. x-kubernetes-int-or-string: true
  6930. scheme:
  6931. description: Scheme to use for connecting to the host. Defaults to HTTP.
  6932. type: string
  6933. required:
  6934. - port
  6935. type: object
  6936. initialDelaySeconds:
  6937. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  6938. format: int32
  6939. type: integer
  6940. periodSeconds:
  6941. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  6942. format: int32
  6943. type: integer
  6944. successThreshold:
  6945. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  6946. format: int32
  6947. type: integer
  6948. tcpSocket:
  6949. description: TCPSocket specifies an action involving a TCP port.
  6950. properties:
  6951. host:
  6952. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  6953. type: string
  6954. port:
  6955. anyOf:
  6956. - type: integer
  6957. - type: string
  6958. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  6959. x-kubernetes-int-or-string: true
  6960. required:
  6961. - port
  6962. type: object
  6963. terminationGracePeriodSeconds:
  6964. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  6965. format: int64
  6966. type: integer
  6967. timeoutSeconds:
  6968. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  6969. format: int32
  6970. type: integer
  6971. type: object
  6972. type: object
  6973. placement:
  6974. description: The affinity to place the mds pods (default is to place on all available node) with a daemonset
  6975. nullable: true
  6976. properties:
  6977. nodeAffinity:
  6978. description: NodeAffinity is a group of node affinity scheduling rules
  6979. properties:
  6980. preferredDuringSchedulingIgnoredDuringExecution:
  6981. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  6982. items:
  6983. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  6984. properties:
  6985. preference:
  6986. description: A node selector term, associated with the corresponding weight.
  6987. properties:
  6988. matchExpressions:
  6989. description: A list of node selector requirements by node's labels.
  6990. items:
  6991. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6992. properties:
  6993. key:
  6994. description: The label key that the selector applies to.
  6995. type: string
  6996. operator:
  6997. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6998. type: string
  6999. values:
  7000. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7001. items:
  7002. type: string
  7003. type: array
  7004. required:
  7005. - key
  7006. - operator
  7007. type: object
  7008. type: array
  7009. matchFields:
  7010. description: A list of node selector requirements by node's fields.
  7011. items:
  7012. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7013. properties:
  7014. key:
  7015. description: The label key that the selector applies to.
  7016. type: string
  7017. operator:
  7018. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7019. type: string
  7020. values:
  7021. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7022. items:
  7023. type: string
  7024. type: array
  7025. required:
  7026. - key
  7027. - operator
  7028. type: object
  7029. type: array
  7030. type: object
  7031. x-kubernetes-map-type: atomic
  7032. weight:
  7033. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  7034. format: int32
  7035. type: integer
  7036. required:
  7037. - preference
  7038. - weight
  7039. type: object
  7040. type: array
  7041. requiredDuringSchedulingIgnoredDuringExecution:
  7042. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  7043. properties:
  7044. nodeSelectorTerms:
  7045. description: Required. A list of node selector terms. The terms are ORed.
  7046. items:
  7047. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  7048. properties:
  7049. matchExpressions:
  7050. description: A list of node selector requirements by node's labels.
  7051. items:
  7052. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7053. properties:
  7054. key:
  7055. description: The label key that the selector applies to.
  7056. type: string
  7057. operator:
  7058. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7059. type: string
  7060. values:
  7061. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7062. items:
  7063. type: string
  7064. type: array
  7065. required:
  7066. - key
  7067. - operator
  7068. type: object
  7069. type: array
  7070. matchFields:
  7071. description: A list of node selector requirements by node's fields.
  7072. items:
  7073. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7074. properties:
  7075. key:
  7076. description: The label key that the selector applies to.
  7077. type: string
  7078. operator:
  7079. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7080. type: string
  7081. values:
  7082. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7083. items:
  7084. type: string
  7085. type: array
  7086. required:
  7087. - key
  7088. - operator
  7089. type: object
  7090. type: array
  7091. type: object
  7092. x-kubernetes-map-type: atomic
  7093. type: array
  7094. required:
  7095. - nodeSelectorTerms
  7096. type: object
  7097. x-kubernetes-map-type: atomic
  7098. type: object
  7099. podAffinity:
  7100. description: PodAffinity is a group of inter pod affinity scheduling rules
  7101. properties:
  7102. preferredDuringSchedulingIgnoredDuringExecution:
  7103. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7104. items:
  7105. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7106. properties:
  7107. podAffinityTerm:
  7108. description: Required. A pod affinity term, associated with the corresponding weight.
  7109. properties:
  7110. labelSelector:
  7111. description: A label query over a set of resources, in this case pods.
  7112. properties:
  7113. matchExpressions:
  7114. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7115. items:
  7116. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7117. properties:
  7118. key:
  7119. description: key is the label key that the selector applies to.
  7120. type: string
  7121. operator:
  7122. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7123. type: string
  7124. values:
  7125. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7126. items:
  7127. type: string
  7128. type: array
  7129. required:
  7130. - key
  7131. - operator
  7132. type: object
  7133. type: array
  7134. matchLabels:
  7135. additionalProperties:
  7136. type: string
  7137. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7138. type: object
  7139. type: object
  7140. x-kubernetes-map-type: atomic
  7141. namespaceSelector:
  7142. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7143. properties:
  7144. matchExpressions:
  7145. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7146. items:
  7147. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7148. properties:
  7149. key:
  7150. description: key is the label key that the selector applies to.
  7151. type: string
  7152. operator:
  7153. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7154. type: string
  7155. values:
  7156. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7157. items:
  7158. type: string
  7159. type: array
  7160. required:
  7161. - key
  7162. - operator
  7163. type: object
  7164. type: array
  7165. matchLabels:
  7166. additionalProperties:
  7167. type: string
  7168. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7169. type: object
  7170. type: object
  7171. x-kubernetes-map-type: atomic
  7172. namespaces:
  7173. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7174. items:
  7175. type: string
  7176. type: array
  7177. topologyKey:
  7178. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7179. type: string
  7180. required:
  7181. - topologyKey
  7182. type: object
  7183. weight:
  7184. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7185. format: int32
  7186. type: integer
  7187. required:
  7188. - podAffinityTerm
  7189. - weight
  7190. type: object
  7191. type: array
  7192. requiredDuringSchedulingIgnoredDuringExecution:
  7193. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7194. items:
  7195. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7196. properties:
  7197. labelSelector:
  7198. description: A label query over a set of resources, in this case pods.
  7199. properties:
  7200. matchExpressions:
  7201. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7202. items:
  7203. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7204. properties:
  7205. key:
  7206. description: key is the label key that the selector applies to.
  7207. type: string
  7208. operator:
  7209. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7210. type: string
  7211. values:
  7212. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7213. items:
  7214. type: string
  7215. type: array
  7216. required:
  7217. - key
  7218. - operator
  7219. type: object
  7220. type: array
  7221. matchLabels:
  7222. additionalProperties:
  7223. type: string
  7224. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7225. type: object
  7226. type: object
  7227. x-kubernetes-map-type: atomic
  7228. namespaceSelector:
  7229. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7230. properties:
  7231. matchExpressions:
  7232. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7233. items:
  7234. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7235. properties:
  7236. key:
  7237. description: key is the label key that the selector applies to.
  7238. type: string
  7239. operator:
  7240. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7241. type: string
  7242. values:
  7243. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7244. items:
  7245. type: string
  7246. type: array
  7247. required:
  7248. - key
  7249. - operator
  7250. type: object
  7251. type: array
  7252. matchLabels:
  7253. additionalProperties:
  7254. type: string
  7255. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7256. type: object
  7257. type: object
  7258. x-kubernetes-map-type: atomic
  7259. namespaces:
  7260. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7261. items:
  7262. type: string
  7263. type: array
  7264. topologyKey:
  7265. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7266. type: string
  7267. required:
  7268. - topologyKey
  7269. type: object
  7270. type: array
  7271. type: object
  7272. podAntiAffinity:
  7273. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  7274. properties:
  7275. preferredDuringSchedulingIgnoredDuringExecution:
  7276. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7277. items:
  7278. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7279. properties:
  7280. podAffinityTerm:
  7281. description: Required. A pod affinity term, associated with the corresponding weight.
  7282. properties:
  7283. labelSelector:
  7284. description: A label query over a set of resources, in this case pods.
  7285. properties:
  7286. matchExpressions:
  7287. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7288. items:
  7289. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7290. properties:
  7291. key:
  7292. description: key is the label key that the selector applies to.
  7293. type: string
  7294. operator:
  7295. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7296. type: string
  7297. values:
  7298. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7299. items:
  7300. type: string
  7301. type: array
  7302. required:
  7303. - key
  7304. - operator
  7305. type: object
  7306. type: array
  7307. matchLabels:
  7308. additionalProperties:
  7309. type: string
  7310. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7311. type: object
  7312. type: object
  7313. x-kubernetes-map-type: atomic
  7314. namespaceSelector:
  7315. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7316. properties:
  7317. matchExpressions:
  7318. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7319. items:
  7320. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7321. properties:
  7322. key:
  7323. description: key is the label key that the selector applies to.
  7324. type: string
  7325. operator:
  7326. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7327. type: string
  7328. values:
  7329. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7330. items:
  7331. type: string
  7332. type: array
  7333. required:
  7334. - key
  7335. - operator
  7336. type: object
  7337. type: array
  7338. matchLabels:
  7339. additionalProperties:
  7340. type: string
  7341. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7342. type: object
  7343. type: object
  7344. x-kubernetes-map-type: atomic
  7345. namespaces:
  7346. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7347. items:
  7348. type: string
  7349. type: array
  7350. topologyKey:
  7351. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7352. type: string
  7353. required:
  7354. - topologyKey
  7355. type: object
  7356. weight:
  7357. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7358. format: int32
  7359. type: integer
  7360. required:
  7361. - podAffinityTerm
  7362. - weight
  7363. type: object
  7364. type: array
  7365. requiredDuringSchedulingIgnoredDuringExecution:
  7366. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7367. items:
  7368. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7369. properties:
  7370. labelSelector:
  7371. description: A label query over a set of resources, in this case pods.
  7372. properties:
  7373. matchExpressions:
  7374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7375. items:
  7376. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7377. properties:
  7378. key:
  7379. description: key is the label key that the selector applies to.
  7380. type: string
  7381. operator:
  7382. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7383. type: string
  7384. values:
  7385. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7386. items:
  7387. type: string
  7388. type: array
  7389. required:
  7390. - key
  7391. - operator
  7392. type: object
  7393. type: array
  7394. matchLabels:
  7395. additionalProperties:
  7396. type: string
  7397. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7398. type: object
  7399. type: object
  7400. x-kubernetes-map-type: atomic
  7401. namespaceSelector:
  7402. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7403. properties:
  7404. matchExpressions:
  7405. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7406. items:
  7407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7408. properties:
  7409. key:
  7410. description: key is the label key that the selector applies to.
  7411. type: string
  7412. operator:
  7413. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7414. type: string
  7415. values:
  7416. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7417. items:
  7418. type: string
  7419. type: array
  7420. required:
  7421. - key
  7422. - operator
  7423. type: object
  7424. type: array
  7425. matchLabels:
  7426. additionalProperties:
  7427. type: string
  7428. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7429. type: object
  7430. type: object
  7431. x-kubernetes-map-type: atomic
  7432. namespaces:
  7433. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7434. items:
  7435. type: string
  7436. type: array
  7437. topologyKey:
  7438. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7439. type: string
  7440. required:
  7441. - topologyKey
  7442. type: object
  7443. type: array
  7444. type: object
  7445. tolerations:
  7446. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  7447. items:
  7448. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  7449. properties:
  7450. effect:
  7451. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  7452. type: string
  7453. key:
  7454. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  7455. type: string
  7456. operator:
  7457. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  7458. type: string
  7459. tolerationSeconds:
  7460. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  7461. format: int64
  7462. type: integer
  7463. value:
  7464. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  7465. type: string
  7466. type: object
  7467. type: array
  7468. topologySpreadConstraints:
  7469. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  7470. items:
  7471. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  7472. properties:
  7473. labelSelector:
  7474. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  7475. properties:
  7476. matchExpressions:
  7477. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7478. items:
  7479. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7480. properties:
  7481. key:
  7482. description: key is the label key that the selector applies to.
  7483. type: string
  7484. operator:
  7485. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7486. type: string
  7487. values:
  7488. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7489. items:
  7490. type: string
  7491. type: array
  7492. required:
  7493. - key
  7494. - operator
  7495. type: object
  7496. type: array
  7497. matchLabels:
  7498. additionalProperties:
  7499. type: string
  7500. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7501. type: object
  7502. type: object
  7503. x-kubernetes-map-type: atomic
  7504. matchLabelKeys:
  7505. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  7506. items:
  7507. type: string
  7508. type: array
  7509. x-kubernetes-list-type: atomic
  7510. maxSkew:
  7511. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  7512. format: int32
  7513. type: integer
  7514. minDomains:
  7515. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  7516. format: int32
  7517. type: integer
  7518. nodeAffinityPolicy:
  7519. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  7520. type: string
  7521. nodeTaintsPolicy:
  7522. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  7523. type: string
  7524. topologyKey:
  7525. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  7526. type: string
  7527. whenUnsatisfiable:
  7528. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  7529. type: string
  7530. required:
  7531. - maxSkew
  7532. - topologyKey
  7533. - whenUnsatisfiable
  7534. type: object
  7535. type: array
  7536. type: object
  7537. x-kubernetes-preserve-unknown-fields: true
  7538. priorityClassName:
  7539. description: PriorityClassName sets priority classes on components
  7540. type: string
  7541. resources:
  7542. description: The resource requirements for the rgw pods
  7543. nullable: true
  7544. properties:
  7545. claims:
  7546. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  7547. items:
  7548. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  7549. properties:
  7550. name:
  7551. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  7552. type: string
  7553. required:
  7554. - name
  7555. type: object
  7556. type: array
  7557. x-kubernetes-list-map-keys:
  7558. - name
  7559. x-kubernetes-list-type: map
  7560. limits:
  7561. additionalProperties:
  7562. anyOf:
  7563. - type: integer
  7564. - type: string
  7565. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7566. x-kubernetes-int-or-string: true
  7567. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  7568. type: object
  7569. requests:
  7570. additionalProperties:
  7571. anyOf:
  7572. - type: integer
  7573. - type: string
  7574. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7575. x-kubernetes-int-or-string: true
  7576. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  7577. type: object
  7578. type: object
  7579. x-kubernetes-preserve-unknown-fields: true
  7580. startupProbe:
  7581. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  7582. properties:
  7583. disabled:
  7584. description: Disabled determines whether probe is disable or not
  7585. type: boolean
  7586. probe:
  7587. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  7588. properties:
  7589. exec:
  7590. description: Exec specifies the action to take.
  7591. properties:
  7592. command:
  7593. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  7594. items:
  7595. type: string
  7596. type: array
  7597. type: object
  7598. failureThreshold:
  7599. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  7600. format: int32
  7601. type: integer
  7602. grpc:
  7603. description: GRPC specifies an action involving a GRPC port.
  7604. properties:
  7605. port:
  7606. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7607. format: int32
  7608. type: integer
  7609. service:
  7610. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  7611. type: string
  7612. required:
  7613. - port
  7614. type: object
  7615. httpGet:
  7616. description: HTTPGet specifies the http request to perform.
  7617. properties:
  7618. host:
  7619. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  7620. type: string
  7621. httpHeaders:
  7622. description: Custom headers to set in the request. HTTP allows repeated headers.
  7623. items:
  7624. description: HTTPHeader describes a custom header to be used in HTTP probes
  7625. properties:
  7626. name:
  7627. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7628. type: string
  7629. value:
  7630. description: The header field value
  7631. type: string
  7632. required:
  7633. - name
  7634. - value
  7635. type: object
  7636. type: array
  7637. path:
  7638. description: Path to access on the HTTP server.
  7639. type: string
  7640. port:
  7641. anyOf:
  7642. - type: integer
  7643. - type: string
  7644. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7645. x-kubernetes-int-or-string: true
  7646. scheme:
  7647. description: Scheme to use for connecting to the host. Defaults to HTTP.
  7648. type: string
  7649. required:
  7650. - port
  7651. type: object
  7652. initialDelaySeconds:
  7653. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7654. format: int32
  7655. type: integer
  7656. periodSeconds:
  7657. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  7658. format: int32
  7659. type: integer
  7660. successThreshold:
  7661. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  7662. format: int32
  7663. type: integer
  7664. tcpSocket:
  7665. description: TCPSocket specifies an action involving a TCP port.
  7666. properties:
  7667. host:
  7668. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7669. type: string
  7670. port:
  7671. anyOf:
  7672. - type: integer
  7673. - type: string
  7674. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7675. x-kubernetes-int-or-string: true
  7676. required:
  7677. - port
  7678. type: object
  7679. terminationGracePeriodSeconds:
  7680. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  7681. format: int64
  7682. type: integer
  7683. timeoutSeconds:
  7684. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7685. format: int32
  7686. type: integer
  7687. type: object
  7688. type: object
  7689. required:
  7690. - activeCount
  7691. type: object
  7692. mirroring:
  7693. description: The mirroring settings
  7694. nullable: true
  7695. properties:
  7696. enabled:
  7697. description: Enabled whether this filesystem is mirrored or not
  7698. type: boolean
  7699. peers:
  7700. description: Peers represents the peers spec
  7701. nullable: true
  7702. properties:
  7703. secretNames:
  7704. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  7705. items:
  7706. type: string
  7707. type: array
  7708. type: object
  7709. snapshotRetention:
  7710. description: Retention is the retention policy for a snapshot schedule One path has exactly one retention policy. A policy can however contain multiple count-time period pairs in order to specify complex retention policies
  7711. items:
  7712. description: SnapshotScheduleRetentionSpec is a retention policy
  7713. properties:
  7714. duration:
  7715. description: Duration represents the retention duration for a snapshot
  7716. type: string
  7717. path:
  7718. description: Path is the path to snapshot
  7719. type: string
  7720. type: object
  7721. type: array
  7722. snapshotSchedules:
  7723. description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
  7724. items:
  7725. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  7726. properties:
  7727. interval:
  7728. description: Interval represent the periodicity of the snapshot.
  7729. type: string
  7730. path:
  7731. description: Path is the path to snapshot, only valid for CephFS
  7732. type: string
  7733. startTime:
  7734. description: StartTime indicates when to start the snapshot
  7735. type: string
  7736. type: object
  7737. type: array
  7738. type: object
  7739. preserveFilesystemOnDelete:
  7740. description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
  7741. type: boolean
  7742. preservePoolsOnDelete:
  7743. description: Preserve pools on filesystem deletion
  7744. type: boolean
  7745. statusCheck:
  7746. description: The mirroring statusCheck
  7747. properties:
  7748. mirror:
  7749. description: HealthCheckSpec represents the health check of an object store bucket
  7750. nullable: true
  7751. properties:
  7752. disabled:
  7753. type: boolean
  7754. interval:
  7755. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7756. type: string
  7757. timeout:
  7758. type: string
  7759. type: object
  7760. type: object
  7761. x-kubernetes-preserve-unknown-fields: true
  7762. required:
  7763. - dataPools
  7764. - metadataPool
  7765. - metadataServer
  7766. type: object
  7767. status:
  7768. description: CephFilesystemStatus represents the status of a Ceph Filesystem
  7769. properties:
  7770. conditions:
  7771. items:
  7772. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  7773. properties:
  7774. lastHeartbeatTime:
  7775. format: date-time
  7776. type: string
  7777. lastTransitionTime:
  7778. format: date-time
  7779. type: string
  7780. message:
  7781. type: string
  7782. reason:
  7783. description: ConditionReason is a reason for a condition
  7784. type: string
  7785. status:
  7786. type: string
  7787. type:
  7788. description: ConditionType represent a resource's status
  7789. type: string
  7790. type: object
  7791. type: array
  7792. info:
  7793. additionalProperties:
  7794. type: string
  7795. description: Use only info and put mirroringStatus in it?
  7796. nullable: true
  7797. type: object
  7798. mirroringStatus:
  7799. description: MirroringStatus is the filesystem mirroring status
  7800. properties:
  7801. daemonsStatus:
  7802. description: PoolMirroringStatus is the mirroring status of a filesystem
  7803. items:
  7804. description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem
  7805. properties:
  7806. daemon_id:
  7807. description: DaemonID is the cephfs-mirror name
  7808. type: integer
  7809. filesystems:
  7810. description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
  7811. items:
  7812. description: FilesystemsSpec is spec for the mirrored filesystem
  7813. properties:
  7814. directory_count:
  7815. description: DirectoryCount is the number of directories in the filesystem
  7816. type: integer
  7817. filesystem_id:
  7818. description: FilesystemID is the filesystem identifier
  7819. type: integer
  7820. name:
  7821. description: Name is name of the filesystem
  7822. type: string
  7823. peers:
  7824. description: Peers represents the mirroring peers
  7825. items:
  7826. description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror
  7827. properties:
  7828. remote:
  7829. description: Remote are the remote cluster information
  7830. properties:
  7831. client_name:
  7832. description: ClientName is cephx name
  7833. type: string
  7834. cluster_name:
  7835. description: ClusterName is the name of the cluster
  7836. type: string
  7837. fs_name:
  7838. description: FsName is the filesystem name
  7839. type: string
  7840. type: object
  7841. stats:
  7842. description: Stats are the stat a peer mirror
  7843. properties:
  7844. failure_count:
  7845. description: FailureCount is the number of mirroring failure
  7846. type: integer
  7847. recovery_count:
  7848. description: RecoveryCount is the number of recovery attempted after failures
  7849. type: integer
  7850. type: object
  7851. uuid:
  7852. description: UUID is the peer unique identifier
  7853. type: string
  7854. type: object
  7855. type: array
  7856. type: object
  7857. type: array
  7858. type: object
  7859. nullable: true
  7860. type: array
  7861. details:
  7862. description: Details contains potential status errors
  7863. type: string
  7864. lastChanged:
  7865. description: LastChanged is the last time time the status last changed
  7866. type: string
  7867. lastChecked:
  7868. description: LastChecked is the last time time the status was checked
  7869. type: string
  7870. type: object
  7871. observedGeneration:
  7872. description: ObservedGeneration is the latest generation observed by the controller.
  7873. format: int64
  7874. type: integer
  7875. phase:
  7876. description: ConditionType represent a resource's status
  7877. type: string
  7878. snapshotScheduleStatus:
  7879. description: FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
  7880. properties:
  7881. details:
  7882. description: Details contains potential status errors
  7883. type: string
  7884. lastChanged:
  7885. description: LastChanged is the last time time the status last changed
  7886. type: string
  7887. lastChecked:
  7888. description: LastChecked is the last time time the status was checked
  7889. type: string
  7890. snapshotSchedules:
  7891. description: SnapshotSchedules is the list of snapshots scheduled
  7892. items:
  7893. description: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  7894. properties:
  7895. fs:
  7896. description: Fs is the name of the Ceph Filesystem
  7897. type: string
  7898. path:
  7899. description: Path is the path on the filesystem
  7900. type: string
  7901. rel_path:
  7902. type: string
  7903. retention:
  7904. description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
  7905. properties:
  7906. active:
  7907. description: Active is whether the scheduled is active or not
  7908. type: boolean
  7909. created:
  7910. description: Created is when the snapshot schedule was created
  7911. type: string
  7912. created_count:
  7913. description: CreatedCount is total amount of snapshots
  7914. type: integer
  7915. first:
  7916. description: First is when the first snapshot schedule was taken
  7917. type: string
  7918. last:
  7919. description: Last is when the last snapshot schedule was taken
  7920. type: string
  7921. last_pruned:
  7922. description: LastPruned is when the last snapshot schedule was pruned
  7923. type: string
  7924. pruned_count:
  7925. description: PrunedCount is total amount of pruned snapshots
  7926. type: integer
  7927. start:
  7928. description: Start is when the snapshot schedule starts
  7929. type: string
  7930. type: object
  7931. schedule:
  7932. type: string
  7933. subvol:
  7934. description: Subvol is the name of the sub volume
  7935. type: string
  7936. type: object
  7937. nullable: true
  7938. type: array
  7939. type: object
  7940. type: object
  7941. x-kubernetes-preserve-unknown-fields: true
  7942. required:
  7943. - metadata
  7944. - spec
  7945. type: object
  7946. served: true
  7947. storage: true
  7948. subresources:
  7949. status: {}
  7950. ---
  7951. apiVersion: apiextensions.k8s.io/v1
  7952. kind: CustomResourceDefinition
  7953. metadata:
  7954. annotations:
  7955. controller-gen.kubebuilder.io/version: v0.11.3
  7956. creationTimestamp: null
  7957. name: cephfilesystemsubvolumegroups.ceph.rook.io
  7958. spec:
  7959. group: ceph.rook.io
  7960. names:
  7961. kind: CephFilesystemSubVolumeGroup
  7962. listKind: CephFilesystemSubVolumeGroupList
  7963. plural: cephfilesystemsubvolumegroups
  7964. singular: cephfilesystemsubvolumegroup
  7965. scope: Namespaced
  7966. versions:
  7967. - additionalPrinterColumns:
  7968. - jsonPath: .status.phase
  7969. name: Phase
  7970. type: string
  7971. name: v1
  7972. schema:
  7973. openAPIV3Schema:
  7974. description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
  7975. properties:
  7976. apiVersion:
  7977. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  7978. type: string
  7979. kind:
  7980. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  7981. type: string
  7982. metadata:
  7983. type: object
  7984. spec:
  7985. description: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
  7986. properties:
  7987. filesystemName:
  7988. description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
  7989. type: string
  7990. x-kubernetes-validations:
  7991. - message: filesystemName is immutable
  7992. rule: self == oldSelf
  7993. name:
  7994. description: The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR.
  7995. type: string
  7996. x-kubernetes-validations:
  7997. - message: name is immutable
  7998. rule: self == oldSelf
  7999. pinning:
  8000. description: Pinning configuration of CephFilesystemSubVolumeGroup, reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups only one out of (export, distributed, random) can be set at a time
  8001. properties:
  8002. distributed:
  8003. maximum: 1
  8004. minimum: 0
  8005. nullable: true
  8006. type: integer
  8007. export:
  8008. maximum: 256
  8009. minimum: -1
  8010. nullable: true
  8011. type: integer
  8012. random:
  8013. maximum: 1
  8014. minimum: 0
  8015. nullable: true
  8016. type: number
  8017. type: object
  8018. x-kubernetes-validations:
  8019. - message: only one pinning type should be set
  8020. rule: (has(self.export) && !has(self.distributed) && !has(self.random)) || (!has(self.export) && has(self.distributed) && !has(self.random)) || (!has(self.export) && !has(self.distributed) && has(self.random)) || (!has(self.export) && !has(self.distributed) && !has(self.random))
  8021. required:
  8022. - filesystemName
  8023. type: object
  8024. status:
  8025. description: Status represents the status of a CephFilesystem SubvolumeGroup
  8026. properties:
  8027. info:
  8028. additionalProperties:
  8029. type: string
  8030. nullable: true
  8031. type: object
  8032. observedGeneration:
  8033. description: ObservedGeneration is the latest generation observed by the controller.
  8034. format: int64
  8035. type: integer
  8036. phase:
  8037. description: ConditionType represent a resource's status
  8038. type: string
  8039. type: object
  8040. x-kubernetes-preserve-unknown-fields: true
  8041. required:
  8042. - metadata
  8043. - spec
  8044. type: object
  8045. served: true
  8046. storage: true
  8047. subresources:
  8048. status: {}
  8049. ---
  8050. apiVersion: apiextensions.k8s.io/v1
  8051. kind: CustomResourceDefinition
  8052. metadata:
  8053. annotations:
  8054. controller-gen.kubebuilder.io/version: v0.11.3
  8055. creationTimestamp: null
  8056. name: cephnfses.ceph.rook.io
  8057. spec:
  8058. group: ceph.rook.io
  8059. names:
  8060. kind: CephNFS
  8061. listKind: CephNFSList
  8062. plural: cephnfses
  8063. shortNames:
  8064. - nfs
  8065. singular: cephnfs
  8066. scope: Namespaced
  8067. versions:
  8068. - name: v1
  8069. schema:
  8070. openAPIV3Schema:
  8071. description: CephNFS represents a Ceph NFS
  8072. properties:
  8073. apiVersion:
  8074. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8075. type: string
  8076. kind:
  8077. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8078. type: string
  8079. metadata:
  8080. type: object
  8081. spec:
  8082. description: NFSGaneshaSpec represents the spec of an nfs ganesha server
  8083. properties:
  8084. rados:
  8085. description: RADOS is the Ganesha RADOS specification
  8086. nullable: true
  8087. properties:
  8088. namespace:
  8089. description: The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored. This setting is deprecated as it is internally set to the name of the CephNFS.
  8090. type: string
  8091. pool:
  8092. description: The Ceph pool used store the shared configuration for NFS-Ganesha daemons. This setting is deprecated, as it is internally required to be ".nfs".
  8093. type: string
  8094. type: object
  8095. security:
  8096. description: Security allows specifying security configurations for the NFS cluster
  8097. nullable: true
  8098. properties:
  8099. kerberos:
  8100. description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
  8101. nullable: true
  8102. properties:
  8103. configFiles:
  8104. description: "ConfigFiles defines where the Kerberos configuration should be sourced from. Config files will be placed into the `/etc/krb5.conf.rook/` directory. \n If this is left empty, Rook will not add any files. This allows you to manage the files yourself however you wish. For example, you may build them into your custom Ceph container image or use the Vault agent injector to securely add the files via annotations on the CephNFS spec (passed to the NFS server pods). \n Rook configures Kerberos to log to stderr. We suggest removing logging sections from config files to avoid consuming unnecessary disk space from logging to files."
  8105. properties:
  8106. volumeSource:
  8107. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for Kerberos configuration files like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. The volume may contain multiple files, all of which will be loaded.
  8108. properties:
  8109. configMap:
  8110. description: configMap represents a configMap that should populate this volume
  8111. properties:
  8112. defaultMode:
  8113. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8114. format: int32
  8115. type: integer
  8116. items:
  8117. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8118. items:
  8119. description: Maps a string key to a path within a volume.
  8120. properties:
  8121. key:
  8122. description: key is the key to project.
  8123. type: string
  8124. mode:
  8125. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8126. format: int32
  8127. type: integer
  8128. path:
  8129. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8130. type: string
  8131. required:
  8132. - key
  8133. - path
  8134. type: object
  8135. type: array
  8136. name:
  8137. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8138. type: string
  8139. optional:
  8140. description: optional specify whether the ConfigMap or its keys must be defined
  8141. type: boolean
  8142. type: object
  8143. x-kubernetes-map-type: atomic
  8144. emptyDir:
  8145. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8146. properties:
  8147. medium:
  8148. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8149. type: string
  8150. sizeLimit:
  8151. anyOf:
  8152. - type: integer
  8153. - type: string
  8154. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8155. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8156. x-kubernetes-int-or-string: true
  8157. type: object
  8158. hostPath:
  8159. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8160. properties:
  8161. path:
  8162. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8163. type: string
  8164. type:
  8165. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8166. type: string
  8167. required:
  8168. - path
  8169. type: object
  8170. persistentVolumeClaim:
  8171. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8172. properties:
  8173. claimName:
  8174. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8175. type: string
  8176. readOnly:
  8177. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8178. type: boolean
  8179. required:
  8180. - claimName
  8181. type: object
  8182. projected:
  8183. description: projected items for all in one resources secrets, configmaps, and downward API
  8184. properties:
  8185. defaultMode:
  8186. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8187. format: int32
  8188. type: integer
  8189. sources:
  8190. description: sources is the list of volume projections
  8191. items:
  8192. description: Projection that may be projected along with other supported volume types
  8193. properties:
  8194. configMap:
  8195. description: configMap information about the configMap data to project
  8196. properties:
  8197. items:
  8198. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8199. items:
  8200. description: Maps a string key to a path within a volume.
  8201. properties:
  8202. key:
  8203. description: key is the key to project.
  8204. type: string
  8205. mode:
  8206. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8207. format: int32
  8208. type: integer
  8209. path:
  8210. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8211. type: string
  8212. required:
  8213. - key
  8214. - path
  8215. type: object
  8216. type: array
  8217. name:
  8218. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8219. type: string
  8220. optional:
  8221. description: optional specify whether the ConfigMap or its keys must be defined
  8222. type: boolean
  8223. type: object
  8224. x-kubernetes-map-type: atomic
  8225. downwardAPI:
  8226. description: downwardAPI information about the downwardAPI data to project
  8227. properties:
  8228. items:
  8229. description: Items is a list of DownwardAPIVolume file
  8230. items:
  8231. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8232. properties:
  8233. fieldRef:
  8234. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8235. properties:
  8236. apiVersion:
  8237. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8238. type: string
  8239. fieldPath:
  8240. description: Path of the field to select in the specified API version.
  8241. type: string
  8242. required:
  8243. - fieldPath
  8244. type: object
  8245. x-kubernetes-map-type: atomic
  8246. mode:
  8247. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8248. format: int32
  8249. type: integer
  8250. path:
  8251. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8252. type: string
  8253. resourceFieldRef:
  8254. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8255. properties:
  8256. containerName:
  8257. description: 'Container name: required for volumes, optional for env vars'
  8258. type: string
  8259. divisor:
  8260. anyOf:
  8261. - type: integer
  8262. - type: string
  8263. description: Specifies the output format of the exposed resources, defaults to "1"
  8264. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8265. x-kubernetes-int-or-string: true
  8266. resource:
  8267. description: 'Required: resource to select'
  8268. type: string
  8269. required:
  8270. - resource
  8271. type: object
  8272. x-kubernetes-map-type: atomic
  8273. required:
  8274. - path
  8275. type: object
  8276. type: array
  8277. type: object
  8278. secret:
  8279. description: secret information about the secret data to project
  8280. properties:
  8281. items:
  8282. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8283. items:
  8284. description: Maps a string key to a path within a volume.
  8285. properties:
  8286. key:
  8287. description: key is the key to project.
  8288. type: string
  8289. mode:
  8290. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8291. format: int32
  8292. type: integer
  8293. path:
  8294. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8295. type: string
  8296. required:
  8297. - key
  8298. - path
  8299. type: object
  8300. type: array
  8301. name:
  8302. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8303. type: string
  8304. optional:
  8305. description: optional field specify whether the Secret or its key must be defined
  8306. type: boolean
  8307. type: object
  8308. x-kubernetes-map-type: atomic
  8309. serviceAccountToken:
  8310. description: serviceAccountToken is information about the serviceAccountToken data to project
  8311. properties:
  8312. audience:
  8313. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8314. type: string
  8315. expirationSeconds:
  8316. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8317. format: int64
  8318. type: integer
  8319. path:
  8320. description: path is the path relative to the mount point of the file to project the token into.
  8321. type: string
  8322. required:
  8323. - path
  8324. type: object
  8325. type: object
  8326. type: array
  8327. type: object
  8328. secret:
  8329. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8330. properties:
  8331. defaultMode:
  8332. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8333. format: int32
  8334. type: integer
  8335. items:
  8336. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8337. items:
  8338. description: Maps a string key to a path within a volume.
  8339. properties:
  8340. key:
  8341. description: key is the key to project.
  8342. type: string
  8343. mode:
  8344. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8345. format: int32
  8346. type: integer
  8347. path:
  8348. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8349. type: string
  8350. required:
  8351. - key
  8352. - path
  8353. type: object
  8354. type: array
  8355. optional:
  8356. description: optional field specify whether the Secret or its keys must be defined
  8357. type: boolean
  8358. secretName:
  8359. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8360. type: string
  8361. type: object
  8362. type: object
  8363. type: object
  8364. domainName:
  8365. description: DomainName should be set to the Kerberos Realm.
  8366. type: string
  8367. keytabFile:
  8368. description: KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file. This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  8369. properties:
  8370. volumeSource:
  8371. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the Kerberos keytab file like what is normally used to configure Volumes for a Pod. For example, a Secret or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: krb5.keytab`. For example, in a Secret, the data item must be named `krb5.keytab`, or `items` must be defined to select the key and give it path `krb5.keytab`. A HostPath directory must have the `krb5.keytab` file. 2. The volume or config file must have mode 0600.'
  8372. properties:
  8373. configMap:
  8374. description: configMap represents a configMap that should populate this volume
  8375. properties:
  8376. defaultMode:
  8377. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8378. format: int32
  8379. type: integer
  8380. items:
  8381. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8382. items:
  8383. description: Maps a string key to a path within a volume.
  8384. properties:
  8385. key:
  8386. description: key is the key to project.
  8387. type: string
  8388. mode:
  8389. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8390. format: int32
  8391. type: integer
  8392. path:
  8393. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8394. type: string
  8395. required:
  8396. - key
  8397. - path
  8398. type: object
  8399. type: array
  8400. name:
  8401. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8402. type: string
  8403. optional:
  8404. description: optional specify whether the ConfigMap or its keys must be defined
  8405. type: boolean
  8406. type: object
  8407. x-kubernetes-map-type: atomic
  8408. emptyDir:
  8409. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8410. properties:
  8411. medium:
  8412. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8413. type: string
  8414. sizeLimit:
  8415. anyOf:
  8416. - type: integer
  8417. - type: string
  8418. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8419. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8420. x-kubernetes-int-or-string: true
  8421. type: object
  8422. hostPath:
  8423. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8424. properties:
  8425. path:
  8426. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8427. type: string
  8428. type:
  8429. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8430. type: string
  8431. required:
  8432. - path
  8433. type: object
  8434. persistentVolumeClaim:
  8435. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8436. properties:
  8437. claimName:
  8438. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8439. type: string
  8440. readOnly:
  8441. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8442. type: boolean
  8443. required:
  8444. - claimName
  8445. type: object
  8446. projected:
  8447. description: projected items for all in one resources secrets, configmaps, and downward API
  8448. properties:
  8449. defaultMode:
  8450. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8451. format: int32
  8452. type: integer
  8453. sources:
  8454. description: sources is the list of volume projections
  8455. items:
  8456. description: Projection that may be projected along with other supported volume types
  8457. properties:
  8458. configMap:
  8459. description: configMap information about the configMap data to project
  8460. properties:
  8461. items:
  8462. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8463. items:
  8464. description: Maps a string key to a path within a volume.
  8465. properties:
  8466. key:
  8467. description: key is the key to project.
  8468. type: string
  8469. mode:
  8470. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8471. format: int32
  8472. type: integer
  8473. path:
  8474. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8475. type: string
  8476. required:
  8477. - key
  8478. - path
  8479. type: object
  8480. type: array
  8481. name:
  8482. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8483. type: string
  8484. optional:
  8485. description: optional specify whether the ConfigMap or its keys must be defined
  8486. type: boolean
  8487. type: object
  8488. x-kubernetes-map-type: atomic
  8489. downwardAPI:
  8490. description: downwardAPI information about the downwardAPI data to project
  8491. properties:
  8492. items:
  8493. description: Items is a list of DownwardAPIVolume file
  8494. items:
  8495. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8496. properties:
  8497. fieldRef:
  8498. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8499. properties:
  8500. apiVersion:
  8501. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8502. type: string
  8503. fieldPath:
  8504. description: Path of the field to select in the specified API version.
  8505. type: string
  8506. required:
  8507. - fieldPath
  8508. type: object
  8509. x-kubernetes-map-type: atomic
  8510. mode:
  8511. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8512. format: int32
  8513. type: integer
  8514. path:
  8515. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8516. type: string
  8517. resourceFieldRef:
  8518. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8519. properties:
  8520. containerName:
  8521. description: 'Container name: required for volumes, optional for env vars'
  8522. type: string
  8523. divisor:
  8524. anyOf:
  8525. - type: integer
  8526. - type: string
  8527. description: Specifies the output format of the exposed resources, defaults to "1"
  8528. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8529. x-kubernetes-int-or-string: true
  8530. resource:
  8531. description: 'Required: resource to select'
  8532. type: string
  8533. required:
  8534. - resource
  8535. type: object
  8536. x-kubernetes-map-type: atomic
  8537. required:
  8538. - path
  8539. type: object
  8540. type: array
  8541. type: object
  8542. secret:
  8543. description: secret information about the secret data to project
  8544. properties:
  8545. items:
  8546. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8547. items:
  8548. description: Maps a string key to a path within a volume.
  8549. properties:
  8550. key:
  8551. description: key is the key to project.
  8552. type: string
  8553. mode:
  8554. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8555. format: int32
  8556. type: integer
  8557. path:
  8558. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8559. type: string
  8560. required:
  8561. - key
  8562. - path
  8563. type: object
  8564. type: array
  8565. name:
  8566. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8567. type: string
  8568. optional:
  8569. description: optional field specify whether the Secret or its key must be defined
  8570. type: boolean
  8571. type: object
  8572. x-kubernetes-map-type: atomic
  8573. serviceAccountToken:
  8574. description: serviceAccountToken is information about the serviceAccountToken data to project
  8575. properties:
  8576. audience:
  8577. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8578. type: string
  8579. expirationSeconds:
  8580. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8581. format: int64
  8582. type: integer
  8583. path:
  8584. description: path is the path relative to the mount point of the file to project the token into.
  8585. type: string
  8586. required:
  8587. - path
  8588. type: object
  8589. type: object
  8590. type: array
  8591. type: object
  8592. secret:
  8593. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8594. properties:
  8595. defaultMode:
  8596. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8597. format: int32
  8598. type: integer
  8599. items:
  8600. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8601. items:
  8602. description: Maps a string key to a path within a volume.
  8603. properties:
  8604. key:
  8605. description: key is the key to project.
  8606. type: string
  8607. mode:
  8608. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8609. format: int32
  8610. type: integer
  8611. path:
  8612. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8613. type: string
  8614. required:
  8615. - key
  8616. - path
  8617. type: object
  8618. type: array
  8619. optional:
  8620. description: optional field specify whether the Secret or its keys must be defined
  8621. type: boolean
  8622. secretName:
  8623. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8624. type: string
  8625. type: object
  8626. type: object
  8627. type: object
  8628. principalName:
  8629. default: nfs
  8630. description: 'PrincipalName corresponds directly to NFS-Ganesha''s NFS_KRB5:PrincipalName config. In practice, this is the service prefix of the principal name. The default is "nfs". This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between) and (b) the Realm configured in the user-provided krb5.conf to determine the full principal name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net. See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.'
  8631. type: string
  8632. type: object
  8633. sssd:
  8634. description: SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to provide user ID mapping from a number of sources. See https://sssd.io for more information about the SSSD project.
  8635. nullable: true
  8636. properties:
  8637. sidecar:
  8638. description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
  8639. properties:
  8640. additionalFiles:
  8641. description: AdditionalFiles defines any number of additional files that should be mounted into the SSSD sidecar. These files may be referenced by the sssd.conf config file.
  8642. items:
  8643. description: SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD configuration should come from and are made available.
  8644. properties:
  8645. subPath:
  8646. description: SubPath defines the sub-path in `/etc/sssd/rook-additional/` where the additional file(s) will be placed. Each subPath definition must be unique and must not contain ':'.
  8647. minLength: 1
  8648. pattern: ^[^:]+$
  8649. type: string
  8650. volumeSource:
  8651. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the additional file(s) like what is normally used to configure Volumes for a Pod. Fore example, a ConfigMap, Secret, or HostPath. Each VolumeSource adds one or more additional files to the SSSD sidecar container in the `/etc/sssd/rook-additional/<subPath>` directory. Be aware that some files may need to have a specific file mode like 0600 due to requirements by SSSD for some files. For example, CA or TLS certificates.
  8652. properties:
  8653. configMap:
  8654. description: configMap represents a configMap that should populate this volume
  8655. properties:
  8656. defaultMode:
  8657. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8658. format: int32
  8659. type: integer
  8660. items:
  8661. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8662. items:
  8663. description: Maps a string key to a path within a volume.
  8664. properties:
  8665. key:
  8666. description: key is the key to project.
  8667. type: string
  8668. mode:
  8669. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8670. format: int32
  8671. type: integer
  8672. path:
  8673. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8674. type: string
  8675. required:
  8676. - key
  8677. - path
  8678. type: object
  8679. type: array
  8680. name:
  8681. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8682. type: string
  8683. optional:
  8684. description: optional specify whether the ConfigMap or its keys must be defined
  8685. type: boolean
  8686. type: object
  8687. x-kubernetes-map-type: atomic
  8688. emptyDir:
  8689. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8690. properties:
  8691. medium:
  8692. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8693. type: string
  8694. sizeLimit:
  8695. anyOf:
  8696. - type: integer
  8697. - type: string
  8698. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8699. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8700. x-kubernetes-int-or-string: true
  8701. type: object
  8702. hostPath:
  8703. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8704. properties:
  8705. path:
  8706. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8707. type: string
  8708. type:
  8709. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8710. type: string
  8711. required:
  8712. - path
  8713. type: object
  8714. persistentVolumeClaim:
  8715. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8716. properties:
  8717. claimName:
  8718. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8719. type: string
  8720. readOnly:
  8721. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8722. type: boolean
  8723. required:
  8724. - claimName
  8725. type: object
  8726. projected:
  8727. description: projected items for all in one resources secrets, configmaps, and downward API
  8728. properties:
  8729. defaultMode:
  8730. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8731. format: int32
  8732. type: integer
  8733. sources:
  8734. description: sources is the list of volume projections
  8735. items:
  8736. description: Projection that may be projected along with other supported volume types
  8737. properties:
  8738. configMap:
  8739. description: configMap information about the configMap data to project
  8740. properties:
  8741. items:
  8742. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8743. items:
  8744. description: Maps a string key to a path within a volume.
  8745. properties:
  8746. key:
  8747. description: key is the key to project.
  8748. type: string
  8749. mode:
  8750. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8751. format: int32
  8752. type: integer
  8753. path:
  8754. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8755. type: string
  8756. required:
  8757. - key
  8758. - path
  8759. type: object
  8760. type: array
  8761. name:
  8762. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8763. type: string
  8764. optional:
  8765. description: optional specify whether the ConfigMap or its keys must be defined
  8766. type: boolean
  8767. type: object
  8768. x-kubernetes-map-type: atomic
  8769. downwardAPI:
  8770. description: downwardAPI information about the downwardAPI data to project
  8771. properties:
  8772. items:
  8773. description: Items is a list of DownwardAPIVolume file
  8774. items:
  8775. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8776. properties:
  8777. fieldRef:
  8778. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8779. properties:
  8780. apiVersion:
  8781. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8782. type: string
  8783. fieldPath:
  8784. description: Path of the field to select in the specified API version.
  8785. type: string
  8786. required:
  8787. - fieldPath
  8788. type: object
  8789. x-kubernetes-map-type: atomic
  8790. mode:
  8791. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8792. format: int32
  8793. type: integer
  8794. path:
  8795. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8796. type: string
  8797. resourceFieldRef:
  8798. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8799. properties:
  8800. containerName:
  8801. description: 'Container name: required for volumes, optional for env vars'
  8802. type: string
  8803. divisor:
  8804. anyOf:
  8805. - type: integer
  8806. - type: string
  8807. description: Specifies the output format of the exposed resources, defaults to "1"
  8808. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8809. x-kubernetes-int-or-string: true
  8810. resource:
  8811. description: 'Required: resource to select'
  8812. type: string
  8813. required:
  8814. - resource
  8815. type: object
  8816. x-kubernetes-map-type: atomic
  8817. required:
  8818. - path
  8819. type: object
  8820. type: array
  8821. type: object
  8822. secret:
  8823. description: secret information about the secret data to project
  8824. properties:
  8825. items:
  8826. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8827. items:
  8828. description: Maps a string key to a path within a volume.
  8829. properties:
  8830. key:
  8831. description: key is the key to project.
  8832. type: string
  8833. mode:
  8834. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8835. format: int32
  8836. type: integer
  8837. path:
  8838. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8839. type: string
  8840. required:
  8841. - key
  8842. - path
  8843. type: object
  8844. type: array
  8845. name:
  8846. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8847. type: string
  8848. optional:
  8849. description: optional field specify whether the Secret or its key must be defined
  8850. type: boolean
  8851. type: object
  8852. x-kubernetes-map-type: atomic
  8853. serviceAccountToken:
  8854. description: serviceAccountToken is information about the serviceAccountToken data to project
  8855. properties:
  8856. audience:
  8857. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8858. type: string
  8859. expirationSeconds:
  8860. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8861. format: int64
  8862. type: integer
  8863. path:
  8864. description: path is the path relative to the mount point of the file to project the token into.
  8865. type: string
  8866. required:
  8867. - path
  8868. type: object
  8869. type: object
  8870. type: array
  8871. type: object
  8872. secret:
  8873. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8874. properties:
  8875. defaultMode:
  8876. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8877. format: int32
  8878. type: integer
  8879. items:
  8880. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8881. items:
  8882. description: Maps a string key to a path within a volume.
  8883. properties:
  8884. key:
  8885. description: key is the key to project.
  8886. type: string
  8887. mode:
  8888. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8889. format: int32
  8890. type: integer
  8891. path:
  8892. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8893. type: string
  8894. required:
  8895. - key
  8896. - path
  8897. type: object
  8898. type: array
  8899. optional:
  8900. description: optional field specify whether the Secret or its keys must be defined
  8901. type: boolean
  8902. secretName:
  8903. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8904. type: string
  8905. type: object
  8906. type: object
  8907. required:
  8908. - subPath
  8909. - volumeSource
  8910. type: object
  8911. type: array
  8912. debugLevel:
  8913. description: 'DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise, this may be a value between 1 and 10. See SSSD docs for more info: https://sssd.io/troubleshooting/basics.html#sssd-debug-logs'
  8914. maximum: 10
  8915. minimum: 0
  8916. type: integer
  8917. image:
  8918. description: Image defines the container image that should be used for the SSSD sidecar.
  8919. minLength: 1
  8920. type: string
  8921. resources:
  8922. description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
  8923. properties:
  8924. claims:
  8925. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  8926. items:
  8927. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  8928. properties:
  8929. name:
  8930. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  8931. type: string
  8932. required:
  8933. - name
  8934. type: object
  8935. type: array
  8936. x-kubernetes-list-map-keys:
  8937. - name
  8938. x-kubernetes-list-type: map
  8939. limits:
  8940. additionalProperties:
  8941. anyOf:
  8942. - type: integer
  8943. - type: string
  8944. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8945. x-kubernetes-int-or-string: true
  8946. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  8947. type: object
  8948. requests:
  8949. additionalProperties:
  8950. anyOf:
  8951. - type: integer
  8952. - type: string
  8953. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8954. x-kubernetes-int-or-string: true
  8955. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  8956. type: object
  8957. type: object
  8958. sssdConfigFile:
  8959. description: SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file. This allows you to manage the `sssd.conf` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  8960. properties:
  8961. volumeSource:
  8962. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the SSSD configuration file like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: sssd.conf`. For example, in a ConfigMap, the data item must be named `sssd.conf`, or `items` must be defined to select the key and give it path `sssd.conf`. A HostPath directory must have the `sssd.conf` file. 2. The volume or config file must have mode 0600.'
  8963. properties:
  8964. configMap:
  8965. description: configMap represents a configMap that should populate this volume
  8966. properties:
  8967. defaultMode:
  8968. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8969. format: int32
  8970. type: integer
  8971. items:
  8972. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8973. items:
  8974. description: Maps a string key to a path within a volume.
  8975. properties:
  8976. key:
  8977. description: key is the key to project.
  8978. type: string
  8979. mode:
  8980. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8981. format: int32
  8982. type: integer
  8983. path:
  8984. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8985. type: string
  8986. required:
  8987. - key
  8988. - path
  8989. type: object
  8990. type: array
  8991. name:
  8992. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8993. type: string
  8994. optional:
  8995. description: optional specify whether the ConfigMap or its keys must be defined
  8996. type: boolean
  8997. type: object
  8998. x-kubernetes-map-type: atomic
  8999. emptyDir:
  9000. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9001. properties:
  9002. medium:
  9003. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9004. type: string
  9005. sizeLimit:
  9006. anyOf:
  9007. - type: integer
  9008. - type: string
  9009. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9010. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9011. x-kubernetes-int-or-string: true
  9012. type: object
  9013. hostPath:
  9014. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  9015. properties:
  9016. path:
  9017. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9018. type: string
  9019. type:
  9020. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9021. type: string
  9022. required:
  9023. - path
  9024. type: object
  9025. persistentVolumeClaim:
  9026. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9027. properties:
  9028. claimName:
  9029. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9030. type: string
  9031. readOnly:
  9032. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  9033. type: boolean
  9034. required:
  9035. - claimName
  9036. type: object
  9037. projected:
  9038. description: projected items for all in one resources secrets, configmaps, and downward API
  9039. properties:
  9040. defaultMode:
  9041. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  9042. format: int32
  9043. type: integer
  9044. sources:
  9045. description: sources is the list of volume projections
  9046. items:
  9047. description: Projection that may be projected along with other supported volume types
  9048. properties:
  9049. configMap:
  9050. description: configMap information about the configMap data to project
  9051. properties:
  9052. items:
  9053. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9054. items:
  9055. description: Maps a string key to a path within a volume.
  9056. properties:
  9057. key:
  9058. description: key is the key to project.
  9059. type: string
  9060. mode:
  9061. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9062. format: int32
  9063. type: integer
  9064. path:
  9065. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9066. type: string
  9067. required:
  9068. - key
  9069. - path
  9070. type: object
  9071. type: array
  9072. name:
  9073. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9074. type: string
  9075. optional:
  9076. description: optional specify whether the ConfigMap or its keys must be defined
  9077. type: boolean
  9078. type: object
  9079. x-kubernetes-map-type: atomic
  9080. downwardAPI:
  9081. description: downwardAPI information about the downwardAPI data to project
  9082. properties:
  9083. items:
  9084. description: Items is a list of DownwardAPIVolume file
  9085. items:
  9086. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  9087. properties:
  9088. fieldRef:
  9089. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  9090. properties:
  9091. apiVersion:
  9092. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  9093. type: string
  9094. fieldPath:
  9095. description: Path of the field to select in the specified API version.
  9096. type: string
  9097. required:
  9098. - fieldPath
  9099. type: object
  9100. x-kubernetes-map-type: atomic
  9101. mode:
  9102. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9103. format: int32
  9104. type: integer
  9105. path:
  9106. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  9107. type: string
  9108. resourceFieldRef:
  9109. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  9110. properties:
  9111. containerName:
  9112. description: 'Container name: required for volumes, optional for env vars'
  9113. type: string
  9114. divisor:
  9115. anyOf:
  9116. - type: integer
  9117. - type: string
  9118. description: Specifies the output format of the exposed resources, defaults to "1"
  9119. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9120. x-kubernetes-int-or-string: true
  9121. resource:
  9122. description: 'Required: resource to select'
  9123. type: string
  9124. required:
  9125. - resource
  9126. type: object
  9127. x-kubernetes-map-type: atomic
  9128. required:
  9129. - path
  9130. type: object
  9131. type: array
  9132. type: object
  9133. secret:
  9134. description: secret information about the secret data to project
  9135. properties:
  9136. items:
  9137. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9138. items:
  9139. description: Maps a string key to a path within a volume.
  9140. properties:
  9141. key:
  9142. description: key is the key to project.
  9143. type: string
  9144. mode:
  9145. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9146. format: int32
  9147. type: integer
  9148. path:
  9149. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9150. type: string
  9151. required:
  9152. - key
  9153. - path
  9154. type: object
  9155. type: array
  9156. name:
  9157. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9158. type: string
  9159. optional:
  9160. description: optional field specify whether the Secret or its key must be defined
  9161. type: boolean
  9162. type: object
  9163. x-kubernetes-map-type: atomic
  9164. serviceAccountToken:
  9165. description: serviceAccountToken is information about the serviceAccountToken data to project
  9166. properties:
  9167. audience:
  9168. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  9169. type: string
  9170. expirationSeconds:
  9171. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  9172. format: int64
  9173. type: integer
  9174. path:
  9175. description: path is the path relative to the mount point of the file to project the token into.
  9176. type: string
  9177. required:
  9178. - path
  9179. type: object
  9180. type: object
  9181. type: array
  9182. type: object
  9183. secret:
  9184. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9185. properties:
  9186. defaultMode:
  9187. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9188. format: int32
  9189. type: integer
  9190. items:
  9191. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9192. items:
  9193. description: Maps a string key to a path within a volume.
  9194. properties:
  9195. key:
  9196. description: key is the key to project.
  9197. type: string
  9198. mode:
  9199. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9200. format: int32
  9201. type: integer
  9202. path:
  9203. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9204. type: string
  9205. required:
  9206. - key
  9207. - path
  9208. type: object
  9209. type: array
  9210. optional:
  9211. description: optional field specify whether the Secret or its keys must be defined
  9212. type: boolean
  9213. secretName:
  9214. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9215. type: string
  9216. type: object
  9217. type: object
  9218. type: object
  9219. required:
  9220. - image
  9221. type: object
  9222. type: object
  9223. type: object
  9224. server:
  9225. description: Server is the Ganesha Server specification
  9226. properties:
  9227. active:
  9228. description: The number of active Ganesha servers
  9229. type: integer
  9230. annotations:
  9231. additionalProperties:
  9232. type: string
  9233. description: The annotations-related configuration to add/set on each Pod related object.
  9234. nullable: true
  9235. type: object
  9236. x-kubernetes-preserve-unknown-fields: true
  9237. hostNetwork:
  9238. description: Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
  9239. nullable: true
  9240. type: boolean
  9241. labels:
  9242. additionalProperties:
  9243. type: string
  9244. description: The labels-related configuration to add/set on each Pod related object.
  9245. nullable: true
  9246. type: object
  9247. x-kubernetes-preserve-unknown-fields: true
  9248. livenessProbe:
  9249. description: A liveness-probe to verify that Ganesha server has valid run-time state. If LivenessProbe.Disabled is false and LivenessProbe.Probe is nil uses default probe.
  9250. properties:
  9251. disabled:
  9252. description: Disabled determines whether probe is disable or not
  9253. type: boolean
  9254. probe:
  9255. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  9256. properties:
  9257. exec:
  9258. description: Exec specifies the action to take.
  9259. properties:
  9260. command:
  9261. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  9262. items:
  9263. type: string
  9264. type: array
  9265. type: object
  9266. failureThreshold:
  9267. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  9268. format: int32
  9269. type: integer
  9270. grpc:
  9271. description: GRPC specifies an action involving a GRPC port.
  9272. properties:
  9273. port:
  9274. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  9275. format: int32
  9276. type: integer
  9277. service:
  9278. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  9279. type: string
  9280. required:
  9281. - port
  9282. type: object
  9283. httpGet:
  9284. description: HTTPGet specifies the http request to perform.
  9285. properties:
  9286. host:
  9287. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  9288. type: string
  9289. httpHeaders:
  9290. description: Custom headers to set in the request. HTTP allows repeated headers.
  9291. items:
  9292. description: HTTPHeader describes a custom header to be used in HTTP probes
  9293. properties:
  9294. name:
  9295. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  9296. type: string
  9297. value:
  9298. description: The header field value
  9299. type: string
  9300. required:
  9301. - name
  9302. - value
  9303. type: object
  9304. type: array
  9305. path:
  9306. description: Path to access on the HTTP server.
  9307. type: string
  9308. port:
  9309. anyOf:
  9310. - type: integer
  9311. - type: string
  9312. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  9313. x-kubernetes-int-or-string: true
  9314. scheme:
  9315. description: Scheme to use for connecting to the host. Defaults to HTTP.
  9316. type: string
  9317. required:
  9318. - port
  9319. type: object
  9320. initialDelaySeconds:
  9321. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  9322. format: int32
  9323. type: integer
  9324. periodSeconds:
  9325. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  9326. format: int32
  9327. type: integer
  9328. successThreshold:
  9329. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  9330. format: int32
  9331. type: integer
  9332. tcpSocket:
  9333. description: TCPSocket specifies an action involving a TCP port.
  9334. properties:
  9335. host:
  9336. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  9337. type: string
  9338. port:
  9339. anyOf:
  9340. - type: integer
  9341. - type: string
  9342. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  9343. x-kubernetes-int-or-string: true
  9344. required:
  9345. - port
  9346. type: object
  9347. terminationGracePeriodSeconds:
  9348. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  9349. format: int64
  9350. type: integer
  9351. timeoutSeconds:
  9352. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  9353. format: int32
  9354. type: integer
  9355. type: object
  9356. type: object
  9357. logLevel:
  9358. description: LogLevel set logging level
  9359. type: string
  9360. placement:
  9361. description: The affinity to place the ganesha pods
  9362. nullable: true
  9363. properties:
  9364. nodeAffinity:
  9365. description: NodeAffinity is a group of node affinity scheduling rules
  9366. properties:
  9367. preferredDuringSchedulingIgnoredDuringExecution:
  9368. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  9369. items:
  9370. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  9371. properties:
  9372. preference:
  9373. description: A node selector term, associated with the corresponding weight.
  9374. properties:
  9375. matchExpressions:
  9376. description: A list of node selector requirements by node's labels.
  9377. items:
  9378. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9379. properties:
  9380. key:
  9381. description: The label key that the selector applies to.
  9382. type: string
  9383. operator:
  9384. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9385. type: string
  9386. values:
  9387. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9388. items:
  9389. type: string
  9390. type: array
  9391. required:
  9392. - key
  9393. - operator
  9394. type: object
  9395. type: array
  9396. matchFields:
  9397. description: A list of node selector requirements by node's fields.
  9398. items:
  9399. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9400. properties:
  9401. key:
  9402. description: The label key that the selector applies to.
  9403. type: string
  9404. operator:
  9405. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9406. type: string
  9407. values:
  9408. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9409. items:
  9410. type: string
  9411. type: array
  9412. required:
  9413. - key
  9414. - operator
  9415. type: object
  9416. type: array
  9417. type: object
  9418. x-kubernetes-map-type: atomic
  9419. weight:
  9420. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  9421. format: int32
  9422. type: integer
  9423. required:
  9424. - preference
  9425. - weight
  9426. type: object
  9427. type: array
  9428. requiredDuringSchedulingIgnoredDuringExecution:
  9429. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  9430. properties:
  9431. nodeSelectorTerms:
  9432. description: Required. A list of node selector terms. The terms are ORed.
  9433. items:
  9434. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  9435. properties:
  9436. matchExpressions:
  9437. description: A list of node selector requirements by node's labels.
  9438. items:
  9439. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9440. properties:
  9441. key:
  9442. description: The label key that the selector applies to.
  9443. type: string
  9444. operator:
  9445. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9446. type: string
  9447. values:
  9448. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9449. items:
  9450. type: string
  9451. type: array
  9452. required:
  9453. - key
  9454. - operator
  9455. type: object
  9456. type: array
  9457. matchFields:
  9458. description: A list of node selector requirements by node's fields.
  9459. items:
  9460. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9461. properties:
  9462. key:
  9463. description: The label key that the selector applies to.
  9464. type: string
  9465. operator:
  9466. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9467. type: string
  9468. values:
  9469. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9470. items:
  9471. type: string
  9472. type: array
  9473. required:
  9474. - key
  9475. - operator
  9476. type: object
  9477. type: array
  9478. type: object
  9479. x-kubernetes-map-type: atomic
  9480. type: array
  9481. required:
  9482. - nodeSelectorTerms
  9483. type: object
  9484. x-kubernetes-map-type: atomic
  9485. type: object
  9486. podAffinity:
  9487. description: PodAffinity is a group of inter pod affinity scheduling rules
  9488. properties:
  9489. preferredDuringSchedulingIgnoredDuringExecution:
  9490. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9491. items:
  9492. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9493. properties:
  9494. podAffinityTerm:
  9495. description: Required. A pod affinity term, associated with the corresponding weight.
  9496. properties:
  9497. labelSelector:
  9498. description: A label query over a set of resources, in this case pods.
  9499. properties:
  9500. matchExpressions:
  9501. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9502. items:
  9503. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9504. properties:
  9505. key:
  9506. description: key is the label key that the selector applies to.
  9507. type: string
  9508. operator:
  9509. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9510. type: string
  9511. values:
  9512. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9513. items:
  9514. type: string
  9515. type: array
  9516. required:
  9517. - key
  9518. - operator
  9519. type: object
  9520. type: array
  9521. matchLabels:
  9522. additionalProperties:
  9523. type: string
  9524. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9525. type: object
  9526. type: object
  9527. x-kubernetes-map-type: atomic
  9528. namespaceSelector:
  9529. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9530. properties:
  9531. matchExpressions:
  9532. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9533. items:
  9534. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9535. properties:
  9536. key:
  9537. description: key is the label key that the selector applies to.
  9538. type: string
  9539. operator:
  9540. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9541. type: string
  9542. values:
  9543. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9544. items:
  9545. type: string
  9546. type: array
  9547. required:
  9548. - key
  9549. - operator
  9550. type: object
  9551. type: array
  9552. matchLabels:
  9553. additionalProperties:
  9554. type: string
  9555. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9556. type: object
  9557. type: object
  9558. x-kubernetes-map-type: atomic
  9559. namespaces:
  9560. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9561. items:
  9562. type: string
  9563. type: array
  9564. topologyKey:
  9565. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9566. type: string
  9567. required:
  9568. - topologyKey
  9569. type: object
  9570. weight:
  9571. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9572. format: int32
  9573. type: integer
  9574. required:
  9575. - podAffinityTerm
  9576. - weight
  9577. type: object
  9578. type: array
  9579. requiredDuringSchedulingIgnoredDuringExecution:
  9580. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9581. items:
  9582. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9583. properties:
  9584. labelSelector:
  9585. description: A label query over a set of resources, in this case pods.
  9586. properties:
  9587. matchExpressions:
  9588. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9589. items:
  9590. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9591. properties:
  9592. key:
  9593. description: key is the label key that the selector applies to.
  9594. type: string
  9595. operator:
  9596. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9597. type: string
  9598. values:
  9599. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9600. items:
  9601. type: string
  9602. type: array
  9603. required:
  9604. - key
  9605. - operator
  9606. type: object
  9607. type: array
  9608. matchLabels:
  9609. additionalProperties:
  9610. type: string
  9611. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9612. type: object
  9613. type: object
  9614. x-kubernetes-map-type: atomic
  9615. namespaceSelector:
  9616. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9617. properties:
  9618. matchExpressions:
  9619. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9620. items:
  9621. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9622. properties:
  9623. key:
  9624. description: key is the label key that the selector applies to.
  9625. type: string
  9626. operator:
  9627. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9628. type: string
  9629. values:
  9630. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9631. items:
  9632. type: string
  9633. type: array
  9634. required:
  9635. - key
  9636. - operator
  9637. type: object
  9638. type: array
  9639. matchLabels:
  9640. additionalProperties:
  9641. type: string
  9642. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9643. type: object
  9644. type: object
  9645. x-kubernetes-map-type: atomic
  9646. namespaces:
  9647. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9648. items:
  9649. type: string
  9650. type: array
  9651. topologyKey:
  9652. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9653. type: string
  9654. required:
  9655. - topologyKey
  9656. type: object
  9657. type: array
  9658. type: object
  9659. podAntiAffinity:
  9660. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  9661. properties:
  9662. preferredDuringSchedulingIgnoredDuringExecution:
  9663. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9664. items:
  9665. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9666. properties:
  9667. podAffinityTerm:
  9668. description: Required. A pod affinity term, associated with the corresponding weight.
  9669. properties:
  9670. labelSelector:
  9671. description: A label query over a set of resources, in this case pods.
  9672. properties:
  9673. matchExpressions:
  9674. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9675. items:
  9676. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9677. properties:
  9678. key:
  9679. description: key is the label key that the selector applies to.
  9680. type: string
  9681. operator:
  9682. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9683. type: string
  9684. values:
  9685. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9686. items:
  9687. type: string
  9688. type: array
  9689. required:
  9690. - key
  9691. - operator
  9692. type: object
  9693. type: array
  9694. matchLabels:
  9695. additionalProperties:
  9696. type: string
  9697. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9698. type: object
  9699. type: object
  9700. x-kubernetes-map-type: atomic
  9701. namespaceSelector:
  9702. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9703. properties:
  9704. matchExpressions:
  9705. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9706. items:
  9707. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9708. properties:
  9709. key:
  9710. description: key is the label key that the selector applies to.
  9711. type: string
  9712. operator:
  9713. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9714. type: string
  9715. values:
  9716. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9717. items:
  9718. type: string
  9719. type: array
  9720. required:
  9721. - key
  9722. - operator
  9723. type: object
  9724. type: array
  9725. matchLabels:
  9726. additionalProperties:
  9727. type: string
  9728. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9729. type: object
  9730. type: object
  9731. x-kubernetes-map-type: atomic
  9732. namespaces:
  9733. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9734. items:
  9735. type: string
  9736. type: array
  9737. topologyKey:
  9738. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9739. type: string
  9740. required:
  9741. - topologyKey
  9742. type: object
  9743. weight:
  9744. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9745. format: int32
  9746. type: integer
  9747. required:
  9748. - podAffinityTerm
  9749. - weight
  9750. type: object
  9751. type: array
  9752. requiredDuringSchedulingIgnoredDuringExecution:
  9753. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9754. items:
  9755. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9756. properties:
  9757. labelSelector:
  9758. description: A label query over a set of resources, in this case pods.
  9759. properties:
  9760. matchExpressions:
  9761. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9762. items:
  9763. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9764. properties:
  9765. key:
  9766. description: key is the label key that the selector applies to.
  9767. type: string
  9768. operator:
  9769. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9770. type: string
  9771. values:
  9772. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9773. items:
  9774. type: string
  9775. type: array
  9776. required:
  9777. - key
  9778. - operator
  9779. type: object
  9780. type: array
  9781. matchLabels:
  9782. additionalProperties:
  9783. type: string
  9784. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9785. type: object
  9786. type: object
  9787. x-kubernetes-map-type: atomic
  9788. namespaceSelector:
  9789. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9790. properties:
  9791. matchExpressions:
  9792. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9793. items:
  9794. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9795. properties:
  9796. key:
  9797. description: key is the label key that the selector applies to.
  9798. type: string
  9799. operator:
  9800. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9801. type: string
  9802. values:
  9803. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9804. items:
  9805. type: string
  9806. type: array
  9807. required:
  9808. - key
  9809. - operator
  9810. type: object
  9811. type: array
  9812. matchLabels:
  9813. additionalProperties:
  9814. type: string
  9815. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9816. type: object
  9817. type: object
  9818. x-kubernetes-map-type: atomic
  9819. namespaces:
  9820. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9821. items:
  9822. type: string
  9823. type: array
  9824. topologyKey:
  9825. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9826. type: string
  9827. required:
  9828. - topologyKey
  9829. type: object
  9830. type: array
  9831. type: object
  9832. tolerations:
  9833. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  9834. items:
  9835. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  9836. properties:
  9837. effect:
  9838. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  9839. type: string
  9840. key:
  9841. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  9842. type: string
  9843. operator:
  9844. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  9845. type: string
  9846. tolerationSeconds:
  9847. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  9848. format: int64
  9849. type: integer
  9850. value:
  9851. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  9852. type: string
  9853. type: object
  9854. type: array
  9855. topologySpreadConstraints:
  9856. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  9857. items:
  9858. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  9859. properties:
  9860. labelSelector:
  9861. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  9862. properties:
  9863. matchExpressions:
  9864. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9865. items:
  9866. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9867. properties:
  9868. key:
  9869. description: key is the label key that the selector applies to.
  9870. type: string
  9871. operator:
  9872. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9873. type: string
  9874. values:
  9875. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9876. items:
  9877. type: string
  9878. type: array
  9879. required:
  9880. - key
  9881. - operator
  9882. type: object
  9883. type: array
  9884. matchLabels:
  9885. additionalProperties:
  9886. type: string
  9887. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9888. type: object
  9889. type: object
  9890. x-kubernetes-map-type: atomic
  9891. matchLabelKeys:
  9892. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  9893. items:
  9894. type: string
  9895. type: array
  9896. x-kubernetes-list-type: atomic
  9897. maxSkew:
  9898. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  9899. format: int32
  9900. type: integer
  9901. minDomains:
  9902. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  9903. format: int32
  9904. type: integer
  9905. nodeAffinityPolicy:
  9906. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  9907. type: string
  9908. nodeTaintsPolicy:
  9909. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  9910. type: string
  9911. topologyKey:
  9912. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  9913. type: string
  9914. whenUnsatisfiable:
  9915. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  9916. type: string
  9917. required:
  9918. - maxSkew
  9919. - topologyKey
  9920. - whenUnsatisfiable
  9921. type: object
  9922. type: array
  9923. type: object
  9924. x-kubernetes-preserve-unknown-fields: true
  9925. priorityClassName:
  9926. description: PriorityClassName sets the priority class on the pods
  9927. type: string
  9928. resources:
  9929. description: Resources set resource requests and limits
  9930. nullable: true
  9931. properties:
  9932. claims:
  9933. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  9934. items:
  9935. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9936. properties:
  9937. name:
  9938. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  9939. type: string
  9940. required:
  9941. - name
  9942. type: object
  9943. type: array
  9944. x-kubernetes-list-map-keys:
  9945. - name
  9946. x-kubernetes-list-type: map
  9947. limits:
  9948. additionalProperties:
  9949. anyOf:
  9950. - type: integer
  9951. - type: string
  9952. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9953. x-kubernetes-int-or-string: true
  9954. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9955. type: object
  9956. requests:
  9957. additionalProperties:
  9958. anyOf:
  9959. - type: integer
  9960. - type: string
  9961. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9962. x-kubernetes-int-or-string: true
  9963. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9964. type: object
  9965. type: object
  9966. x-kubernetes-preserve-unknown-fields: true
  9967. required:
  9968. - active
  9969. type: object
  9970. required:
  9971. - server
  9972. type: object
  9973. status:
  9974. description: Status represents the status of an object
  9975. properties:
  9976. conditions:
  9977. items:
  9978. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  9979. properties:
  9980. lastHeartbeatTime:
  9981. format: date-time
  9982. type: string
  9983. lastTransitionTime:
  9984. format: date-time
  9985. type: string
  9986. message:
  9987. type: string
  9988. reason:
  9989. description: ConditionReason is a reason for a condition
  9990. type: string
  9991. status:
  9992. type: string
  9993. type:
  9994. description: ConditionType represent a resource's status
  9995. type: string
  9996. type: object
  9997. type: array
  9998. observedGeneration:
  9999. description: ObservedGeneration is the latest generation observed by the controller.
  10000. format: int64
  10001. type: integer
  10002. phase:
  10003. type: string
  10004. type: object
  10005. x-kubernetes-preserve-unknown-fields: true
  10006. required:
  10007. - metadata
  10008. - spec
  10009. type: object
  10010. served: true
  10011. storage: true
  10012. subresources:
  10013. status: {}
  10014. ---
  10015. apiVersion: apiextensions.k8s.io/v1
  10016. kind: CustomResourceDefinition
  10017. metadata:
  10018. annotations:
  10019. controller-gen.kubebuilder.io/version: v0.11.3
  10020. creationTimestamp: null
  10021. name: cephobjectrealms.ceph.rook.io
  10022. spec:
  10023. group: ceph.rook.io
  10024. names:
  10025. kind: CephObjectRealm
  10026. listKind: CephObjectRealmList
  10027. plural: cephobjectrealms
  10028. singular: cephobjectrealm
  10029. scope: Namespaced
  10030. versions:
  10031. - name: v1
  10032. schema:
  10033. openAPIV3Schema:
  10034. description: CephObjectRealm represents a Ceph Object Store Gateway Realm
  10035. properties:
  10036. apiVersion:
  10037. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  10038. type: string
  10039. kind:
  10040. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  10041. type: string
  10042. metadata:
  10043. type: object
  10044. spec:
  10045. description: ObjectRealmSpec represent the spec of an ObjectRealm
  10046. nullable: true
  10047. properties:
  10048. pull:
  10049. description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
  10050. properties:
  10051. endpoint:
  10052. pattern: ^https*://
  10053. type: string
  10054. type: object
  10055. type: object
  10056. status:
  10057. description: Status represents the status of an object
  10058. properties:
  10059. conditions:
  10060. items:
  10061. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10062. properties:
  10063. lastHeartbeatTime:
  10064. format: date-time
  10065. type: string
  10066. lastTransitionTime:
  10067. format: date-time
  10068. type: string
  10069. message:
  10070. type: string
  10071. reason:
  10072. description: ConditionReason is a reason for a condition
  10073. type: string
  10074. status:
  10075. type: string
  10076. type:
  10077. description: ConditionType represent a resource's status
  10078. type: string
  10079. type: object
  10080. type: array
  10081. observedGeneration:
  10082. description: ObservedGeneration is the latest generation observed by the controller.
  10083. format: int64
  10084. type: integer
  10085. phase:
  10086. type: string
  10087. type: object
  10088. x-kubernetes-preserve-unknown-fields: true
  10089. required:
  10090. - metadata
  10091. type: object
  10092. served: true
  10093. storage: true
  10094. subresources:
  10095. status: {}
  10096. ---
  10097. apiVersion: apiextensions.k8s.io/v1
  10098. kind: CustomResourceDefinition
  10099. metadata:
  10100. annotations:
  10101. controller-gen.kubebuilder.io/version: v0.11.3
  10102. creationTimestamp: null
  10103. name: cephobjectstores.ceph.rook.io
  10104. spec:
  10105. group: ceph.rook.io
  10106. names:
  10107. kind: CephObjectStore
  10108. listKind: CephObjectStoreList
  10109. plural: cephobjectstores
  10110. singular: cephobjectstore
  10111. scope: Namespaced
  10112. versions:
  10113. - additionalPrinterColumns:
  10114. - jsonPath: .status.phase
  10115. name: Phase
  10116. type: string
  10117. name: v1
  10118. schema:
  10119. openAPIV3Schema:
  10120. description: CephObjectStore represents a Ceph Object Store Gateway
  10121. properties:
  10122. apiVersion:
  10123. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  10124. type: string
  10125. kind:
  10126. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  10127. type: string
  10128. metadata:
  10129. type: object
  10130. spec:
  10131. description: ObjectStoreSpec represent the spec of a pool
  10132. properties:
  10133. allowUsersInNamespaces:
  10134. description: The list of allowed namespaces in addition to the object store namespace where ceph object store users may be created. Specify "*" to allow all namespaces, otherwise list individual namespaces that are to be allowed. This is useful for applications that need object store credentials to be created in their own namespace, where neither OBCs nor COSI is being used to create buckets. The default is empty.
  10135. items:
  10136. type: string
  10137. type: array
  10138. dataPool:
  10139. description: The data pool settings
  10140. nullable: true
  10141. properties:
  10142. compressionMode:
  10143. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  10144. enum:
  10145. - none
  10146. - passive
  10147. - aggressive
  10148. - force
  10149. - ""
  10150. nullable: true
  10151. type: string
  10152. crushRoot:
  10153. description: The root of the crush hierarchy utilized by the pool
  10154. nullable: true
  10155. type: string
  10156. deviceClass:
  10157. description: The device class the OSD should set to for use in the pool
  10158. nullable: true
  10159. type: string
  10160. enableRBDStats:
  10161. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  10162. type: boolean
  10163. erasureCoded:
  10164. description: The erasure code settings
  10165. properties:
  10166. algorithm:
  10167. description: The algorithm for erasure coding
  10168. type: string
  10169. codingChunks:
  10170. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  10171. minimum: 0
  10172. type: integer
  10173. dataChunks:
  10174. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  10175. minimum: 0
  10176. type: integer
  10177. required:
  10178. - codingChunks
  10179. - dataChunks
  10180. type: object
  10181. failureDomain:
  10182. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  10183. type: string
  10184. mirroring:
  10185. description: The mirroring settings
  10186. properties:
  10187. enabled:
  10188. description: Enabled whether this pool is mirrored or not
  10189. type: boolean
  10190. mode:
  10191. description: 'Mode is the mirroring mode: either pool or image'
  10192. type: string
  10193. peers:
  10194. description: Peers represents the peers spec
  10195. nullable: true
  10196. properties:
  10197. secretNames:
  10198. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  10199. items:
  10200. type: string
  10201. type: array
  10202. type: object
  10203. snapshotSchedules:
  10204. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  10205. items:
  10206. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  10207. properties:
  10208. interval:
  10209. description: Interval represent the periodicity of the snapshot.
  10210. type: string
  10211. path:
  10212. description: Path is the path to snapshot, only valid for CephFS
  10213. type: string
  10214. startTime:
  10215. description: StartTime indicates when to start the snapshot
  10216. type: string
  10217. type: object
  10218. type: array
  10219. type: object
  10220. parameters:
  10221. additionalProperties:
  10222. type: string
  10223. description: Parameters is a list of properties to enable on a given pool
  10224. nullable: true
  10225. type: object
  10226. x-kubernetes-preserve-unknown-fields: true
  10227. quotas:
  10228. description: The quota settings
  10229. nullable: true
  10230. properties:
  10231. maxBytes:
  10232. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  10233. format: int64
  10234. type: integer
  10235. maxObjects:
  10236. description: MaxObjects represents the quota in objects
  10237. format: int64
  10238. type: integer
  10239. maxSize:
  10240. description: MaxSize represents the quota in bytes as a string
  10241. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  10242. type: string
  10243. type: object
  10244. replicated:
  10245. description: The replication settings
  10246. properties:
  10247. hybridStorage:
  10248. description: HybridStorage represents hybrid storage tier settings
  10249. nullable: true
  10250. properties:
  10251. primaryDeviceClass:
  10252. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  10253. minLength: 1
  10254. type: string
  10255. secondaryDeviceClass:
  10256. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  10257. minLength: 1
  10258. type: string
  10259. required:
  10260. - primaryDeviceClass
  10261. - secondaryDeviceClass
  10262. type: object
  10263. replicasPerFailureDomain:
  10264. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  10265. minimum: 1
  10266. type: integer
  10267. requireSafeReplicaSize:
  10268. description: RequireSafeReplicaSize if false allows you to set replica 1
  10269. type: boolean
  10270. size:
  10271. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  10272. minimum: 0
  10273. type: integer
  10274. subFailureDomain:
  10275. description: SubFailureDomain the name of the sub-failure domain
  10276. type: string
  10277. targetSizeRatio:
  10278. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  10279. type: number
  10280. required:
  10281. - size
  10282. type: object
  10283. statusCheck:
  10284. description: The mirroring statusCheck
  10285. properties:
  10286. mirror:
  10287. description: HealthCheckSpec represents the health check of an object store bucket
  10288. nullable: true
  10289. properties:
  10290. disabled:
  10291. type: boolean
  10292. interval:
  10293. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  10294. type: string
  10295. timeout:
  10296. type: string
  10297. type: object
  10298. type: object
  10299. x-kubernetes-preserve-unknown-fields: true
  10300. type: object
  10301. gateway:
  10302. description: The rgw pod info
  10303. nullable: true
  10304. properties:
  10305. annotations:
  10306. additionalProperties:
  10307. type: string
  10308. description: The annotations-related configuration to add/set on each Pod related object.
  10309. nullable: true
  10310. type: object
  10311. x-kubernetes-preserve-unknown-fields: true
  10312. caBundleRef:
  10313. description: The name of the secret that stores custom ca-bundle with root and intermediate certificates.
  10314. nullable: true
  10315. type: string
  10316. dashboardEnabled:
  10317. description: Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.
  10318. nullable: true
  10319. type: boolean
  10320. x-kubernetes-preserve-unknown-fields: true
  10321. disableMultisiteSyncTraffic:
  10322. description: 'DisableMultisiteSyncTraffic, when true, prevents this object store''s gateways from transmitting multisite replication data. Note that this value does not affect whether gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that. If false or unset, this object store''s gateways will be able to transmit multisite replication data.'
  10323. type: boolean
  10324. externalRgwEndpoints:
  10325. description: ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but for stability of ObjectBucketClaims, we highly recommend that users give only a single external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
  10326. items:
  10327. description: EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress.
  10328. properties:
  10329. hostname:
  10330. description: The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given.
  10331. type: string
  10332. ip:
  10333. description: The IP of this endpoint. As a legacy behavior, this supports being given a DNS-adressable hostname as well.
  10334. type: string
  10335. type: object
  10336. x-kubernetes-map-type: atomic
  10337. nullable: true
  10338. type: array
  10339. hostNetwork:
  10340. description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
  10341. nullable: true
  10342. type: boolean
  10343. x-kubernetes-preserve-unknown-fields: true
  10344. instances:
  10345. description: The number of pods in the rgw replicaset.
  10346. format: int32
  10347. nullable: true
  10348. type: integer
  10349. labels:
  10350. additionalProperties:
  10351. type: string
  10352. description: The labels-related configuration to add/set on each Pod related object.
  10353. nullable: true
  10354. type: object
  10355. x-kubernetes-preserve-unknown-fields: true
  10356. placement:
  10357. description: The affinity to place the rgw pods (default is to place on any available node)
  10358. nullable: true
  10359. properties:
  10360. nodeAffinity:
  10361. description: NodeAffinity is a group of node affinity scheduling rules
  10362. properties:
  10363. preferredDuringSchedulingIgnoredDuringExecution:
  10364. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  10365. items:
  10366. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  10367. properties:
  10368. preference:
  10369. description: A node selector term, associated with the corresponding weight.
  10370. properties:
  10371. matchExpressions:
  10372. description: A list of node selector requirements by node's labels.
  10373. items:
  10374. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10375. properties:
  10376. key:
  10377. description: The label key that the selector applies to.
  10378. type: string
  10379. operator:
  10380. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10381. type: string
  10382. values:
  10383. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10384. items:
  10385. type: string
  10386. type: array
  10387. required:
  10388. - key
  10389. - operator
  10390. type: object
  10391. type: array
  10392. matchFields:
  10393. description: A list of node selector requirements by node's fields.
  10394. items:
  10395. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10396. properties:
  10397. key:
  10398. description: The label key that the selector applies to.
  10399. type: string
  10400. operator:
  10401. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10402. type: string
  10403. values:
  10404. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10405. items:
  10406. type: string
  10407. type: array
  10408. required:
  10409. - key
  10410. - operator
  10411. type: object
  10412. type: array
  10413. type: object
  10414. x-kubernetes-map-type: atomic
  10415. weight:
  10416. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  10417. format: int32
  10418. type: integer
  10419. required:
  10420. - preference
  10421. - weight
  10422. type: object
  10423. type: array
  10424. requiredDuringSchedulingIgnoredDuringExecution:
  10425. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  10426. properties:
  10427. nodeSelectorTerms:
  10428. description: Required. A list of node selector terms. The terms are ORed.
  10429. items:
  10430. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  10431. properties:
  10432. matchExpressions:
  10433. description: A list of node selector requirements by node's labels.
  10434. items:
  10435. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10436. properties:
  10437. key:
  10438. description: The label key that the selector applies to.
  10439. type: string
  10440. operator:
  10441. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10442. type: string
  10443. values:
  10444. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10445. items:
  10446. type: string
  10447. type: array
  10448. required:
  10449. - key
  10450. - operator
  10451. type: object
  10452. type: array
  10453. matchFields:
  10454. description: A list of node selector requirements by node's fields.
  10455. items:
  10456. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10457. properties:
  10458. key:
  10459. description: The label key that the selector applies to.
  10460. type: string
  10461. operator:
  10462. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10463. type: string
  10464. values:
  10465. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10466. items:
  10467. type: string
  10468. type: array
  10469. required:
  10470. - key
  10471. - operator
  10472. type: object
  10473. type: array
  10474. type: object
  10475. x-kubernetes-map-type: atomic
  10476. type: array
  10477. required:
  10478. - nodeSelectorTerms
  10479. type: object
  10480. x-kubernetes-map-type: atomic
  10481. type: object
  10482. podAffinity:
  10483. description: PodAffinity is a group of inter pod affinity scheduling rules
  10484. properties:
  10485. preferredDuringSchedulingIgnoredDuringExecution:
  10486. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10487. items:
  10488. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10489. properties:
  10490. podAffinityTerm:
  10491. description: Required. A pod affinity term, associated with the corresponding weight.
  10492. properties:
  10493. labelSelector:
  10494. description: A label query over a set of resources, in this case pods.
  10495. properties:
  10496. matchExpressions:
  10497. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10498. items:
  10499. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10500. properties:
  10501. key:
  10502. description: key is the label key that the selector applies to.
  10503. type: string
  10504. operator:
  10505. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10506. type: string
  10507. values:
  10508. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10509. items:
  10510. type: string
  10511. type: array
  10512. required:
  10513. - key
  10514. - operator
  10515. type: object
  10516. type: array
  10517. matchLabels:
  10518. additionalProperties:
  10519. type: string
  10520. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10521. type: object
  10522. type: object
  10523. x-kubernetes-map-type: atomic
  10524. namespaceSelector:
  10525. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10526. properties:
  10527. matchExpressions:
  10528. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10529. items:
  10530. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10531. properties:
  10532. key:
  10533. description: key is the label key that the selector applies to.
  10534. type: string
  10535. operator:
  10536. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10537. type: string
  10538. values:
  10539. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10540. items:
  10541. type: string
  10542. type: array
  10543. required:
  10544. - key
  10545. - operator
  10546. type: object
  10547. type: array
  10548. matchLabels:
  10549. additionalProperties:
  10550. type: string
  10551. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10552. type: object
  10553. type: object
  10554. x-kubernetes-map-type: atomic
  10555. namespaces:
  10556. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10557. items:
  10558. type: string
  10559. type: array
  10560. topologyKey:
  10561. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10562. type: string
  10563. required:
  10564. - topologyKey
  10565. type: object
  10566. weight:
  10567. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10568. format: int32
  10569. type: integer
  10570. required:
  10571. - podAffinityTerm
  10572. - weight
  10573. type: object
  10574. type: array
  10575. requiredDuringSchedulingIgnoredDuringExecution:
  10576. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10577. items:
  10578. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10579. properties:
  10580. labelSelector:
  10581. description: A label query over a set of resources, in this case pods.
  10582. properties:
  10583. matchExpressions:
  10584. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10585. items:
  10586. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10587. properties:
  10588. key:
  10589. description: key is the label key that the selector applies to.
  10590. type: string
  10591. operator:
  10592. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10593. type: string
  10594. values:
  10595. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10596. items:
  10597. type: string
  10598. type: array
  10599. required:
  10600. - key
  10601. - operator
  10602. type: object
  10603. type: array
  10604. matchLabels:
  10605. additionalProperties:
  10606. type: string
  10607. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10608. type: object
  10609. type: object
  10610. x-kubernetes-map-type: atomic
  10611. namespaceSelector:
  10612. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10613. properties:
  10614. matchExpressions:
  10615. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10616. items:
  10617. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10618. properties:
  10619. key:
  10620. description: key is the label key that the selector applies to.
  10621. type: string
  10622. operator:
  10623. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10624. type: string
  10625. values:
  10626. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10627. items:
  10628. type: string
  10629. type: array
  10630. required:
  10631. - key
  10632. - operator
  10633. type: object
  10634. type: array
  10635. matchLabels:
  10636. additionalProperties:
  10637. type: string
  10638. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10639. type: object
  10640. type: object
  10641. x-kubernetes-map-type: atomic
  10642. namespaces:
  10643. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10644. items:
  10645. type: string
  10646. type: array
  10647. topologyKey:
  10648. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10649. type: string
  10650. required:
  10651. - topologyKey
  10652. type: object
  10653. type: array
  10654. type: object
  10655. podAntiAffinity:
  10656. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  10657. properties:
  10658. preferredDuringSchedulingIgnoredDuringExecution:
  10659. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10660. items:
  10661. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10662. properties:
  10663. podAffinityTerm:
  10664. description: Required. A pod affinity term, associated with the corresponding weight.
  10665. properties:
  10666. labelSelector:
  10667. description: A label query over a set of resources, in this case pods.
  10668. properties:
  10669. matchExpressions:
  10670. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10671. items:
  10672. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10673. properties:
  10674. key:
  10675. description: key is the label key that the selector applies to.
  10676. type: string
  10677. operator:
  10678. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10679. type: string
  10680. values:
  10681. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10682. items:
  10683. type: string
  10684. type: array
  10685. required:
  10686. - key
  10687. - operator
  10688. type: object
  10689. type: array
  10690. matchLabels:
  10691. additionalProperties:
  10692. type: string
  10693. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10694. type: object
  10695. type: object
  10696. x-kubernetes-map-type: atomic
  10697. namespaceSelector:
  10698. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10699. properties:
  10700. matchExpressions:
  10701. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10702. items:
  10703. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10704. properties:
  10705. key:
  10706. description: key is the label key that the selector applies to.
  10707. type: string
  10708. operator:
  10709. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10710. type: string
  10711. values:
  10712. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10713. items:
  10714. type: string
  10715. type: array
  10716. required:
  10717. - key
  10718. - operator
  10719. type: object
  10720. type: array
  10721. matchLabels:
  10722. additionalProperties:
  10723. type: string
  10724. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10725. type: object
  10726. type: object
  10727. x-kubernetes-map-type: atomic
  10728. namespaces:
  10729. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10730. items:
  10731. type: string
  10732. type: array
  10733. topologyKey:
  10734. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10735. type: string
  10736. required:
  10737. - topologyKey
  10738. type: object
  10739. weight:
  10740. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10741. format: int32
  10742. type: integer
  10743. required:
  10744. - podAffinityTerm
  10745. - weight
  10746. type: object
  10747. type: array
  10748. requiredDuringSchedulingIgnoredDuringExecution:
  10749. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10750. items:
  10751. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10752. properties:
  10753. labelSelector:
  10754. description: A label query over a set of resources, in this case pods.
  10755. properties:
  10756. matchExpressions:
  10757. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10758. items:
  10759. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10760. properties:
  10761. key:
  10762. description: key is the label key that the selector applies to.
  10763. type: string
  10764. operator:
  10765. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10766. type: string
  10767. values:
  10768. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10769. items:
  10770. type: string
  10771. type: array
  10772. required:
  10773. - key
  10774. - operator
  10775. type: object
  10776. type: array
  10777. matchLabels:
  10778. additionalProperties:
  10779. type: string
  10780. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10781. type: object
  10782. type: object
  10783. x-kubernetes-map-type: atomic
  10784. namespaceSelector:
  10785. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10786. properties:
  10787. matchExpressions:
  10788. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10789. items:
  10790. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10791. properties:
  10792. key:
  10793. description: key is the label key that the selector applies to.
  10794. type: string
  10795. operator:
  10796. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10797. type: string
  10798. values:
  10799. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10800. items:
  10801. type: string
  10802. type: array
  10803. required:
  10804. - key
  10805. - operator
  10806. type: object
  10807. type: array
  10808. matchLabels:
  10809. additionalProperties:
  10810. type: string
  10811. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10812. type: object
  10813. type: object
  10814. x-kubernetes-map-type: atomic
  10815. namespaces:
  10816. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10817. items:
  10818. type: string
  10819. type: array
  10820. topologyKey:
  10821. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10822. type: string
  10823. required:
  10824. - topologyKey
  10825. type: object
  10826. type: array
  10827. type: object
  10828. tolerations:
  10829. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  10830. items:
  10831. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  10832. properties:
  10833. effect:
  10834. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  10835. type: string
  10836. key:
  10837. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  10838. type: string
  10839. operator:
  10840. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  10841. type: string
  10842. tolerationSeconds:
  10843. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  10844. format: int64
  10845. type: integer
  10846. value:
  10847. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  10848. type: string
  10849. type: object
  10850. type: array
  10851. topologySpreadConstraints:
  10852. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  10853. items:
  10854. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  10855. properties:
  10856. labelSelector:
  10857. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  10858. properties:
  10859. matchExpressions:
  10860. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10861. items:
  10862. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10863. properties:
  10864. key:
  10865. description: key is the label key that the selector applies to.
  10866. type: string
  10867. operator:
  10868. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10869. type: string
  10870. values:
  10871. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10872. items:
  10873. type: string
  10874. type: array
  10875. required:
  10876. - key
  10877. - operator
  10878. type: object
  10879. type: array
  10880. matchLabels:
  10881. additionalProperties:
  10882. type: string
  10883. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10884. type: object
  10885. type: object
  10886. x-kubernetes-map-type: atomic
  10887. matchLabelKeys:
  10888. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  10889. items:
  10890. type: string
  10891. type: array
  10892. x-kubernetes-list-type: atomic
  10893. maxSkew:
  10894. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  10895. format: int32
  10896. type: integer
  10897. minDomains:
  10898. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  10899. format: int32
  10900. type: integer
  10901. nodeAffinityPolicy:
  10902. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  10903. type: string
  10904. nodeTaintsPolicy:
  10905. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  10906. type: string
  10907. topologyKey:
  10908. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  10909. type: string
  10910. whenUnsatisfiable:
  10911. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  10912. type: string
  10913. required:
  10914. - maxSkew
  10915. - topologyKey
  10916. - whenUnsatisfiable
  10917. type: object
  10918. type: array
  10919. type: object
  10920. x-kubernetes-preserve-unknown-fields: true
  10921. port:
  10922. description: The port the rgw service will be listening on (http)
  10923. format: int32
  10924. type: integer
  10925. priorityClassName:
  10926. description: PriorityClassName sets priority classes on the rgw pods
  10927. type: string
  10928. resources:
  10929. description: The resource requirements for the rgw pods
  10930. nullable: true
  10931. properties:
  10932. claims:
  10933. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  10934. items:
  10935. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  10936. properties:
  10937. name:
  10938. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  10939. type: string
  10940. required:
  10941. - name
  10942. type: object
  10943. type: array
  10944. x-kubernetes-list-map-keys:
  10945. - name
  10946. x-kubernetes-list-type: map
  10947. limits:
  10948. additionalProperties:
  10949. anyOf:
  10950. - type: integer
  10951. - type: string
  10952. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10953. x-kubernetes-int-or-string: true
  10954. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  10955. type: object
  10956. requests:
  10957. additionalProperties:
  10958. anyOf:
  10959. - type: integer
  10960. - type: string
  10961. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10962. x-kubernetes-int-or-string: true
  10963. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  10964. type: object
  10965. type: object
  10966. x-kubernetes-preserve-unknown-fields: true
  10967. securePort:
  10968. description: The port the rgw service will be listening on (https)
  10969. format: int32
  10970. maximum: 65535
  10971. minimum: 0
  10972. nullable: true
  10973. type: integer
  10974. service:
  10975. description: The configuration related to add/set on each rgw service.
  10976. nullable: true
  10977. properties:
  10978. annotations:
  10979. additionalProperties:
  10980. type: string
  10981. description: The annotations-related configuration to add/set on each rgw service. nullable optional
  10982. type: object
  10983. type: object
  10984. sslCertificateRef:
  10985. description: The name of the secret that stores the ssl certificate for secure rgw connections
  10986. nullable: true
  10987. type: string
  10988. type: object
  10989. healthCheck:
  10990. description: The RGW health probes
  10991. nullable: true
  10992. properties:
  10993. readinessProbe:
  10994. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  10995. properties:
  10996. disabled:
  10997. description: Disabled determines whether probe is disable or not
  10998. type: boolean
  10999. probe:
  11000. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  11001. properties:
  11002. exec:
  11003. description: Exec specifies the action to take.
  11004. properties:
  11005. command:
  11006. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  11007. items:
  11008. type: string
  11009. type: array
  11010. type: object
  11011. failureThreshold:
  11012. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  11013. format: int32
  11014. type: integer
  11015. grpc:
  11016. description: GRPC specifies an action involving a GRPC port.
  11017. properties:
  11018. port:
  11019. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11020. format: int32
  11021. type: integer
  11022. service:
  11023. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  11024. type: string
  11025. required:
  11026. - port
  11027. type: object
  11028. httpGet:
  11029. description: HTTPGet specifies the http request to perform.
  11030. properties:
  11031. host:
  11032. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11033. type: string
  11034. httpHeaders:
  11035. description: Custom headers to set in the request. HTTP allows repeated headers.
  11036. items:
  11037. description: HTTPHeader describes a custom header to be used in HTTP probes
  11038. properties:
  11039. name:
  11040. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11041. type: string
  11042. value:
  11043. description: The header field value
  11044. type: string
  11045. required:
  11046. - name
  11047. - value
  11048. type: object
  11049. type: array
  11050. path:
  11051. description: Path to access on the HTTP server.
  11052. type: string
  11053. port:
  11054. anyOf:
  11055. - type: integer
  11056. - type: string
  11057. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11058. x-kubernetes-int-or-string: true
  11059. scheme:
  11060. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11061. type: string
  11062. required:
  11063. - port
  11064. type: object
  11065. initialDelaySeconds:
  11066. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11067. format: int32
  11068. type: integer
  11069. periodSeconds:
  11070. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11071. format: int32
  11072. type: integer
  11073. successThreshold:
  11074. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  11075. format: int32
  11076. type: integer
  11077. tcpSocket:
  11078. description: TCPSocket specifies an action involving a TCP port.
  11079. properties:
  11080. host:
  11081. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11082. type: string
  11083. port:
  11084. anyOf:
  11085. - type: integer
  11086. - type: string
  11087. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11088. x-kubernetes-int-or-string: true
  11089. required:
  11090. - port
  11091. type: object
  11092. terminationGracePeriodSeconds:
  11093. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11094. format: int64
  11095. type: integer
  11096. timeoutSeconds:
  11097. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11098. format: int32
  11099. type: integer
  11100. type: object
  11101. type: object
  11102. x-kubernetes-preserve-unknown-fields: true
  11103. startupProbe:
  11104. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  11105. properties:
  11106. disabled:
  11107. description: Disabled determines whether probe is disable or not
  11108. type: boolean
  11109. probe:
  11110. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  11111. properties:
  11112. exec:
  11113. description: Exec specifies the action to take.
  11114. properties:
  11115. command:
  11116. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  11117. items:
  11118. type: string
  11119. type: array
  11120. type: object
  11121. failureThreshold:
  11122. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  11123. format: int32
  11124. type: integer
  11125. grpc:
  11126. description: GRPC specifies an action involving a GRPC port.
  11127. properties:
  11128. port:
  11129. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11130. format: int32
  11131. type: integer
  11132. service:
  11133. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  11134. type: string
  11135. required:
  11136. - port
  11137. type: object
  11138. httpGet:
  11139. description: HTTPGet specifies the http request to perform.
  11140. properties:
  11141. host:
  11142. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11143. type: string
  11144. httpHeaders:
  11145. description: Custom headers to set in the request. HTTP allows repeated headers.
  11146. items:
  11147. description: HTTPHeader describes a custom header to be used in HTTP probes
  11148. properties:
  11149. name:
  11150. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11151. type: string
  11152. value:
  11153. description: The header field value
  11154. type: string
  11155. required:
  11156. - name
  11157. - value
  11158. type: object
  11159. type: array
  11160. path:
  11161. description: Path to access on the HTTP server.
  11162. type: string
  11163. port:
  11164. anyOf:
  11165. - type: integer
  11166. - type: string
  11167. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11168. x-kubernetes-int-or-string: true
  11169. scheme:
  11170. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11171. type: string
  11172. required:
  11173. - port
  11174. type: object
  11175. initialDelaySeconds:
  11176. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11177. format: int32
  11178. type: integer
  11179. periodSeconds:
  11180. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11181. format: int32
  11182. type: integer
  11183. successThreshold:
  11184. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  11185. format: int32
  11186. type: integer
  11187. tcpSocket:
  11188. description: TCPSocket specifies an action involving a TCP port.
  11189. properties:
  11190. host:
  11191. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11192. type: string
  11193. port:
  11194. anyOf:
  11195. - type: integer
  11196. - type: string
  11197. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11198. x-kubernetes-int-or-string: true
  11199. required:
  11200. - port
  11201. type: object
  11202. terminationGracePeriodSeconds:
  11203. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11204. format: int64
  11205. type: integer
  11206. timeoutSeconds:
  11207. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11208. format: int32
  11209. type: integer
  11210. type: object
  11211. type: object
  11212. type: object
  11213. metadataPool:
  11214. description: The metadata pool settings
  11215. nullable: true
  11216. properties:
  11217. compressionMode:
  11218. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11219. enum:
  11220. - none
  11221. - passive
  11222. - aggressive
  11223. - force
  11224. - ""
  11225. nullable: true
  11226. type: string
  11227. crushRoot:
  11228. description: The root of the crush hierarchy utilized by the pool
  11229. nullable: true
  11230. type: string
  11231. deviceClass:
  11232. description: The device class the OSD should set to for use in the pool
  11233. nullable: true
  11234. type: string
  11235. enableRBDStats:
  11236. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11237. type: boolean
  11238. erasureCoded:
  11239. description: The erasure code settings
  11240. properties:
  11241. algorithm:
  11242. description: The algorithm for erasure coding
  11243. type: string
  11244. codingChunks:
  11245. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11246. minimum: 0
  11247. type: integer
  11248. dataChunks:
  11249. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11250. minimum: 0
  11251. type: integer
  11252. required:
  11253. - codingChunks
  11254. - dataChunks
  11255. type: object
  11256. failureDomain:
  11257. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11258. type: string
  11259. mirroring:
  11260. description: The mirroring settings
  11261. properties:
  11262. enabled:
  11263. description: Enabled whether this pool is mirrored or not
  11264. type: boolean
  11265. mode:
  11266. description: 'Mode is the mirroring mode: either pool or image'
  11267. type: string
  11268. peers:
  11269. description: Peers represents the peers spec
  11270. nullable: true
  11271. properties:
  11272. secretNames:
  11273. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11274. items:
  11275. type: string
  11276. type: array
  11277. type: object
  11278. snapshotSchedules:
  11279. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11280. items:
  11281. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11282. properties:
  11283. interval:
  11284. description: Interval represent the periodicity of the snapshot.
  11285. type: string
  11286. path:
  11287. description: Path is the path to snapshot, only valid for CephFS
  11288. type: string
  11289. startTime:
  11290. description: StartTime indicates when to start the snapshot
  11291. type: string
  11292. type: object
  11293. type: array
  11294. type: object
  11295. parameters:
  11296. additionalProperties:
  11297. type: string
  11298. description: Parameters is a list of properties to enable on a given pool
  11299. nullable: true
  11300. type: object
  11301. x-kubernetes-preserve-unknown-fields: true
  11302. quotas:
  11303. description: The quota settings
  11304. nullable: true
  11305. properties:
  11306. maxBytes:
  11307. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11308. format: int64
  11309. type: integer
  11310. maxObjects:
  11311. description: MaxObjects represents the quota in objects
  11312. format: int64
  11313. type: integer
  11314. maxSize:
  11315. description: MaxSize represents the quota in bytes as a string
  11316. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11317. type: string
  11318. type: object
  11319. replicated:
  11320. description: The replication settings
  11321. properties:
  11322. hybridStorage:
  11323. description: HybridStorage represents hybrid storage tier settings
  11324. nullable: true
  11325. properties:
  11326. primaryDeviceClass:
  11327. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11328. minLength: 1
  11329. type: string
  11330. secondaryDeviceClass:
  11331. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11332. minLength: 1
  11333. type: string
  11334. required:
  11335. - primaryDeviceClass
  11336. - secondaryDeviceClass
  11337. type: object
  11338. replicasPerFailureDomain:
  11339. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11340. minimum: 1
  11341. type: integer
  11342. requireSafeReplicaSize:
  11343. description: RequireSafeReplicaSize if false allows you to set replica 1
  11344. type: boolean
  11345. size:
  11346. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11347. minimum: 0
  11348. type: integer
  11349. subFailureDomain:
  11350. description: SubFailureDomain the name of the sub-failure domain
  11351. type: string
  11352. targetSizeRatio:
  11353. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11354. type: number
  11355. required:
  11356. - size
  11357. type: object
  11358. statusCheck:
  11359. description: The mirroring statusCheck
  11360. properties:
  11361. mirror:
  11362. description: HealthCheckSpec represents the health check of an object store bucket
  11363. nullable: true
  11364. properties:
  11365. disabled:
  11366. type: boolean
  11367. interval:
  11368. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  11369. type: string
  11370. timeout:
  11371. type: string
  11372. type: object
  11373. type: object
  11374. x-kubernetes-preserve-unknown-fields: true
  11375. type: object
  11376. preservePoolsOnDelete:
  11377. description: Preserve pools on object store deletion
  11378. type: boolean
  11379. security:
  11380. description: Security represents security settings
  11381. nullable: true
  11382. properties:
  11383. keyRotation:
  11384. description: KeyRotation defines options for Key Rotation.
  11385. nullable: true
  11386. properties:
  11387. enabled:
  11388. default: false
  11389. description: Enabled represents whether the key rotation is enabled.
  11390. type: boolean
  11391. schedule:
  11392. description: Schedule represents the cron schedule for key rotation.
  11393. type: string
  11394. type: object
  11395. kms:
  11396. description: KeyManagementService is the main Key Management option
  11397. nullable: true
  11398. properties:
  11399. connectionDetails:
  11400. additionalProperties:
  11401. type: string
  11402. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11403. nullable: true
  11404. type: object
  11405. x-kubernetes-preserve-unknown-fields: true
  11406. tokenSecretName:
  11407. description: TokenSecretName is the kubernetes secret containing the KMS token
  11408. type: string
  11409. type: object
  11410. s3:
  11411. description: The settings for supporting AWS-SSE:S3 with RGW
  11412. nullable: true
  11413. properties:
  11414. connectionDetails:
  11415. additionalProperties:
  11416. type: string
  11417. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11418. nullable: true
  11419. type: object
  11420. x-kubernetes-preserve-unknown-fields: true
  11421. tokenSecretName:
  11422. description: TokenSecretName is the kubernetes secret containing the KMS token
  11423. type: string
  11424. type: object
  11425. type: object
  11426. zone:
  11427. description: The multisite info
  11428. nullable: true
  11429. properties:
  11430. name:
  11431. description: RGW Zone the Object Store is in
  11432. type: string
  11433. required:
  11434. - name
  11435. type: object
  11436. type: object
  11437. status:
  11438. description: ObjectStoreStatus represents the status of a Ceph Object Store resource
  11439. properties:
  11440. conditions:
  11441. items:
  11442. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11443. properties:
  11444. lastHeartbeatTime:
  11445. format: date-time
  11446. type: string
  11447. lastTransitionTime:
  11448. format: date-time
  11449. type: string
  11450. message:
  11451. type: string
  11452. reason:
  11453. description: ConditionReason is a reason for a condition
  11454. type: string
  11455. status:
  11456. type: string
  11457. type:
  11458. description: ConditionType represent a resource's status
  11459. type: string
  11460. type: object
  11461. type: array
  11462. endpoints:
  11463. properties:
  11464. insecure:
  11465. items:
  11466. type: string
  11467. nullable: true
  11468. type: array
  11469. secure:
  11470. items:
  11471. type: string
  11472. nullable: true
  11473. type: array
  11474. type: object
  11475. info:
  11476. additionalProperties:
  11477. type: string
  11478. nullable: true
  11479. type: object
  11480. message:
  11481. type: string
  11482. observedGeneration:
  11483. description: ObservedGeneration is the latest generation observed by the controller.
  11484. format: int64
  11485. type: integer
  11486. phase:
  11487. description: ConditionType represent a resource's status
  11488. type: string
  11489. type: object
  11490. x-kubernetes-preserve-unknown-fields: true
  11491. required:
  11492. - metadata
  11493. - spec
  11494. type: object
  11495. served: true
  11496. storage: true
  11497. subresources:
  11498. status: {}
  11499. ---
  11500. apiVersion: apiextensions.k8s.io/v1
  11501. kind: CustomResourceDefinition
  11502. metadata:
  11503. annotations:
  11504. controller-gen.kubebuilder.io/version: v0.11.3
  11505. creationTimestamp: null
  11506. name: cephobjectstoreusers.ceph.rook.io
  11507. spec:
  11508. group: ceph.rook.io
  11509. names:
  11510. kind: CephObjectStoreUser
  11511. listKind: CephObjectStoreUserList
  11512. plural: cephobjectstoreusers
  11513. shortNames:
  11514. - rcou
  11515. - objectuser
  11516. singular: cephobjectstoreuser
  11517. scope: Namespaced
  11518. versions:
  11519. - additionalPrinterColumns:
  11520. - jsonPath: .status.phase
  11521. name: Phase
  11522. type: string
  11523. name: v1
  11524. schema:
  11525. openAPIV3Schema:
  11526. description: CephObjectStoreUser represents a Ceph Object Store Gateway User
  11527. properties:
  11528. apiVersion:
  11529. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11530. type: string
  11531. kind:
  11532. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11533. type: string
  11534. metadata:
  11535. type: object
  11536. spec:
  11537. description: ObjectStoreUserSpec represent the spec of an Objectstoreuser
  11538. properties:
  11539. capabilities:
  11540. description: Additional admin-level capabilities for the Ceph object store user
  11541. nullable: true
  11542. properties:
  11543. amz-cache:
  11544. description: Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/quincy/radosgw/rgw-cache/#cache-api
  11545. enum:
  11546. - '*'
  11547. - read
  11548. - write
  11549. - read, write
  11550. type: string
  11551. bilog:
  11552. description: Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11553. enum:
  11554. - '*'
  11555. - read
  11556. - write
  11557. - read, write
  11558. type: string
  11559. bucket:
  11560. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11561. enum:
  11562. - '*'
  11563. - read
  11564. - write
  11565. - read, write
  11566. type: string
  11567. buckets:
  11568. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11569. enum:
  11570. - '*'
  11571. - read
  11572. - write
  11573. - read, write
  11574. type: string
  11575. datalog:
  11576. description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11577. enum:
  11578. - '*'
  11579. - read
  11580. - write
  11581. - read, write
  11582. type: string
  11583. info:
  11584. description: Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11585. enum:
  11586. - '*'
  11587. - read
  11588. - write
  11589. - read, write
  11590. type: string
  11591. mdlog:
  11592. description: Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11593. enum:
  11594. - '*'
  11595. - read
  11596. - write
  11597. - read, write
  11598. type: string
  11599. metadata:
  11600. description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11601. enum:
  11602. - '*'
  11603. - read
  11604. - write
  11605. - read, write
  11606. type: string
  11607. oidc-provider:
  11608. description: Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11609. enum:
  11610. - '*'
  11611. - read
  11612. - write
  11613. - read, write
  11614. type: string
  11615. ratelimit:
  11616. description: Add capabilities for user to set rate limiter for user and bucket. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11617. enum:
  11618. - '*'
  11619. - read
  11620. - write
  11621. - read, write
  11622. type: string
  11623. roles:
  11624. description: Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11625. enum:
  11626. - '*'
  11627. - read
  11628. - write
  11629. - read, write
  11630. type: string
  11631. usage:
  11632. description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11633. enum:
  11634. - '*'
  11635. - read
  11636. - write
  11637. - read, write
  11638. type: string
  11639. user:
  11640. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11641. enum:
  11642. - '*'
  11643. - read
  11644. - write
  11645. - read, write
  11646. type: string
  11647. user-policy:
  11648. description: Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11649. enum:
  11650. - '*'
  11651. - read
  11652. - write
  11653. - read, write
  11654. type: string
  11655. users:
  11656. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11657. enum:
  11658. - '*'
  11659. - read
  11660. - write
  11661. - read, write
  11662. type: string
  11663. zone:
  11664. description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11665. enum:
  11666. - '*'
  11667. - read
  11668. - write
  11669. - read, write
  11670. type: string
  11671. type: object
  11672. clusterNamespace:
  11673. description: The namespace where the parent CephCluster and CephObjectStore are found
  11674. type: string
  11675. displayName:
  11676. description: The display name for the ceph users
  11677. type: string
  11678. quotas:
  11679. description: ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more
  11680. nullable: true
  11681. properties:
  11682. maxBuckets:
  11683. description: Maximum bucket limit for the ceph user
  11684. nullable: true
  11685. type: integer
  11686. maxObjects:
  11687. description: Maximum number of objects across all the user's buckets
  11688. format: int64
  11689. nullable: true
  11690. type: integer
  11691. maxSize:
  11692. anyOf:
  11693. - type: integer
  11694. - type: string
  11695. description: Maximum size limit of all objects across all the user's buckets See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
  11696. nullable: true
  11697. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11698. x-kubernetes-int-or-string: true
  11699. type: object
  11700. store:
  11701. description: The store the user will be created in
  11702. type: string
  11703. type: object
  11704. status:
  11705. description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
  11706. properties:
  11707. info:
  11708. additionalProperties:
  11709. type: string
  11710. nullable: true
  11711. type: object
  11712. observedGeneration:
  11713. description: ObservedGeneration is the latest generation observed by the controller.
  11714. format: int64
  11715. type: integer
  11716. phase:
  11717. type: string
  11718. type: object
  11719. x-kubernetes-preserve-unknown-fields: true
  11720. required:
  11721. - metadata
  11722. - spec
  11723. type: object
  11724. served: true
  11725. storage: true
  11726. subresources:
  11727. status: {}
  11728. ---
  11729. apiVersion: apiextensions.k8s.io/v1
  11730. kind: CustomResourceDefinition
  11731. metadata:
  11732. annotations:
  11733. controller-gen.kubebuilder.io/version: v0.11.3
  11734. creationTimestamp: null
  11735. name: cephobjectzonegroups.ceph.rook.io
  11736. spec:
  11737. group: ceph.rook.io
  11738. names:
  11739. kind: CephObjectZoneGroup
  11740. listKind: CephObjectZoneGroupList
  11741. plural: cephobjectzonegroups
  11742. singular: cephobjectzonegroup
  11743. scope: Namespaced
  11744. versions:
  11745. - additionalPrinterColumns:
  11746. - jsonPath: .status.phase
  11747. name: Phase
  11748. type: string
  11749. name: v1
  11750. schema:
  11751. openAPIV3Schema:
  11752. description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
  11753. properties:
  11754. apiVersion:
  11755. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11756. type: string
  11757. kind:
  11758. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11759. type: string
  11760. metadata:
  11761. type: object
  11762. spec:
  11763. description: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
  11764. properties:
  11765. realm:
  11766. description: The display name for the ceph users
  11767. type: string
  11768. required:
  11769. - realm
  11770. type: object
  11771. status:
  11772. description: Status represents the status of an object
  11773. properties:
  11774. conditions:
  11775. items:
  11776. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11777. properties:
  11778. lastHeartbeatTime:
  11779. format: date-time
  11780. type: string
  11781. lastTransitionTime:
  11782. format: date-time
  11783. type: string
  11784. message:
  11785. type: string
  11786. reason:
  11787. description: ConditionReason is a reason for a condition
  11788. type: string
  11789. status:
  11790. type: string
  11791. type:
  11792. description: ConditionType represent a resource's status
  11793. type: string
  11794. type: object
  11795. type: array
  11796. observedGeneration:
  11797. description: ObservedGeneration is the latest generation observed by the controller.
  11798. format: int64
  11799. type: integer
  11800. phase:
  11801. type: string
  11802. type: object
  11803. x-kubernetes-preserve-unknown-fields: true
  11804. required:
  11805. - metadata
  11806. - spec
  11807. type: object
  11808. served: true
  11809. storage: true
  11810. subresources:
  11811. status: {}
  11812. ---
  11813. apiVersion: apiextensions.k8s.io/v1
  11814. kind: CustomResourceDefinition
  11815. metadata:
  11816. annotations:
  11817. controller-gen.kubebuilder.io/version: v0.11.3
  11818. creationTimestamp: null
  11819. name: cephobjectzones.ceph.rook.io
  11820. spec:
  11821. group: ceph.rook.io
  11822. names:
  11823. kind: CephObjectZone
  11824. listKind: CephObjectZoneList
  11825. plural: cephobjectzones
  11826. singular: cephobjectzone
  11827. scope: Namespaced
  11828. versions:
  11829. - additionalPrinterColumns:
  11830. - jsonPath: .status.phase
  11831. name: Phase
  11832. type: string
  11833. name: v1
  11834. schema:
  11835. openAPIV3Schema:
  11836. description: CephObjectZone represents a Ceph Object Store Gateway Zone
  11837. properties:
  11838. apiVersion:
  11839. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11840. type: string
  11841. kind:
  11842. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11843. type: string
  11844. metadata:
  11845. type: object
  11846. spec:
  11847. description: ObjectZoneSpec represent the spec of an ObjectZone
  11848. properties:
  11849. customEndpoints:
  11850. description: "If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may include the port in the definition. For example: \"https://my-object-store.my-domain.net:443\". In many cases, you should set this to the endpoint of the ingress resource that makes the CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters. The list can have one or more endpoints pointing to different RGW servers in the zone. \n If a CephObjectStore endpoint is omitted from this list, that object store's gateways will not receive multisite replication data (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic)."
  11851. items:
  11852. type: string
  11853. nullable: true
  11854. type: array
  11855. dataPool:
  11856. description: The data pool settings
  11857. nullable: true
  11858. properties:
  11859. compressionMode:
  11860. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11861. enum:
  11862. - none
  11863. - passive
  11864. - aggressive
  11865. - force
  11866. - ""
  11867. nullable: true
  11868. type: string
  11869. crushRoot:
  11870. description: The root of the crush hierarchy utilized by the pool
  11871. nullable: true
  11872. type: string
  11873. deviceClass:
  11874. description: The device class the OSD should set to for use in the pool
  11875. nullable: true
  11876. type: string
  11877. enableRBDStats:
  11878. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11879. type: boolean
  11880. erasureCoded:
  11881. description: The erasure code settings
  11882. properties:
  11883. algorithm:
  11884. description: The algorithm for erasure coding
  11885. type: string
  11886. codingChunks:
  11887. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11888. minimum: 0
  11889. type: integer
  11890. dataChunks:
  11891. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11892. minimum: 0
  11893. type: integer
  11894. required:
  11895. - codingChunks
  11896. - dataChunks
  11897. type: object
  11898. failureDomain:
  11899. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11900. type: string
  11901. mirroring:
  11902. description: The mirroring settings
  11903. properties:
  11904. enabled:
  11905. description: Enabled whether this pool is mirrored or not
  11906. type: boolean
  11907. mode:
  11908. description: 'Mode is the mirroring mode: either pool or image'
  11909. type: string
  11910. peers:
  11911. description: Peers represents the peers spec
  11912. nullable: true
  11913. properties:
  11914. secretNames:
  11915. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11916. items:
  11917. type: string
  11918. type: array
  11919. type: object
  11920. snapshotSchedules:
  11921. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11922. items:
  11923. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11924. properties:
  11925. interval:
  11926. description: Interval represent the periodicity of the snapshot.
  11927. type: string
  11928. path:
  11929. description: Path is the path to snapshot, only valid for CephFS
  11930. type: string
  11931. startTime:
  11932. description: StartTime indicates when to start the snapshot
  11933. type: string
  11934. type: object
  11935. type: array
  11936. type: object
  11937. parameters:
  11938. additionalProperties:
  11939. type: string
  11940. description: Parameters is a list of properties to enable on a given pool
  11941. nullable: true
  11942. type: object
  11943. x-kubernetes-preserve-unknown-fields: true
  11944. quotas:
  11945. description: The quota settings
  11946. nullable: true
  11947. properties:
  11948. maxBytes:
  11949. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11950. format: int64
  11951. type: integer
  11952. maxObjects:
  11953. description: MaxObjects represents the quota in objects
  11954. format: int64
  11955. type: integer
  11956. maxSize:
  11957. description: MaxSize represents the quota in bytes as a string
  11958. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11959. type: string
  11960. type: object
  11961. replicated:
  11962. description: The replication settings
  11963. properties:
  11964. hybridStorage:
  11965. description: HybridStorage represents hybrid storage tier settings
  11966. nullable: true
  11967. properties:
  11968. primaryDeviceClass:
  11969. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11970. minLength: 1
  11971. type: string
  11972. secondaryDeviceClass:
  11973. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11974. minLength: 1
  11975. type: string
  11976. required:
  11977. - primaryDeviceClass
  11978. - secondaryDeviceClass
  11979. type: object
  11980. replicasPerFailureDomain:
  11981. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11982. minimum: 1
  11983. type: integer
  11984. requireSafeReplicaSize:
  11985. description: RequireSafeReplicaSize if false allows you to set replica 1
  11986. type: boolean
  11987. size:
  11988. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11989. minimum: 0
  11990. type: integer
  11991. subFailureDomain:
  11992. description: SubFailureDomain the name of the sub-failure domain
  11993. type: string
  11994. targetSizeRatio:
  11995. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11996. type: number
  11997. required:
  11998. - size
  11999. type: object
  12000. statusCheck:
  12001. description: The mirroring statusCheck
  12002. properties:
  12003. mirror:
  12004. description: HealthCheckSpec represents the health check of an object store bucket
  12005. nullable: true
  12006. properties:
  12007. disabled:
  12008. type: boolean
  12009. interval:
  12010. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12011. type: string
  12012. timeout:
  12013. type: string
  12014. type: object
  12015. type: object
  12016. x-kubernetes-preserve-unknown-fields: true
  12017. type: object
  12018. metadataPool:
  12019. description: The metadata pool settings
  12020. nullable: true
  12021. properties:
  12022. compressionMode:
  12023. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  12024. enum:
  12025. - none
  12026. - passive
  12027. - aggressive
  12028. - force
  12029. - ""
  12030. nullable: true
  12031. type: string
  12032. crushRoot:
  12033. description: The root of the crush hierarchy utilized by the pool
  12034. nullable: true
  12035. type: string
  12036. deviceClass:
  12037. description: The device class the OSD should set to for use in the pool
  12038. nullable: true
  12039. type: string
  12040. enableRBDStats:
  12041. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  12042. type: boolean
  12043. erasureCoded:
  12044. description: The erasure code settings
  12045. properties:
  12046. algorithm:
  12047. description: The algorithm for erasure coding
  12048. type: string
  12049. codingChunks:
  12050. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  12051. minimum: 0
  12052. type: integer
  12053. dataChunks:
  12054. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  12055. minimum: 0
  12056. type: integer
  12057. required:
  12058. - codingChunks
  12059. - dataChunks
  12060. type: object
  12061. failureDomain:
  12062. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  12063. type: string
  12064. mirroring:
  12065. description: The mirroring settings
  12066. properties:
  12067. enabled:
  12068. description: Enabled whether this pool is mirrored or not
  12069. type: boolean
  12070. mode:
  12071. description: 'Mode is the mirroring mode: either pool or image'
  12072. type: string
  12073. peers:
  12074. description: Peers represents the peers spec
  12075. nullable: true
  12076. properties:
  12077. secretNames:
  12078. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12079. items:
  12080. type: string
  12081. type: array
  12082. type: object
  12083. snapshotSchedules:
  12084. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  12085. items:
  12086. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  12087. properties:
  12088. interval:
  12089. description: Interval represent the periodicity of the snapshot.
  12090. type: string
  12091. path:
  12092. description: Path is the path to snapshot, only valid for CephFS
  12093. type: string
  12094. startTime:
  12095. description: StartTime indicates when to start the snapshot
  12096. type: string
  12097. type: object
  12098. type: array
  12099. type: object
  12100. parameters:
  12101. additionalProperties:
  12102. type: string
  12103. description: Parameters is a list of properties to enable on a given pool
  12104. nullable: true
  12105. type: object
  12106. x-kubernetes-preserve-unknown-fields: true
  12107. quotas:
  12108. description: The quota settings
  12109. nullable: true
  12110. properties:
  12111. maxBytes:
  12112. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  12113. format: int64
  12114. type: integer
  12115. maxObjects:
  12116. description: MaxObjects represents the quota in objects
  12117. format: int64
  12118. type: integer
  12119. maxSize:
  12120. description: MaxSize represents the quota in bytes as a string
  12121. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  12122. type: string
  12123. type: object
  12124. replicated:
  12125. description: The replication settings
  12126. properties:
  12127. hybridStorage:
  12128. description: HybridStorage represents hybrid storage tier settings
  12129. nullable: true
  12130. properties:
  12131. primaryDeviceClass:
  12132. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  12133. minLength: 1
  12134. type: string
  12135. secondaryDeviceClass:
  12136. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  12137. minLength: 1
  12138. type: string
  12139. required:
  12140. - primaryDeviceClass
  12141. - secondaryDeviceClass
  12142. type: object
  12143. replicasPerFailureDomain:
  12144. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  12145. minimum: 1
  12146. type: integer
  12147. requireSafeReplicaSize:
  12148. description: RequireSafeReplicaSize if false allows you to set replica 1
  12149. type: boolean
  12150. size:
  12151. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  12152. minimum: 0
  12153. type: integer
  12154. subFailureDomain:
  12155. description: SubFailureDomain the name of the sub-failure domain
  12156. type: string
  12157. targetSizeRatio:
  12158. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  12159. type: number
  12160. required:
  12161. - size
  12162. type: object
  12163. statusCheck:
  12164. description: The mirroring statusCheck
  12165. properties:
  12166. mirror:
  12167. description: HealthCheckSpec represents the health check of an object store bucket
  12168. nullable: true
  12169. properties:
  12170. disabled:
  12171. type: boolean
  12172. interval:
  12173. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12174. type: string
  12175. timeout:
  12176. type: string
  12177. type: object
  12178. type: object
  12179. x-kubernetes-preserve-unknown-fields: true
  12180. type: object
  12181. preservePoolsOnDelete:
  12182. default: true
  12183. description: Preserve pools on object zone deletion
  12184. type: boolean
  12185. zoneGroup:
  12186. description: The display name for the ceph users
  12187. type: string
  12188. required:
  12189. - dataPool
  12190. - metadataPool
  12191. - zoneGroup
  12192. type: object
  12193. status:
  12194. description: Status represents the status of an object
  12195. properties:
  12196. conditions:
  12197. items:
  12198. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12199. properties:
  12200. lastHeartbeatTime:
  12201. format: date-time
  12202. type: string
  12203. lastTransitionTime:
  12204. format: date-time
  12205. type: string
  12206. message:
  12207. type: string
  12208. reason:
  12209. description: ConditionReason is a reason for a condition
  12210. type: string
  12211. status:
  12212. type: string
  12213. type:
  12214. description: ConditionType represent a resource's status
  12215. type: string
  12216. type: object
  12217. type: array
  12218. observedGeneration:
  12219. description: ObservedGeneration is the latest generation observed by the controller.
  12220. format: int64
  12221. type: integer
  12222. phase:
  12223. type: string
  12224. type: object
  12225. x-kubernetes-preserve-unknown-fields: true
  12226. required:
  12227. - metadata
  12228. - spec
  12229. type: object
  12230. served: true
  12231. storage: true
  12232. subresources:
  12233. status: {}
  12234. ---
  12235. apiVersion: apiextensions.k8s.io/v1
  12236. kind: CustomResourceDefinition
  12237. metadata:
  12238. annotations:
  12239. controller-gen.kubebuilder.io/version: v0.11.3
  12240. creationTimestamp: null
  12241. name: cephrbdmirrors.ceph.rook.io
  12242. spec:
  12243. group: ceph.rook.io
  12244. names:
  12245. kind: CephRBDMirror
  12246. listKind: CephRBDMirrorList
  12247. plural: cephrbdmirrors
  12248. singular: cephrbdmirror
  12249. scope: Namespaced
  12250. versions:
  12251. - additionalPrinterColumns:
  12252. - jsonPath: .status.phase
  12253. name: Phase
  12254. type: string
  12255. name: v1
  12256. schema:
  12257. openAPIV3Schema:
  12258. description: CephRBDMirror represents a Ceph RBD Mirror
  12259. properties:
  12260. apiVersion:
  12261. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  12262. type: string
  12263. kind:
  12264. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  12265. type: string
  12266. metadata:
  12267. type: object
  12268. spec:
  12269. description: RBDMirroringSpec represents the specification of an RBD mirror daemon
  12270. properties:
  12271. annotations:
  12272. additionalProperties:
  12273. type: string
  12274. description: The annotations-related configuration to add/set on each Pod related object.
  12275. nullable: true
  12276. type: object
  12277. x-kubernetes-preserve-unknown-fields: true
  12278. count:
  12279. description: Count represents the number of rbd mirror instance to run
  12280. minimum: 1
  12281. type: integer
  12282. labels:
  12283. additionalProperties:
  12284. type: string
  12285. description: The labels-related configuration to add/set on each Pod related object.
  12286. nullable: true
  12287. type: object
  12288. x-kubernetes-preserve-unknown-fields: true
  12289. peers:
  12290. description: Peers represents the peers spec
  12291. nullable: true
  12292. properties:
  12293. secretNames:
  12294. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12295. items:
  12296. type: string
  12297. type: array
  12298. type: object
  12299. placement:
  12300. description: The affinity to place the rgw pods (default is to place on any available node)
  12301. nullable: true
  12302. properties:
  12303. nodeAffinity:
  12304. description: NodeAffinity is a group of node affinity scheduling rules
  12305. properties:
  12306. preferredDuringSchedulingIgnoredDuringExecution:
  12307. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  12308. items:
  12309. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  12310. properties:
  12311. preference:
  12312. description: A node selector term, associated with the corresponding weight.
  12313. properties:
  12314. matchExpressions:
  12315. description: A list of node selector requirements by node's labels.
  12316. items:
  12317. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12318. properties:
  12319. key:
  12320. description: The label key that the selector applies to.
  12321. type: string
  12322. operator:
  12323. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12324. type: string
  12325. values:
  12326. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12327. items:
  12328. type: string
  12329. type: array
  12330. required:
  12331. - key
  12332. - operator
  12333. type: object
  12334. type: array
  12335. matchFields:
  12336. description: A list of node selector requirements by node's fields.
  12337. items:
  12338. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12339. properties:
  12340. key:
  12341. description: The label key that the selector applies to.
  12342. type: string
  12343. operator:
  12344. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12345. type: string
  12346. values:
  12347. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12348. items:
  12349. type: string
  12350. type: array
  12351. required:
  12352. - key
  12353. - operator
  12354. type: object
  12355. type: array
  12356. type: object
  12357. x-kubernetes-map-type: atomic
  12358. weight:
  12359. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  12360. format: int32
  12361. type: integer
  12362. required:
  12363. - preference
  12364. - weight
  12365. type: object
  12366. type: array
  12367. requiredDuringSchedulingIgnoredDuringExecution:
  12368. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  12369. properties:
  12370. nodeSelectorTerms:
  12371. description: Required. A list of node selector terms. The terms are ORed.
  12372. items:
  12373. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  12374. properties:
  12375. matchExpressions:
  12376. description: A list of node selector requirements by node's labels.
  12377. items:
  12378. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12379. properties:
  12380. key:
  12381. description: The label key that the selector applies to.
  12382. type: string
  12383. operator:
  12384. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12385. type: string
  12386. values:
  12387. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12388. items:
  12389. type: string
  12390. type: array
  12391. required:
  12392. - key
  12393. - operator
  12394. type: object
  12395. type: array
  12396. matchFields:
  12397. description: A list of node selector requirements by node's fields.
  12398. items:
  12399. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12400. properties:
  12401. key:
  12402. description: The label key that the selector applies to.
  12403. type: string
  12404. operator:
  12405. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12406. type: string
  12407. values:
  12408. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12409. items:
  12410. type: string
  12411. type: array
  12412. required:
  12413. - key
  12414. - operator
  12415. type: object
  12416. type: array
  12417. type: object
  12418. x-kubernetes-map-type: atomic
  12419. type: array
  12420. required:
  12421. - nodeSelectorTerms
  12422. type: object
  12423. x-kubernetes-map-type: atomic
  12424. type: object
  12425. podAffinity:
  12426. description: PodAffinity is a group of inter pod affinity scheduling rules
  12427. properties:
  12428. preferredDuringSchedulingIgnoredDuringExecution:
  12429. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12430. items:
  12431. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12432. properties:
  12433. podAffinityTerm:
  12434. description: Required. A pod affinity term, associated with the corresponding weight.
  12435. properties:
  12436. labelSelector:
  12437. description: A label query over a set of resources, in this case pods.
  12438. properties:
  12439. matchExpressions:
  12440. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12441. items:
  12442. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12443. properties:
  12444. key:
  12445. description: key is the label key that the selector applies to.
  12446. type: string
  12447. operator:
  12448. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12449. type: string
  12450. values:
  12451. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12452. items:
  12453. type: string
  12454. type: array
  12455. required:
  12456. - key
  12457. - operator
  12458. type: object
  12459. type: array
  12460. matchLabels:
  12461. additionalProperties:
  12462. type: string
  12463. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12464. type: object
  12465. type: object
  12466. x-kubernetes-map-type: atomic
  12467. namespaceSelector:
  12468. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12469. properties:
  12470. matchExpressions:
  12471. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12472. items:
  12473. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12474. properties:
  12475. key:
  12476. description: key is the label key that the selector applies to.
  12477. type: string
  12478. operator:
  12479. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12480. type: string
  12481. values:
  12482. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12483. items:
  12484. type: string
  12485. type: array
  12486. required:
  12487. - key
  12488. - operator
  12489. type: object
  12490. type: array
  12491. matchLabels:
  12492. additionalProperties:
  12493. type: string
  12494. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12495. type: object
  12496. type: object
  12497. x-kubernetes-map-type: atomic
  12498. namespaces:
  12499. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12500. items:
  12501. type: string
  12502. type: array
  12503. topologyKey:
  12504. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12505. type: string
  12506. required:
  12507. - topologyKey
  12508. type: object
  12509. weight:
  12510. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12511. format: int32
  12512. type: integer
  12513. required:
  12514. - podAffinityTerm
  12515. - weight
  12516. type: object
  12517. type: array
  12518. requiredDuringSchedulingIgnoredDuringExecution:
  12519. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12520. items:
  12521. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12522. properties:
  12523. labelSelector:
  12524. description: A label query over a set of resources, in this case pods.
  12525. properties:
  12526. matchExpressions:
  12527. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12528. items:
  12529. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12530. properties:
  12531. key:
  12532. description: key is the label key that the selector applies to.
  12533. type: string
  12534. operator:
  12535. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12536. type: string
  12537. values:
  12538. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12539. items:
  12540. type: string
  12541. type: array
  12542. required:
  12543. - key
  12544. - operator
  12545. type: object
  12546. type: array
  12547. matchLabels:
  12548. additionalProperties:
  12549. type: string
  12550. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12551. type: object
  12552. type: object
  12553. x-kubernetes-map-type: atomic
  12554. namespaceSelector:
  12555. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12556. properties:
  12557. matchExpressions:
  12558. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12559. items:
  12560. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12561. properties:
  12562. key:
  12563. description: key is the label key that the selector applies to.
  12564. type: string
  12565. operator:
  12566. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12567. type: string
  12568. values:
  12569. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12570. items:
  12571. type: string
  12572. type: array
  12573. required:
  12574. - key
  12575. - operator
  12576. type: object
  12577. type: array
  12578. matchLabels:
  12579. additionalProperties:
  12580. type: string
  12581. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12582. type: object
  12583. type: object
  12584. x-kubernetes-map-type: atomic
  12585. namespaces:
  12586. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12587. items:
  12588. type: string
  12589. type: array
  12590. topologyKey:
  12591. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12592. type: string
  12593. required:
  12594. - topologyKey
  12595. type: object
  12596. type: array
  12597. type: object
  12598. podAntiAffinity:
  12599. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  12600. properties:
  12601. preferredDuringSchedulingIgnoredDuringExecution:
  12602. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12603. items:
  12604. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12605. properties:
  12606. podAffinityTerm:
  12607. description: Required. A pod affinity term, associated with the corresponding weight.
  12608. properties:
  12609. labelSelector:
  12610. description: A label query over a set of resources, in this case pods.
  12611. properties:
  12612. matchExpressions:
  12613. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12614. items:
  12615. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12616. properties:
  12617. key:
  12618. description: key is the label key that the selector applies to.
  12619. type: string
  12620. operator:
  12621. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12622. type: string
  12623. values:
  12624. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12625. items:
  12626. type: string
  12627. type: array
  12628. required:
  12629. - key
  12630. - operator
  12631. type: object
  12632. type: array
  12633. matchLabels:
  12634. additionalProperties:
  12635. type: string
  12636. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12637. type: object
  12638. type: object
  12639. x-kubernetes-map-type: atomic
  12640. namespaceSelector:
  12641. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12642. properties:
  12643. matchExpressions:
  12644. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12645. items:
  12646. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12647. properties:
  12648. key:
  12649. description: key is the label key that the selector applies to.
  12650. type: string
  12651. operator:
  12652. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12653. type: string
  12654. values:
  12655. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12656. items:
  12657. type: string
  12658. type: array
  12659. required:
  12660. - key
  12661. - operator
  12662. type: object
  12663. type: array
  12664. matchLabels:
  12665. additionalProperties:
  12666. type: string
  12667. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12668. type: object
  12669. type: object
  12670. x-kubernetes-map-type: atomic
  12671. namespaces:
  12672. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12673. items:
  12674. type: string
  12675. type: array
  12676. topologyKey:
  12677. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12678. type: string
  12679. required:
  12680. - topologyKey
  12681. type: object
  12682. weight:
  12683. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12684. format: int32
  12685. type: integer
  12686. required:
  12687. - podAffinityTerm
  12688. - weight
  12689. type: object
  12690. type: array
  12691. requiredDuringSchedulingIgnoredDuringExecution:
  12692. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12693. items:
  12694. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12695. properties:
  12696. labelSelector:
  12697. description: A label query over a set of resources, in this case pods.
  12698. properties:
  12699. matchExpressions:
  12700. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12701. items:
  12702. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12703. properties:
  12704. key:
  12705. description: key is the label key that the selector applies to.
  12706. type: string
  12707. operator:
  12708. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12709. type: string
  12710. values:
  12711. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12712. items:
  12713. type: string
  12714. type: array
  12715. required:
  12716. - key
  12717. - operator
  12718. type: object
  12719. type: array
  12720. matchLabels:
  12721. additionalProperties:
  12722. type: string
  12723. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12724. type: object
  12725. type: object
  12726. x-kubernetes-map-type: atomic
  12727. namespaceSelector:
  12728. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12729. properties:
  12730. matchExpressions:
  12731. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12732. items:
  12733. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12734. properties:
  12735. key:
  12736. description: key is the label key that the selector applies to.
  12737. type: string
  12738. operator:
  12739. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12740. type: string
  12741. values:
  12742. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12743. items:
  12744. type: string
  12745. type: array
  12746. required:
  12747. - key
  12748. - operator
  12749. type: object
  12750. type: array
  12751. matchLabels:
  12752. additionalProperties:
  12753. type: string
  12754. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12755. type: object
  12756. type: object
  12757. x-kubernetes-map-type: atomic
  12758. namespaces:
  12759. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12760. items:
  12761. type: string
  12762. type: array
  12763. topologyKey:
  12764. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12765. type: string
  12766. required:
  12767. - topologyKey
  12768. type: object
  12769. type: array
  12770. type: object
  12771. tolerations:
  12772. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  12773. items:
  12774. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  12775. properties:
  12776. effect:
  12777. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  12778. type: string
  12779. key:
  12780. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  12781. type: string
  12782. operator:
  12783. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  12784. type: string
  12785. tolerationSeconds:
  12786. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  12787. format: int64
  12788. type: integer
  12789. value:
  12790. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  12791. type: string
  12792. type: object
  12793. type: array
  12794. topologySpreadConstraints:
  12795. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  12796. items:
  12797. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  12798. properties:
  12799. labelSelector:
  12800. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  12801. properties:
  12802. matchExpressions:
  12803. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12804. items:
  12805. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12806. properties:
  12807. key:
  12808. description: key is the label key that the selector applies to.
  12809. type: string
  12810. operator:
  12811. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12812. type: string
  12813. values:
  12814. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12815. items:
  12816. type: string
  12817. type: array
  12818. required:
  12819. - key
  12820. - operator
  12821. type: object
  12822. type: array
  12823. matchLabels:
  12824. additionalProperties:
  12825. type: string
  12826. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12827. type: object
  12828. type: object
  12829. x-kubernetes-map-type: atomic
  12830. matchLabelKeys:
  12831. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  12832. items:
  12833. type: string
  12834. type: array
  12835. x-kubernetes-list-type: atomic
  12836. maxSkew:
  12837. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  12838. format: int32
  12839. type: integer
  12840. minDomains:
  12841. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  12842. format: int32
  12843. type: integer
  12844. nodeAffinityPolicy:
  12845. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  12846. type: string
  12847. nodeTaintsPolicy:
  12848. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  12849. type: string
  12850. topologyKey:
  12851. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  12852. type: string
  12853. whenUnsatisfiable:
  12854. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  12855. type: string
  12856. required:
  12857. - maxSkew
  12858. - topologyKey
  12859. - whenUnsatisfiable
  12860. type: object
  12861. type: array
  12862. type: object
  12863. x-kubernetes-preserve-unknown-fields: true
  12864. priorityClassName:
  12865. description: PriorityClassName sets priority class on the rbd mirror pods
  12866. type: string
  12867. resources:
  12868. description: The resource requirements for the rbd mirror pods
  12869. nullable: true
  12870. properties:
  12871. claims:
  12872. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  12873. items:
  12874. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  12875. properties:
  12876. name:
  12877. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  12878. type: string
  12879. required:
  12880. - name
  12881. type: object
  12882. type: array
  12883. x-kubernetes-list-map-keys:
  12884. - name
  12885. x-kubernetes-list-type: map
  12886. limits:
  12887. additionalProperties:
  12888. anyOf:
  12889. - type: integer
  12890. - type: string
  12891. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12892. x-kubernetes-int-or-string: true
  12893. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  12894. type: object
  12895. requests:
  12896. additionalProperties:
  12897. anyOf:
  12898. - type: integer
  12899. - type: string
  12900. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12901. x-kubernetes-int-or-string: true
  12902. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  12903. type: object
  12904. type: object
  12905. x-kubernetes-preserve-unknown-fields: true
  12906. required:
  12907. - count
  12908. type: object
  12909. status:
  12910. description: Status represents the status of an object
  12911. properties:
  12912. conditions:
  12913. items:
  12914. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12915. properties:
  12916. lastHeartbeatTime:
  12917. format: date-time
  12918. type: string
  12919. lastTransitionTime:
  12920. format: date-time
  12921. type: string
  12922. message:
  12923. type: string
  12924. reason:
  12925. description: ConditionReason is a reason for a condition
  12926. type: string
  12927. status:
  12928. type: string
  12929. type:
  12930. description: ConditionType represent a resource's status
  12931. type: string
  12932. type: object
  12933. type: array
  12934. observedGeneration:
  12935. description: ObservedGeneration is the latest generation observed by the controller.
  12936. format: int64
  12937. type: integer
  12938. phase:
  12939. type: string
  12940. type: object
  12941. x-kubernetes-preserve-unknown-fields: true
  12942. required:
  12943. - metadata
  12944. - spec
  12945. type: object
  12946. served: true
  12947. storage: true
  12948. subresources:
  12949. status: {}
  12950. ---
  12951. apiVersion: apiextensions.k8s.io/v1
  12952. kind: CustomResourceDefinition
  12953. metadata:
  12954. name: objectbucketclaims.objectbucket.io
  12955. spec:
  12956. group: objectbucket.io
  12957. names:
  12958. kind: ObjectBucketClaim
  12959. listKind: ObjectBucketClaimList
  12960. plural: objectbucketclaims
  12961. singular: objectbucketclaim
  12962. shortNames:
  12963. - obc
  12964. - obcs
  12965. scope: Namespaced
  12966. versions:
  12967. - name: v1alpha1
  12968. served: true
  12969. storage: true
  12970. schema:
  12971. openAPIV3Schema:
  12972. type: object
  12973. properties:
  12974. spec:
  12975. type: object
  12976. properties:
  12977. storageClassName:
  12978. type: string
  12979. bucketName:
  12980. type: string
  12981. generateBucketName:
  12982. type: string
  12983. additionalConfig:
  12984. type: object
  12985. nullable: true
  12986. x-kubernetes-preserve-unknown-fields: true
  12987. objectBucketName:
  12988. type: string
  12989. status:
  12990. type: object
  12991. x-kubernetes-preserve-unknown-fields: true
  12992. subresources:
  12993. status: {}
  12994. ---
  12995. apiVersion: apiextensions.k8s.io/v1
  12996. kind: CustomResourceDefinition
  12997. metadata:
  12998. name: objectbuckets.objectbucket.io
  12999. spec:
  13000. group: objectbucket.io
  13001. names:
  13002. kind: ObjectBucket
  13003. listKind: ObjectBucketList
  13004. plural: objectbuckets
  13005. singular: objectbucket
  13006. shortNames:
  13007. - ob
  13008. - obs
  13009. scope: Cluster
  13010. versions:
  13011. - name: v1alpha1
  13012. served: true
  13013. storage: true
  13014. schema:
  13015. openAPIV3Schema:
  13016. type: object
  13017. properties:
  13018. spec:
  13019. type: object
  13020. properties:
  13021. storageClassName:
  13022. type: string
  13023. endpoint:
  13024. type: object
  13025. nullable: true
  13026. properties:
  13027. bucketHost:
  13028. type: string
  13029. bucketPort:
  13030. type: integer
  13031. format: int32
  13032. bucketName:
  13033. type: string
  13034. region:
  13035. type: string
  13036. subRegion:
  13037. type: string
  13038. additionalConfig:
  13039. type: object
  13040. nullable: true
  13041. x-kubernetes-preserve-unknown-fields: true
  13042. authentication:
  13043. type: object
  13044. nullable: true
  13045. items:
  13046. type: object
  13047. x-kubernetes-preserve-unknown-fields: true
  13048. additionalState:
  13049. type: object
  13050. nullable: true
  13051. x-kubernetes-preserve-unknown-fields: true
  13052. reclaimPolicy:
  13053. type: string
  13054. claimRef:
  13055. type: object
  13056. nullable: true
  13057. x-kubernetes-preserve-unknown-fields: true
  13058. status:
  13059. type: object
  13060. x-kubernetes-preserve-unknown-fields: true
  13061. subresources:
  13062. status: {}