| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472 | apiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.11.3    helm.sh/resource-policy: keep    meta.helm.sh/release-name: c3    meta.helm.sh/release-namespace: c3  creationTimestamp: "2023-09-08T15:16:44Z"  generation: 1  labels:    app.kubernetes.io/managed-by: Helm  name: cephclusters.ceph.rook.io  resourceVersion: "381811"  uid: d83f144a-87b6-4c65-96f4-e4308d211e0cspec:  conversion:    strategy: None  group: ceph.rook.io  names:    kind: CephCluster    listKind: CephClusterList    plural: cephclusters    singular: cephcluster  scope: Namespaced  versions:  - additionalPrinterColumns:    - description: Directory used on the K8s nodes      jsonPath: .spec.dataDirHostPath      name: DataDirHostPath      type: string    - description: Number of MONs      jsonPath: .spec.mon.count      name: MonCount      type: string    - jsonPath: .metadata.creationTimestamp      name: Age      type: date    - jsonPath: .status.phase      name: Phase      type: string    - description: Message      jsonPath: .status.message      name: Message      type: string    - description: Ceph Health      jsonPath: .status.ceph.health      name: Health      type: string    - jsonPath: .spec.external.enable      name: External      type: boolean    - description: Ceph FSID      jsonPath: .status.ceph.fsid      name: FSID      type: string    name: v1    schema:      openAPIV3Schema:        description: CephCluster is a Ceph storage cluster        properties:          apiVersion:            description: 'APIVersion defines the versioned schema of this representation              of an object. Servers should convert recognized schemas to the latest              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'            type: string          kind:            description: 'Kind is a string value representing the REST resource this              object represents. Servers may infer this from the endpoint the client              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'            type: string          metadata:            type: object          spec:            description: ClusterSpec represents the specification of Ceph Cluster            properties:              annotations:                additionalProperties:                  additionalProperties:                    type: string                  description: Annotations are annotations                  type: object                description: The annotations-related configuration to add/set on each                  Pod related object.                nullable: true                type: object                x-kubernetes-preserve-unknown-fields: true              cephVersion:                description: The version information that instructs Rook to orchestrate                  a particular version of Ceph.                nullable: true                properties:                  allowUnsupported:                    description: Whether to allow unsupported versions (do not set                      to true in production)                    type: boolean                  image:                    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                    type: string                  imagePullPolicy:                    description: ImagePullPolicy describes a policy for if/when to                      pull a container image One of Always, Never, IfNotPresent.                    enum:                    - IfNotPresent                    - Always                    - Never                    - ""                    type: string                type: object              cleanupPolicy:                description: Indicates user intent when deleting a cluster; blocks                  orchestration and should not be set if cluster deletion is not imminent.                nullable: true                properties:                  allowUninstallWithVolumes:                    description: AllowUninstallWithVolumes defines whether we can                      proceed with the uninstall if they are RBD images still present                    type: boolean                  confirmation:                    description: Confirmation represents the cleanup confirmation                    nullable: true                    pattern: ^$|^yes-really-destroy-data$                    type: string                  sanitizeDisks:                    description: SanitizeDisks represents way we sanitize disks                    nullable: true                    properties:                      dataSource:                        description: DataSource is the data source to use to sanitize                          the disk with                        enum:                        - zero                        - random                        type: string                      iteration:                        description: Iteration is the number of pass to apply the                          sanitizing                        format: int32                        type: integer                      method:                        description: Method is the method we use to sanitize disks                        enum:                        - complete                        - quick                        type: string                    type: object                type: object              continueUpgradeAfterChecksEvenIfNotHealthy:                description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if                  an upgrade should continue even if PGs are not clean                type: boolean              crashCollector:                description: A spec for the crash controller                nullable: true                properties:                  daysToRetain:                    description: DaysToRetain represents the number of days to retain                      crash until they get pruned                    type: integer                  disable:                    description: Disable determines whether we should enable the crash                      collector                    type: boolean                type: object              dashboard:                description: Dashboard settings                nullable: true                properties:                  enabled:                    description: Enabled determines whether to enable the dashboard                    type: boolean                  port:                    description: Port is the dashboard webserver port                    maximum: 65535                    minimum: 0                    type: integer                  ssl:                    description: SSL determines whether SSL should be used                    type: boolean                  urlPrefix:                    description: URLPrefix is a prefix for all URLs to use the dashboard                      with a reverse proxy                    type: string                type: object              dataDirHostPath:                description: The path on the host where config and data can be persisted                pattern: ^/(\S+)                type: string              disruptionManagement:                description: A spec for configuring disruption management.                nullable: true                properties:                  machineDisruptionBudgetNamespace:                    description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController                    type: string                  manageMachineDisruptionBudgets:                    description: Deprecated. This enables management of machinedisruptionbudgets.                    type: boolean                  managePodBudgets:                    description: This enables management of poddisruptionbudgets                    type: boolean                  osdMaintenanceTimeout:                    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                    format: int64                    type: integer                  pgHealthCheckTimeout:                    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.                    format: int64                    type: integer                type: object              external:                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.                nullable: true                properties:                  enable:                    description: Enable determines whether external mode is enabled                      or not                    type: boolean                type: object                x-kubernetes-preserve-unknown-fields: true              healthCheck:                description: Internal daemon healthchecks and liveness probe                nullable: true                properties:                  daemonHealth:                    description: DaemonHealth is the health check for a given daemon                    nullable: true                    properties:                      mon:                        description: Monitor represents the health check settings                          for the Ceph monitor                        nullable: true                        properties:                          disabled:                            type: boolean                          interval:                            description: Interval is the internal in second or minute                              for the health check to run like 60s for 60 seconds                            type: string                          timeout:                            type: string                        type: object                      osd:                        description: ObjectStorageDaemon represents the health check                          settings for the Ceph OSDs                        nullable: true                        properties:                          disabled:                            type: boolean                          interval:                            description: Interval is the internal in second or minute                              for the health check to run like 60s for 60 seconds                            type: string                          timeout:                            type: string                        type: object                      status:                        description: Status represents the health check settings for                          the Ceph health                        nullable: true                        properties:                          disabled:                            type: boolean                          interval:                            description: Interval is the internal in second or minute                              for the health check to run like 60s for 60 seconds                            type: string                          timeout:                            type: string                        type: object                    type: object                  livenessProbe:                    additionalProperties:                      description: ProbeSpec is a wrapper around Probe so it can be                        enabled or disabled for a Ceph daemon                      properties:                        disabled:                          description: Disabled determines whether probe is disable                            or not                          type: boolean                        probe:                          description: Probe describes a health check to be performed                            against a container to determine whether it is alive or                            ready to receive traffic.                          properties:                            exec:                              description: Exec specifies the action to take.                              properties:                                command:                                  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.                                  items:                                    type: string                                  type: array                              type: object                            failureThreshold:                              description: Minimum consecutive failures for the probe                                to be considered failed after having succeeded. Defaults                                to 3. Minimum value is 1.                              format: int32                              type: integer                            grpc:                              description: GRPC specifies an action involving a GRPC                                port.                              properties:                                port:                                  description: Port number of the gRPC service. Number                                    must be in the range 1 to 65535.                                  format: int32                                  type: integer                                service:                                  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."                                  type: string                              required:                              - port                              type: object                            httpGet:                              description: HTTPGet specifies the http request to perform.                              properties:                                host:                                  description: Host name to connect to, defaults to                                    the pod IP. You probably want to set "Host" in                                    httpHeaders instead.                                  type: string                                httpHeaders:                                  description: Custom headers to set in the request.                                    HTTP allows repeated headers.                                  items:                                    description: HTTPHeader describes a custom header                                      to be used in HTTP probes                                    properties:                                      name:                                        description: The header field name. This will                                          be canonicalized upon output, so case-variant                                          names will be understood as the same header.                                        type: string                                      value:                                        description: The header field value                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                path:                                  description: Path to access on the HTTP server.                                  type: string                                port:                                  anyOf:                                  - type: integer                                  - type: string                                  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.                                  x-kubernetes-int-or-string: true                                scheme:                                  description: Scheme to use for connecting to the                                    host. Defaults to HTTP.                                  type: string                              required:                              - port                              type: object                            initialDelaySeconds:                              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'                              format: int32                              type: integer                            periodSeconds:                              description: How often (in seconds) to perform the probe.                                Default to 10 seconds. Minimum value is 1.                              format: int32                              type: integer                            successThreshold:                              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.                              format: int32                              type: integer                            tcpSocket:                              description: TCPSocket specifies an action involving                                a TCP port.                              properties:                                host:                                  description: 'Optional: Host name to connect to,                                    defaults to the pod IP.'                                  type: string                                port:                                  anyOf:                                  - type: integer                                  - type: string                                  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.                                  x-kubernetes-int-or-string: true                              required:                              - port                              type: object                            terminationGracePeriodSeconds:                              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.                              format: int64                              type: integer                            timeoutSeconds:                              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'                              format: int32                              type: integer                          type: object                      type: object                    description: LivenessProbe allows changing the livenessProbe configuration                      for a given daemon                    type: object                  startupProbe:                    additionalProperties:                      description: ProbeSpec is a wrapper around Probe so it can be                        enabled or disabled for a Ceph daemon                      properties:                        disabled:                          description: Disabled determines whether probe is disable                            or not                          type: boolean                        probe:                          description: Probe describes a health check to be performed                            against a container to determine whether it is alive or                            ready to receive traffic.                          properties:                            exec:                              description: Exec specifies the action to take.                              properties:                                command:                                  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.                                  items:                                    type: string                                  type: array                              type: object                            failureThreshold:                              description: Minimum consecutive failures for the probe                                to be considered failed after having succeeded. Defaults                                to 3. Minimum value is 1.                              format: int32                              type: integer                            grpc:                              description: GRPC specifies an action involving a GRPC                                port.                              properties:                                port:                                  description: Port number of the gRPC service. Number                                    must be in the range 1 to 65535.                                  format: int32                                  type: integer                                service:                                  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."                                  type: string                              required:                              - port                              type: object                            httpGet:                              description: HTTPGet specifies the http request to perform.                              properties:                                host:                                  description: Host name to connect to, defaults to                                    the pod IP. You probably want to set "Host" in                                    httpHeaders instead.                                  type: string                                httpHeaders:                                  description: Custom headers to set in the request.                                    HTTP allows repeated headers.                                  items:                                    description: HTTPHeader describes a custom header                                      to be used in HTTP probes                                    properties:                                      name:                                        description: The header field name. This will                                          be canonicalized upon output, so case-variant                                          names will be understood as the same header.                                        type: string                                      value:                                        description: The header field value                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                path:                                  description: Path to access on the HTTP server.                                  type: string                                port:                                  anyOf:                                  - type: integer                                  - type: string                                  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.                                  x-kubernetes-int-or-string: true                                scheme:                                  description: Scheme to use for connecting to the                                    host. Defaults to HTTP.                                  type: string                              required:                              - port                              type: object                            initialDelaySeconds:                              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'                              format: int32                              type: integer                            periodSeconds:                              description: How often (in seconds) to perform the probe.                                Default to 10 seconds. Minimum value is 1.                              format: int32                              type: integer                            successThreshold:                              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.                              format: int32                              type: integer                            tcpSocket:                              description: TCPSocket specifies an action involving                                a TCP port.                              properties:                                host:                                  description: 'Optional: Host name to connect to,                                    defaults to the pod IP.'                                  type: string                                port:                                  anyOf:                                  - type: integer                                  - type: string                                  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.                                  x-kubernetes-int-or-string: true                              required:                              - port                              type: object                            terminationGracePeriodSeconds:                              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.                              format: int64                              type: integer                            timeoutSeconds:                              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'                              format: int32                              type: integer                          type: object                      type: object                    description: StartupProbe allows changing the startupProbe configuration                      for a given daemon                    type: object                type: object              labels:                additionalProperties:                  additionalProperties:                    type: string                  description: Labels are label for a given daemons                  type: object                description: The labels-related configuration to add/set on each Pod                  related object.                nullable: true                type: object                x-kubernetes-preserve-unknown-fields: true              logCollector:                description: Logging represents loggings settings                nullable: true                properties:                  enabled:                    description: Enabled represents whether the log collector is enabled                    type: boolean                  maxLogSize:                    anyOf:                    - type: integer                    - type: string                    description: MaxLogSize is the maximum size of the log per ceph                      daemons. Must be at least 1M.                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                    x-kubernetes-int-or-string: true                  periodicity:                    description: Periodicity is the periodicity of the log rotation.                    pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$                    type: string                type: object              mgr:                description: A spec for mgr related options                nullable: true                properties:                  allowMultiplePerNode:                    description: AllowMultiplePerNode allows to run multiple managers                      on the same node (not recommended)                    type: boolean                  count:                    description: Count is the number of manager to run                    maximum: 2                    minimum: 0                    type: integer                  modules:                    description: Modules is the list of ceph manager modules to enable/disable                    items:                      description: Module represents mgr modules that the user wants                        to enable or disable                      properties:                        enabled:                          description: Enabled determines whether a module should                            be enabled or not                          type: boolean                        name:                          description: Name is the name of the ceph manager module                          type: string                      type: object                    nullable: true                    type: array                type: object              mon:                description: A spec for mon related options                nullable: true                properties:                  allowMultiplePerNode:                    description: AllowMultiplePerNode determines if we can run multiple                      monitors on the same node (not recommended)                    type: boolean                  count:                    description: Count is the number of Ceph monitors                    maximum: 9                    minimum: 0                    type: integer                  failureDomainLabel:                    type: string                  stretchCluster:                    description: StretchCluster is the stretch cluster specification                    properties:                      failureDomainLabel:                        description: 'FailureDomainLabel the failure domain name (e,g:                          zone)'                        type: string                      subFailureDomain:                        description: SubFailureDomain is the failure domain within                          a zone                        type: string                      zones:                        description: Zones is the list of zones                        items:                          description: MonZoneSpec represents the specification of                            a zone in a Ceph Cluster                          properties:                            arbiter:                              description: Arbiter determines if the zone contains                                the arbiter used for stretch cluster mode                              type: boolean                            name:                              description: Name is the name of the zone                              type: string                            volumeClaimTemplate:                              description: VolumeClaimTemplate is the PVC template                              properties:                                apiVersion:                                  description: 'APIVersion defines the versioned schema                                    of this representation of an object. Servers should                                    convert recognized schemas to the latest internal                                    value, and may reject unrecognized values. More                                    info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                                  type: string                                kind:                                  description: 'Kind is a string value representing                                    the REST resource this object represents. Servers                                    may infer this from the endpoint the client submits                                    requests to. Cannot be updated. In CamelCase.                                    More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                                  type: string                                metadata:                                  description: 'Standard object''s metadata. More                                    info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                                  properties:                                    annotations:                                      additionalProperties:                                        type: string                                      type: object                                    finalizers:                                      items:                                        type: string                                      type: array                                    labels:                                      additionalProperties:                                        type: string                                      type: object                                    name:                                      type: string                                    namespace:                                      type: string                                  type: object                                spec:                                  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'                                  properties:                                    accessModes:                                      description: 'accessModes contains the desired                                        access modes the volume should have. More                                        info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                                      items:                                        type: string                                      type: array                                    dataSource:                                      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.'                                      properties:                                        apiGroup:                                          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.                                          type: string                                        kind:                                          description: Kind is the type of resource                                            being referenced                                          type: string                                        name:                                          description: Name is the name of resource                                            being referenced                                          type: string                                      required:                                      - kind                                      - name                                      type: object                                      x-kubernetes-map-type: atomic                                    dataSourceRef:                                      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.'                                      properties:                                        apiGroup:                                          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.                                          type: string                                        kind:                                          description: Kind is the type of resource                                            being referenced                                          type: string                                        name:                                          description: Name is the name of resource                                            being referenced                                          type: string                                        namespace:                                          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.                                          type: string                                      required:                                      - kind                                      - name                                      type: object                                    resources:                                      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'                                      properties:                                        claims:                                          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."                                          items:                                            description: ResourceClaim references                                              one entry in PodSpec.ResourceClaims.                                            properties:                                              name:                                                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.                                                type: string                                            required:                                            - name                                            type: object                                          type: array                                          x-kubernetes-list-map-keys:                                          - name                                          x-kubernetes-list-type: map                                        limits:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Limits describes the maximum                                            amount of compute resources allowed. More                                            info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                        requests:                                          additionalProperties:                                            anyOf:                                            - type: integer                                            - type: string                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                            x-kubernetes-int-or-string: true                                          description: 'Requests describes the minimum                                            amount of compute resources required.                                            If Requests is omitted for a container,                                            it defaults to Limits if that is explicitly                                            specified, otherwise to an implementation-defined                                            value. Requests cannot exceed Limits.                                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                          type: object                                      type: object                                    selector:                                      description: selector is a label query over                                        volumes to consider for binding.                                      properties:                                        matchExpressions:                                          description: matchExpressions is a list                                            of label selector requirements. The requirements                                            are ANDed.                                          items:                                            description: A label selector requirement                                              is a selector that contains values,                                              a key, and an operator that relates                                              the key and values.                                            properties:                                              key:                                                description: key is the label key                                                  that the selector applies to.                                                type: string                                              operator:                                                description: operator represents a                                                  key's relationship to a set of values.                                                  Valid operators are In, NotIn, Exists                                                  and DoesNotExist.                                                type: string                                              values:                                                description: values is an array of                                                  string values. If the operator is                                                  In or NotIn, the values array must                                                  be non-empty. If the operator is                                                  Exists or DoesNotExist, the values                                                  array must be empty. This array                                                  is replaced during a strategic merge                                                  patch.                                                items:                                                  type: string                                                type: array                                            required:                                            - key                                            - operator                                            type: object                                          type: array                                        matchLabels:                                          additionalProperties:                                            type: string                                          description: matchLabels is a map of {key,value}                                            pairs. A single {key,value} in the matchLabels                                            map is equivalent to an element of matchExpressions,                                            whose key field is "key", the operator                                            is "In", and the values array contains                                            only "value". The requirements are ANDed.                                          type: object                                      type: object                                      x-kubernetes-map-type: atomic                                    storageClassName:                                      description: 'storageClassName is the name of                                        the StorageClass required by the claim. More                                        info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                                      type: string                                    volumeMode:                                      description: volumeMode defines what type of                                        volume is required by the claim. Value of                                        Filesystem is implied when not included in                                        claim spec.                                      type: string                                    volumeName:                                      description: volumeName is the binding reference                                        to the PersistentVolume backing this claim.                                      type: string                                  type: object                                status:                                  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'                                  properties:                                    accessModes:                                      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'                                      items:                                        type: string                                      type: array                                    allocatedResourceStatuses:                                      additionalProperties:                                        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.                                        type: string                                      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."                                      type: object                                      x-kubernetes-map-type: granular                                    allocatedResources:                                      additionalProperties:                                        anyOf:                                        - type: integer                                        - type: string                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                        x-kubernetes-int-or-string: true                                      description: "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."                                      type: object                                    capacity:                                      additionalProperties:                                        anyOf:                                        - type: integer                                        - type: string                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                        x-kubernetes-int-or-string: true                                      description: capacity represents the actual                                        resources of the underlying volume.                                      type: object                                    conditions:                                      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'.                                      items:                                        description: PersistentVolumeClaimCondition                                          contains details about state of pvc                                        properties:                                          lastProbeTime:                                            description: lastProbeTime is the time                                              we probed the condition.                                            format: date-time                                            type: string                                          lastTransitionTime:                                            description: lastTransitionTime is the                                              time the condition transitioned from                                              one status to another.                                            format: date-time                                            type: string                                          message:                                            description: message is the human-readable                                              message indicating details about last                                              transition.                                            type: string                                          reason:                                            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.                                            type: string                                          status:                                            type: string                                          type:                                            description: PersistentVolumeClaimConditionType                                              is a valid value of PersistentVolumeClaimCondition.Type                                            type: string                                        required:                                        - status                                        - type                                        type: object                                      type: array                                    phase:                                      description: phase represents the current phase                                        of PersistentVolumeClaim.                                      type: string                                  type: object                              type: object                              x-kubernetes-preserve-unknown-fields: true                          type: object                        nullable: true                        type: array                    type: object                  volumeClaimTemplate:                    description: VolumeClaimTemplate is the PVC definition                    properties:                      apiVersion:                        description: 'APIVersion defines the versioned schema of this                          representation of an object. Servers should convert recognized                          schemas to the latest internal value, and may reject unrecognized                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                        type: string                      kind:                        description: 'Kind is a string value representing the REST                          resource this object represents. Servers may infer this                          from the endpoint the client submits requests to. Cannot                          be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                        type: string                      metadata:                        description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                        properties:                          annotations:                            additionalProperties:                              type: string                            type: object                          finalizers:                            items:                              type: string                            type: array                          labels:                            additionalProperties:                              type: string                            type: object                          name:                            type: string                          namespace:                            type: string                        type: object                      spec:                        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'                        properties:                          accessModes:                            description: 'accessModes contains the desired access                              modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                            items:                              type: string                            type: array                          dataSource:                            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.'                            properties:                              apiGroup:                                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.                                type: string                              kind:                                description: Kind is the type of resource being referenced                                type: string                              name:                                description: Name is the name of resource being referenced                                type: string                            required:                            - kind                            - name                            type: object                            x-kubernetes-map-type: atomic                          dataSourceRef:                            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.'                            properties:                              apiGroup:                                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.                                type: string                              kind:                                description: Kind is the type of resource being referenced                                type: string                              name:                                description: Name is the name of resource being referenced                                type: string                              namespace:                                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.                                type: string                            required:                            - kind                            - name                            type: object                          resources:                            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'                            properties:                              claims:                                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."                                items:                                  description: ResourceClaim references one entry                                    in PodSpec.ResourceClaims.                                  properties:                                    name:                                      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.                                      type: string                                  required:                                  - name                                  type: object                                type: array                                x-kubernetes-list-map-keys:                                - name                                x-kubernetes-list-type: map                              limits:                                additionalProperties:                                  anyOf:                                  - type: integer                                  - type: string                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                  x-kubernetes-int-or-string: true                                description: 'Limits describes the maximum amount                                  of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                type: object                              requests:                                additionalProperties:                                  anyOf:                                  - type: integer                                  - type: string                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                  x-kubernetes-int-or-string: true                                description: 'Requests describes the minimum amount                                  of compute resources required. If Requests is omitted                                  for a container, it defaults to Limits if that is                                  explicitly specified, otherwise to an implementation-defined                                  value. Requests cannot exceed Limits. More info:                                  https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                type: object                            type: object                          selector:                            description: selector is a label query over volumes to                              consider for binding.                            properties:                              matchExpressions:                                description: matchExpressions is a list of label selector                                  requirements. The requirements are ANDed.                                items:                                  description: A label selector requirement is a selector                                    that contains values, a key, and an operator that                                    relates the key and values.                                  properties:                                    key:                                      description: key is the label key that the selector                                        applies to.                                      type: string                                    operator:                                      description: operator represents a key's relationship                                        to a set of values. Valid operators are In,                                        NotIn, Exists and DoesNotExist.                                      type: string                                    values:                                      description: values is an array of string values.                                        If the operator is In or NotIn, the values                                        array must be non-empty. If the operator is                                        Exists or DoesNotExist, the values array must                                        be empty. This array is replaced during a                                        strategic merge patch.                                      items:                                        type: string                                      type: array                                  required:                                  - key                                  - operator                                  type: object                                type: array                              matchLabels:                                additionalProperties:                                  type: string                                description: matchLabels is a map of {key,value} pairs.                                  A single {key,value} in the matchLabels map is equivalent                                  to an element of matchExpressions, whose key field                                  is "key", the operator is "In", and the values array                                  contains only "value". The requirements are ANDed.                                type: object                            type: object                            x-kubernetes-map-type: atomic                          storageClassName:                            description: 'storageClassName is the name of the StorageClass                              required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                            type: string                          volumeMode:                            description: volumeMode defines what type of volume is                              required by the claim. Value of Filesystem is implied                              when not included in claim spec.                            type: string                          volumeName:                            description: volumeName is the binding reference to the                              PersistentVolume backing this claim.                            type: string                        type: object                      status:                        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'                        properties:                          accessModes:                            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'                            items:                              type: string                            type: array                          allocatedResourceStatuses:                            additionalProperties:                              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.                              type: string                            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."                            type: object                            x-kubernetes-map-type: granular                          allocatedResources:                            additionalProperties:                              anyOf:                              - type: integer                              - type: string                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                              x-kubernetes-int-or-string: true                            description: "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."                            type: object                          capacity:                            additionalProperties:                              anyOf:                              - type: integer                              - type: string                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                              x-kubernetes-int-or-string: true                            description: capacity represents the actual resources                              of the underlying volume.                            type: object                          conditions:                            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'.                            items:                              description: PersistentVolumeClaimCondition contains                                details about state of pvc                              properties:                                lastProbeTime:                                  description: lastProbeTime is the time we probed                                    the condition.                                  format: date-time                                  type: string                                lastTransitionTime:                                  description: lastTransitionTime is the time the                                    condition transitioned from one status to another.                                  format: date-time                                  type: string                                message:                                  description: message is the human-readable message                                    indicating details about last transition.                                  type: string                                reason:                                  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.                                  type: string                                status:                                  type: string                                type:                                  description: PersistentVolumeClaimConditionType                                    is a valid value of PersistentVolumeClaimCondition.Type                                  type: string                              required:                              - status                              - type                              type: object                            type: array                          phase:                            description: phase represents the current phase of PersistentVolumeClaim.                            type: string                        type: object                    type: object                    x-kubernetes-preserve-unknown-fields: true                  zones:                    description: Zones are specified when we want to provide zonal                      awareness to mons                    items:                      description: MonZoneSpec represents the specification of a zone                        in a Ceph Cluster                      properties:                        arbiter:                          description: Arbiter determines if the zone contains the                            arbiter used for stretch cluster mode                          type: boolean                        name:                          description: Name is the name of the zone                          type: string                        volumeClaimTemplate:                          description: VolumeClaimTemplate is the PVC template                          properties:                            apiVersion:                              description: 'APIVersion defines the versioned schema                                of this representation of an object. Servers should                                convert recognized schemas to the latest internal                                value, and may reject unrecognized values. More info:                                https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                              type: string                            kind:                              description: 'Kind is a string value representing the                                REST resource this object represents. Servers may                                infer this from the endpoint the client submits requests                                to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                              type: string                            metadata:                              description: 'Standard object''s metadata. More info:                                https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              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'                              properties:                                accessModes:                                  description: 'accessModes contains the desired access                                    modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                                  items:                                    type: string                                  type: array                                dataSource:                                  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.'                                  properties:                                    apiGroup:                                      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.                                      type: string                                    kind:                                      description: Kind is the type of resource being                                        referenced                                      type: string                                    name:                                      description: Name is the name of resource being                                        referenced                                      type: string                                  required:                                  - kind                                  - name                                  type: object                                  x-kubernetes-map-type: atomic                                dataSourceRef:                                  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.'                                  properties:                                    apiGroup:                                      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.                                      type: string                                    kind:                                      description: Kind is the type of resource being                                        referenced                                      type: string                                    name:                                      description: Name is the name of resource being                                        referenced                                      type: string                                    namespace:                                      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.                                      type: string                                  required:                                  - kind                                  - name                                  type: object                                resources:                                  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'                                  properties:                                    claims:                                      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."                                      items:                                        description: ResourceClaim references one                                          entry in PodSpec.ResourceClaims.                                        properties:                                          name:                                            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.                                            type: string                                        required:                                        - name                                        type: object                                      type: array                                      x-kubernetes-list-map-keys:                                      - name                                      x-kubernetes-list-type: map                                    limits:                                      additionalProperties:                                        anyOf:                                        - type: integer                                        - type: string                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                        x-kubernetes-int-or-string: true                                      description: 'Limits describes the maximum amount                                        of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                      type: object                                    requests:                                      additionalProperties:                                        anyOf:                                        - type: integer                                        - type: string                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                        x-kubernetes-int-or-string: true                                      description: 'Requests describes the minimum                                        amount of compute resources required. If Requests                                        is omitted for a container, it defaults to                                        Limits if that is explicitly specified, otherwise                                        to an implementation-defined value. Requests                                        cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                      type: object                                  type: object                                selector:                                  description: selector is a label query over volumes                                    to consider for binding.                                  properties:                                    matchExpressions:                                      description: matchExpressions is a list of label                                        selector requirements. The requirements are                                        ANDed.                                      items:                                        description: A label selector requirement                                          is a selector that contains values, a key,                                          and an operator that relates the key and                                          values.                                        properties:                                          key:                                            description: key is the label key that                                              the selector applies to.                                            type: string                                          operator:                                            description: operator represents a key's                                              relationship to a set of values. Valid                                              operators are In, NotIn, Exists and                                              DoesNotExist.                                            type: string                                          values:                                            description: values is an array of string                                              values. If the operator is In or NotIn,                                              the values array must be non-empty.                                              If the operator is Exists or DoesNotExist,                                              the values array must be empty. This                                              array is replaced during a strategic                                              merge patch.                                            items:                                              type: string                                            type: array                                        required:                                        - key                                        - operator                                        type: object                                      type: array                                    matchLabels:                                      additionalProperties:                                        type: string                                      description: matchLabels is a map of {key,value}                                        pairs. A single {key,value} in the matchLabels                                        map is equivalent to an element of matchExpressions,                                        whose key field is "key", the operator is                                        "In", and the values array contains only "value".                                        The requirements are ANDed.                                      type: object                                  type: object                                  x-kubernetes-map-type: atomic                                storageClassName:                                  description: 'storageClassName is the name of the                                    StorageClass required by the claim. More info:                                    https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                                  type: string                                volumeMode:                                  description: volumeMode defines what type of volume                                    is required by the claim. Value of Filesystem                                    is implied when not included in claim spec.                                  type: string                                volumeName:                                  description: volumeName is the binding reference                                    to the PersistentVolume backing this claim.                                  type: string                              type: object                            status:                              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'                              properties:                                accessModes:                                  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'                                  items:                                    type: string                                  type: array                                allocatedResourceStatuses:                                  additionalProperties:                                    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.                                    type: string                                  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."                                  type: object                                  x-kubernetes-map-type: granular                                allocatedResources:                                  additionalProperties:                                    anyOf:                                    - type: integer                                    - type: string                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                    x-kubernetes-int-or-string: true                                  description: "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."                                  type: object                                capacity:                                  additionalProperties:                                    anyOf:                                    - type: integer                                    - type: string                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                    x-kubernetes-int-or-string: true                                  description: capacity represents the actual resources                                    of the underlying volume.                                  type: object                                conditions:                                  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'.                                  items:                                    description: PersistentVolumeClaimCondition contains                                      details about state of pvc                                    properties:                                      lastProbeTime:                                        description: lastProbeTime is the time we                                          probed the condition.                                        format: date-time                                        type: string                                      lastTransitionTime:                                        description: lastTransitionTime is the time                                          the condition transitioned from one status                                          to another.                                        format: date-time                                        type: string                                      message:                                        description: message is the human-readable                                          message indicating details about last transition.                                        type: string                                      reason:                                        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.                                        type: string                                      status:                                        type: string                                      type:                                        description: PersistentVolumeClaimConditionType                                          is a valid value of PersistentVolumeClaimCondition.Type                                        type: string                                    required:                                    - status                                    - type                                    type: object                                  type: array                                phase:                                  description: phase represents the current phase                                    of PersistentVolumeClaim.                                  type: string                              type: object                          type: object                          x-kubernetes-preserve-unknown-fields: true                      type: object                    type: array                type: object              monitoring:                description: Prometheus based Monitoring settings                nullable: true                properties:                  enabled:                    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.                    type: boolean                  externalMgrEndpoints:                    description: ExternalMgrEndpoints points to an existing Ceph prometheus                      exporter endpoint                    items:                      description: EndpointAddress is a tuple that describes single                        IP address.                      properties:                        hostname:                          description: The Hostname of this endpoint                          type: string                        ip:                          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).                          type: string                        nodeName:                          description: 'Optional: Node hosting this endpoint. This                            can be used to determine endpoints local to a node.'                          type: string                        targetRef:                          description: Reference to object providing the endpoint.                          properties:                            apiVersion:                              description: API version of the referent.                              type: string                            fieldPath:                              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.'                              type: string                            kind:                              description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                              type: string                            name:                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'                              type: string                            namespace:                              description: 'Namespace of the referent. More info:                                https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'                              type: string                            resourceVersion:                              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'                              type: string                            uid:                              description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'                              type: string                          type: object                          x-kubernetes-map-type: atomic                      required:                      - ip                      type: object                      x-kubernetes-map-type: atomic                    nullable: true                    type: array                  externalMgrPrometheusPort:                    description: ExternalMgrPrometheusPort Prometheus exporter port                    maximum: 65535                    minimum: 0                    type: integer                  interval:                    description: Interval determines prometheus scrape interval                    type: string                  metricsDisabled:                    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.                    type: boolean                  port:                    description: Port is the prometheus server port                    maximum: 65535                    minimum: 0                    type: integer                type: object              network:                description: Network related configuration                nullable: true                properties:                  connections:                    description: Settings for network connections such as compression                      and encryption across the wire.                    nullable: true                    properties:                      compression:                        description: Compression settings for the network connections.                        nullable: true                        properties:                          enabled:                            description: Whether to compress the data in transit across                              the wire. The default is not set. Requires Ceph Quincy                              (v17) or newer.                            type: boolean                        type: object                      encryption:                        description: Encryption settings for the network connections.                        nullable: true                        properties:                          enabled:                            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.                            type: boolean                        type: object                      requireMsgr2:                        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).                        type: boolean                    type: object                  dualStack:                    description: DualStack determines whether Ceph daemons should                      listen on both IPv4 and IPv6                    type: boolean                  hostNetwork:                    description: HostNetwork to enable host network                    type: boolean                  ipFamily:                    description: IPFamily is the single stack IPv6 or IPv4 protocol                    enum:                    - IPv4                    - IPv6                    nullable: true                    type: string                  multiClusterService:                    description: Enable multiClusterService to export the Services                      between peer clusters                    properties:                      clusterID:                        description: 'ClusterID uniquely identifies a cluster. It                          is used as a prefix to nslookup exported services. For example:                          <clusterid>.<svc>.<ns>.svc.clusterset.local'                        type: string                      enabled:                        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.                        type: boolean                    type: object                  provider:                    description: Provider is what provides network connectivity to                      the cluster e.g. "host" or "multus"                    nullable: true                    type: string                  selectors:                    additionalProperties:                      type: string                    description: Selectors string values describe what networks will                      be used to connect the cluster. Meanwhile the keys describe                      each network respective responsibilities or any metadata storage                      provider decide.                    nullable: true                    type: object                type: object                x-kubernetes-preserve-unknown-fields: true              placement:                additionalProperties:                  description: Placement is the placement for an object                  properties:                    nodeAffinity:                      description: NodeAffinity is a group of node affinity scheduling                        rules                      properties:                        preferredDuringSchedulingIgnoredDuringExecution:                          description: The scheduler will prefer to schedule pods                            to nodes that satisfy the affinity expressions specified                            by this field, but it may choose a node that violates                            one or more of the expressions. The node that is most                            preferred is the one with the greatest sum of weights,                            i.e. for each node that meets all of the scheduling requirements                            (resource request, requiredDuringScheduling affinity expressions,                            etc.), compute a sum by iterating through the elements                            of this field and adding "weight" to the sum if the node                            matches the corresponding matchExpressions; the node(s)                            with the highest sum are the most preferred.                          items:                            description: An empty preferred scheduling term matches                              all objects with implicit weight 0 (i.e. it's a no-op).                              A null preferred scheduling term matches no objects                              (i.e. is also a no-op).                            properties:                              preference:                                description: A node selector term, associated with                                  the corresponding weight.                                properties:                                  matchExpressions:                                    description: A list of node selector requirements                                      by node's labels.                                    items:                                      description: A node selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: The label key that the selector                                            applies to.                                          type: string                                        operator:                                          description: Represents a key's relationship                                            to a set of values. Valid operators are                                            In, NotIn, Exists, DoesNotExist. Gt, and                                            Lt.                                          type: string                                        values:                                          description: An array of string values.                                            If the operator is In or NotIn, the values                                            array must be non-empty. If the operator                                            is Exists or DoesNotExist, the values                                            array must be empty. If the operator is                                            Gt or Lt, the values array must have a                                            single element, which will be interpreted                                            as an integer. This array is replaced                                            during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchFields:                                    description: A list of node selector requirements                                      by node's fields.                                    items:                                      description: A node selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: The label key that the selector                                            applies to.                                          type: string                                        operator:                                          description: Represents a key's relationship                                            to a set of values. Valid operators are                                            In, NotIn, Exists, DoesNotExist. Gt, and                                            Lt.                                          type: string                                        values:                                          description: An array of string values.                                            If the operator is In or NotIn, the values                                            array must be non-empty. If the operator                                            is Exists or DoesNotExist, the values                                            array must be empty. If the operator is                                            Gt or Lt, the values array must have a                                            single element, which will be interpreted                                            as an integer. This array is replaced                                            during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                type: object                                x-kubernetes-map-type: atomic                              weight:                                description: Weight associated with matching the corresponding                                  nodeSelectorTerm, in the range 1-100.                                format: int32                                type: integer                            required:                            - preference                            - weight                            type: object                          type: array                        requiredDuringSchedulingIgnoredDuringExecution:                          description: If the affinity requirements specified by this                            field are not met at scheduling time, the pod will not                            be scheduled onto the node. If the affinity requirements                            specified by this field cease to be met at some point                            during pod execution (e.g. due to an update), the system                            may or may not try to eventually evict the pod from its                            node.                          properties:                            nodeSelectorTerms:                              description: Required. A list of node selector terms.                                The terms are ORed.                              items:                                description: A null or empty node selector term matches                                  no objects. The requirements of them are ANDed.                                  The TopologySelectorTerm type implements a subset                                  of the NodeSelectorTerm.                                properties:                                  matchExpressions:                                    description: A list of node selector requirements                                      by node's labels.                                    items:                                      description: A node selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: The label key that the selector                                            applies to.                                          type: string                                        operator:                                          description: Represents a key's relationship                                            to a set of values. Valid operators are                                            In, NotIn, Exists, DoesNotExist. Gt, and                                            Lt.                                          type: string                                        values:                                          description: An array of string values.                                            If the operator is In or NotIn, the values                                            array must be non-empty. If the operator                                            is Exists or DoesNotExist, the values                                            array must be empty. If the operator is                                            Gt or Lt, the values array must have a                                            single element, which will be interpreted                                            as an integer. This array is replaced                                            during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchFields:                                    description: A list of node selector requirements                                      by node's fields.                                    items:                                      description: A node selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: The label key that the selector                                            applies to.                                          type: string                                        operator:                                          description: Represents a key's relationship                                            to a set of values. Valid operators are                                            In, NotIn, Exists, DoesNotExist. Gt, and                                            Lt.                                          type: string                                        values:                                          description: An array of string values.                                            If the operator is In or NotIn, the values                                            array must be non-empty. If the operator                                            is Exists or DoesNotExist, the values                                            array must be empty. If the operator is                                            Gt or Lt, the values array must have a                                            single element, which will be interpreted                                            as an integer. This array is replaced                                            during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                type: object                                x-kubernetes-map-type: atomic                              type: array                          required:                          - nodeSelectorTerms                          type: object                          x-kubernetes-map-type: atomic                      type: object                    podAffinity:                      description: PodAffinity is a group of inter pod affinity scheduling                        rules                      properties:                        preferredDuringSchedulingIgnoredDuringExecution:                          description: The scheduler will prefer to schedule pods                            to nodes that satisfy the affinity expressions specified                            by this field, but it may choose a node that violates                            one or more of the expressions. The node that is most                            preferred is the one with the greatest sum of weights,                            i.e. for each node that meets all of the scheduling requirements                            (resource request, requiredDuringScheduling affinity expressions,                            etc.), compute a sum by iterating through the elements                            of this field and adding "weight" to the sum if the node                            has pods which matches the corresponding podAffinityTerm;                            the node(s) with the highest sum are the most preferred.                          items:                            description: The weights of all of the matched WeightedPodAffinityTerm                              fields are added per-node to find the most preferred                              node(s)                            properties:                              podAffinityTerm:                                description: Required. A pod affinity term, associated                                  with the corresponding weight.                                properties:                                  labelSelector:                                    description: A label query over a set of resources,                                      in this case pods.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  namespaceSelector:                                    description: A label query over the set of namespaces                                      that the term applies to. The term is applied                                      to the union of the namespaces selected by this                                      field and the ones listed in the namespaces                                      field. null selector and null or empty namespaces                                      list means "this pod's namespace". An empty                                      selector ({}) matches all namespaces.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  namespaces:                                    description: namespaces specifies a static list                                      of namespace names that the term applies to.                                      The term is applied to the union of the namespaces                                      listed in this field and the ones selected by                                      namespaceSelector. null or empty namespaces                                      list and null namespaceSelector means "this                                      pod's namespace".                                    items:                                      type: string                                    type: array                                  topologyKey:                                    description: This pod should be co-located (affinity)                                      or not co-located (anti-affinity) with the pods                                      matching the labelSelector in the specified                                      namespaces, where co-located is defined as running                                      on a node whose value of the label with key                                      topologyKey matches that of any node on which                                      any of the selected pods is running. Empty topologyKey                                      is not allowed.                                    type: string                                required:                                - topologyKey                                type: object                              weight:                                description: weight associated with matching the corresponding                                  podAffinityTerm, in the range 1-100.                                format: int32                                type: integer                            required:                            - podAffinityTerm                            - weight                            type: object                          type: array                        requiredDuringSchedulingIgnoredDuringExecution:                          description: If the affinity requirements specified by this                            field are not met at scheduling time, the pod will not                            be scheduled onto the node. If the affinity requirements                            specified by this field cease to be met at some point                            during pod execution (e.g. due to a pod label update),                            the system may or may not try to eventually evict the                            pod from its node. When there are multiple elements, the                            lists of nodes corresponding to each podAffinityTerm are                            intersected, i.e. all terms must be satisfied.                          items:                            description: Defines a set of pods (namely those matching                              the labelSelector relative to the given namespace(s))                              that this pod should be co-located (affinity) or not                              co-located (anti-affinity) with, where co-located is                              defined as running on a node whose value of the label                              with key <topologyKey> matches that of any node on which                              a pod of the set of pods is running                            properties:                              labelSelector:                                description: A label query over a set of resources,                                  in this case pods.                                properties:                                  matchExpressions:                                    description: matchExpressions is a list of label                                      selector requirements. The requirements are                                      ANDed.                                    items:                                      description: A label selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: key is the label key that the                                            selector applies to.                                          type: string                                        operator:                                          description: operator represents a key's                                            relationship to a set of values. Valid                                            operators are In, NotIn, Exists and DoesNotExist.                                          type: string                                        values:                                          description: values is an array of string                                            values. If the operator is In or NotIn,                                            the values array must be non-empty. If                                            the operator is Exists or DoesNotExist,                                            the values array must be empty. This array                                            is replaced during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    description: matchLabels is a map of {key,value}                                      pairs. A single {key,value} in the matchLabels                                      map is equivalent to an element of matchExpressions,                                      whose key field is "key", the operator is "In",                                      and the values array contains only "value".                                      The requirements are ANDed.                                    type: object                                type: object                                x-kubernetes-map-type: atomic                              namespaceSelector:                                description: A label query over the set of namespaces                                  that the term applies to. The term is applied to                                  the union of the namespaces selected by this field                                  and the ones listed in the namespaces field. null                                  selector and null or empty namespaces list means                                  "this pod's namespace". An empty selector ({}) matches                                  all namespaces.                                properties:                                  matchExpressions:                                    description: matchExpressions is a list of label                                      selector requirements. The requirements are                                      ANDed.                                    items:                                      description: A label selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: key is the label key that the                                            selector applies to.                                          type: string                                        operator:                                          description: operator represents a key's                                            relationship to a set of values. Valid                                            operators are In, NotIn, Exists and DoesNotExist.                                          type: string                                        values:                                          description: values is an array of string                                            values. If the operator is In or NotIn,                                            the values array must be non-empty. If                                            the operator is Exists or DoesNotExist,                                            the values array must be empty. This array                                            is replaced during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    description: matchLabels is a map of {key,value}                                      pairs. A single {key,value} in the matchLabels                                      map is equivalent to an element of matchExpressions,                                      whose key field is "key", the operator is "In",                                      and the values array contains only "value".                                      The requirements are ANDed.                                    type: object                                type: object                                x-kubernetes-map-type: atomic                              namespaces:                                description: namespaces specifies a static list of                                  namespace names that the term applies to. The term                                  is applied to the union of the namespaces listed                                  in this field and the ones selected by namespaceSelector.                                  null or empty namespaces list and null namespaceSelector                                  means "this pod's namespace".                                items:                                  type: string                                type: array                              topologyKey:                                description: This pod should be co-located (affinity)                                  or not co-located (anti-affinity) with the pods                                  matching the labelSelector in the specified namespaces,                                  where co-located is defined as running on a node                                  whose value of the label with key topologyKey matches                                  that of any node on which any of the selected pods                                  is running. Empty topologyKey is not allowed.                                type: string                            required:                            - topologyKey                            type: object                          type: array                      type: object                    podAntiAffinity:                      description: PodAntiAffinity is a group of inter pod anti affinity                        scheduling rules                      properties:                        preferredDuringSchedulingIgnoredDuringExecution:                          description: The scheduler will prefer to schedule pods                            to nodes that satisfy the anti-affinity expressions specified                            by this field, but it may choose a node that violates                            one or more of the expressions. The node that is most                            preferred is the one with the greatest sum of weights,                            i.e. for each node that meets all of the scheduling requirements                            (resource request, requiredDuringScheduling anti-affinity                            expressions, etc.), compute a sum by iterating through                            the elements of this field and adding "weight" to the                            sum if the node has pods which matches the corresponding                            podAffinityTerm; the node(s) with the highest sum are                            the most preferred.                          items:                            description: The weights of all of the matched WeightedPodAffinityTerm                              fields are added per-node to find the most preferred                              node(s)                            properties:                              podAffinityTerm:                                description: Required. A pod affinity term, associated                                  with the corresponding weight.                                properties:                                  labelSelector:                                    description: A label query over a set of resources,                                      in this case pods.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  namespaceSelector:                                    description: A label query over the set of namespaces                                      that the term applies to. The term is applied                                      to the union of the namespaces selected by this                                      field and the ones listed in the namespaces                                      field. null selector and null or empty namespaces                                      list means "this pod's namespace". An empty                                      selector ({}) matches all namespaces.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  namespaces:                                    description: namespaces specifies a static list                                      of namespace names that the term applies to.                                      The term is applied to the union of the namespaces                                      listed in this field and the ones selected by                                      namespaceSelector. null or empty namespaces                                      list and null namespaceSelector means "this                                      pod's namespace".                                    items:                                      type: string                                    type: array                                  topologyKey:                                    description: This pod should be co-located (affinity)                                      or not co-located (anti-affinity) with the pods                                      matching the labelSelector in the specified                                      namespaces, where co-located is defined as running                                      on a node whose value of the label with key                                      topologyKey matches that of any node on which                                      any of the selected pods is running. Empty topologyKey                                      is not allowed.                                    type: string                                required:                                - topologyKey                                type: object                              weight:                                description: weight associated with matching the corresponding                                  podAffinityTerm, in the range 1-100.                                format: int32                                type: integer                            required:                            - podAffinityTerm                            - weight                            type: object                          type: array                        requiredDuringSchedulingIgnoredDuringExecution:                          description: If the anti-affinity requirements specified                            by this field are not met at scheduling time, the pod                            will not be scheduled onto the node. If the anti-affinity                            requirements specified by this field cease to be met at                            some point during pod execution (e.g. due to a pod label                            update), the system may or may not try to eventually evict                            the pod from its node. When there are multiple elements,                            the lists of nodes corresponding to each podAffinityTerm                            are intersected, i.e. all terms must be satisfied.                          items:                            description: Defines a set of pods (namely those matching                              the labelSelector relative to the given namespace(s))                              that this pod should be co-located (affinity) or not                              co-located (anti-affinity) with, where co-located is                              defined as running on a node whose value of the label                              with key <topologyKey> matches that of any node on which                              a pod of the set of pods is running                            properties:                              labelSelector:                                description: A label query over a set of resources,                                  in this case pods.                                properties:                                  matchExpressions:                                    description: matchExpressions is a list of label                                      selector requirements. The requirements are                                      ANDed.                                    items:                                      description: A label selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: key is the label key that the                                            selector applies to.                                          type: string                                        operator:                                          description: operator represents a key's                                            relationship to a set of values. Valid                                            operators are In, NotIn, Exists and DoesNotExist.                                          type: string                                        values:                                          description: values is an array of string                                            values. If the operator is In or NotIn,                                            the values array must be non-empty. If                                            the operator is Exists or DoesNotExist,                                            the values array must be empty. This array                                            is replaced during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    description: matchLabels is a map of {key,value}                                      pairs. A single {key,value} in the matchLabels                                      map is equivalent to an element of matchExpressions,                                      whose key field is "key", the operator is "In",                                      and the values array contains only "value".                                      The requirements are ANDed.                                    type: object                                type: object                                x-kubernetes-map-type: atomic                              namespaceSelector:                                description: A label query over the set of namespaces                                  that the term applies to. The term is applied to                                  the union of the namespaces selected by this field                                  and the ones listed in the namespaces field. null                                  selector and null or empty namespaces list means                                  "this pod's namespace". An empty selector ({}) matches                                  all namespaces.                                properties:                                  matchExpressions:                                    description: matchExpressions is a list of label                                      selector requirements. The requirements are                                      ANDed.                                    items:                                      description: A label selector requirement is                                        a selector that contains values, a key, and                                        an operator that relates the key and values.                                      properties:                                        key:                                          description: key is the label key that the                                            selector applies to.                                          type: string                                        operator:                                          description: operator represents a key's                                            relationship to a set of values. Valid                                            operators are In, NotIn, Exists and DoesNotExist.                                          type: string                                        values:                                          description: values is an array of string                                            values. If the operator is In or NotIn,                                            the values array must be non-empty. If                                            the operator is Exists or DoesNotExist,                                            the values array must be empty. This array                                            is replaced during a strategic merge patch.                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    description: matchLabels is a map of {key,value}                                      pairs. A single {key,value} in the matchLabels                                      map is equivalent to an element of matchExpressions,                                      whose key field is "key", the operator is "In",                                      and the values array contains only "value".                                      The requirements are ANDed.                                    type: object                                type: object                                x-kubernetes-map-type: atomic                              namespaces:                                description: namespaces specifies a static list of                                  namespace names that the term applies to. The term                                  is applied to the union of the namespaces listed                                  in this field and the ones selected by namespaceSelector.                                  null or empty namespaces list and null namespaceSelector                                  means "this pod's namespace".                                items:                                  type: string                                type: array                              topologyKey:                                description: This pod should be co-located (affinity)                                  or not co-located (anti-affinity) with the pods                                  matching the labelSelector in the specified namespaces,                                  where co-located is defined as running on a node                                  whose value of the label with key topologyKey matches                                  that of any node on which any of the selected pods                                  is running. Empty topologyKey is not allowed.                                type: string                            required:                            - topologyKey                            type: object                          type: array                      type: object                    tolerations:                      description: The pod this Toleration is attached to tolerates                        any taint that matches the triple <key,value,effect> using                        the matching operator <operator>                      items:                        description: The pod this Toleration is attached to tolerates                          any taint that matches the triple <key,value,effect> using                          the matching operator <operator>.                        properties:                          effect:                            description: Effect indicates the taint effect to match.                              Empty means match all taint effects. When specified,                              allowed values are NoSchedule, PreferNoSchedule and                              NoExecute.                            type: string                          key:                            description: Key is the taint key that the toleration                              applies to. Empty means match all taint keys. If the                              key is empty, operator must be Exists; this combination                              means to match all values and all keys.                            type: string                          operator:                            description: Operator represents a key's relationship                              to the value. Valid operators are Exists and Equal.                              Defaults to Equal. Exists is equivalent to wildcard                              for value, so that a pod can tolerate all taints of                              a particular category.                            type: string                          tolerationSeconds:                            description: TolerationSeconds represents the period of                              time the toleration (which must be of effect NoExecute,                              otherwise this field is ignored) tolerates the taint.                              By default, it is not set, which means tolerate the                              taint forever (do not evict). Zero and negative values                              will be treated as 0 (evict immediately) by the system.                            format: int64                            type: integer                          value:                            description: Value is the taint value the toleration matches                              to. If the operator is Exists, the value should be empty,                              otherwise just a regular string.                            type: string                        type: object                      type: array                    topologySpreadConstraints:                      description: TopologySpreadConstraint specifies how to spread                        matching pods among the given topology                      items:                        description: TopologySpreadConstraint specifies how to spread                          matching pods among the given topology.                        properties:                          labelSelector:                            description: LabelSelector is used to find matching pods.                              Pods that match this label selector are counted to determine                              the number of pods in their corresponding topology domain.                            properties:                              matchExpressions:                                description: matchExpressions is a list of label selector                                  requirements. The requirements are ANDed.                                items:                                  description: A label selector requirement is a selector                                    that contains values, a key, and an operator that                                    relates the key and values.                                  properties:                                    key:                                      description: key is the label key that the selector                                        applies to.                                      type: string                                    operator:                                      description: operator represents a key's relationship                                        to a set of values. Valid operators are In,                                        NotIn, Exists and DoesNotExist.                                      type: string                                    values:                                      description: values is an array of string values.                                        If the operator is In or NotIn, the values                                        array must be non-empty. If the operator is                                        Exists or DoesNotExist, the values array must                                        be empty. This array is replaced during a                                        strategic merge patch.                                      items:                                        type: string                                      type: array                                  required:                                  - key                                  - operator                                  type: object                                type: array                              matchLabels:                                additionalProperties:                                  type: string                                description: matchLabels is a map of {key,value} pairs.                                  A single {key,value} in the matchLabels map is equivalent                                  to an element of matchExpressions, whose key field                                  is "key", the operator is "In", and the values array                                  contains only "value". The requirements are ANDed.                                type: object                            type: object                            x-kubernetes-map-type: atomic                          matchLabelKeys:                            description: "MatchLabelKeys is a set of pod label keys                              to select the pods over which spreading will be calculated.                              The keys are used to lookup values from the incoming                              pod labels, those key-value labels are ANDed with labelSelector                              to select the group of existing pods over which spreading                              will be calculated for the incoming pod. 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)."                            items:                              type: string                            type: array                            x-kubernetes-list-type: atomic                          maxSkew:                            description: 'MaxSkew describes the degree to which pods                              may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,                              it is the maximum permitted difference between the number                              of matching pods in the target topology and the global                              minimum. The global minimum is the minimum number of                              matching pods in an eligible domain or zero if the number                              of eligible domains is less than MinDomains. For example,                              in a 3-zone cluster, MaxSkew is set to 1, and pods with                              the same labelSelector spread as 2/2/1: In this case,                              the global minimum is 1. | zone1 | zone2 | zone3 | |  P                              P  |  P P  |   P   | - if MaxSkew is 1, incoming pod                              can only be scheduled to zone3 to become 2/2/2; scheduling                              it onto zone1(zone2) would make the ActualSkew(3-1)                              on zone1(zone2) violate MaxSkew(1). - if MaxSkew is                              2, incoming pod can be scheduled onto any zone. When                              `whenUnsatisfiable=ScheduleAnyway`, it is used to give                              higher precedence to topologies that satisfy it. It''s                              a required field. Default value is 1 and 0 is not allowed.'                            format: int32                            type: integer                          minDomains:                            description: "MinDomains indicates a minimum number of                              eligible domains. When the number of eligible domains                              with matching topology keys is less than minDomains,                              Pod Topology Spread treats \"global minimum\" as 0,                              and then the calculation of Skew is performed. And when                              the number of eligible domains with matching topology                              keys equals or greater than minDomains, this value has                              no effect on scheduling. As a result, when the number                              of eligible domains is less than minDomains, scheduler                              won't schedule more than maxSkew Pods to those domains.                              If value is nil, the constraint behaves as if MinDomains                              is equal to 1. Valid values are integers greater than                              0. When value is not nil, WhenUnsatisfiable must be                              DoNotSchedule. \n For example, in a 3-zone cluster,                              MaxSkew is set to 2, MinDomains is set to 5 and pods                              with the same labelSelector spread as 2/2/2: | zone1                              | zone2 | zone3 | |  P P  |  P P  |  P P  | The number                              of domains is less than 5(MinDomains), so \"global minimum\"                              is treated as 0. In this situation, new pod with the                              same labelSelector cannot be scheduled, because computed                              skew will be 3(3 - 0) if new Pod is scheduled to any                              of the three zones, it will violate MaxSkew. \n This                              is a beta field and requires the MinDomainsInPodTopologySpread                              feature gate to be enabled (enabled by default)."                            format: int32                            type: integer                          nodeAffinityPolicy:                            description: "NodeAffinityPolicy indicates how we will                              treat Pod's nodeAffinity/nodeSelector when calculating                              pod topology spread skew. Options are: - Honor: only                              nodes matching nodeAffinity/nodeSelector are included                              in the calculations. - Ignore: nodeAffinity/nodeSelector                              are ignored. All nodes are included in the calculations.                              \n If this value is nil, the behavior is equivalent                              to the Honor policy. This is a beta-level feature default                              enabled by the NodeInclusionPolicyInPodTopologySpread                              feature flag."                            type: string                          nodeTaintsPolicy:                            description: "NodeTaintsPolicy indicates how we will treat                              node taints when calculating pod topology spread skew.                              Options are: - Honor: nodes without taints, along with                              tainted nodes for which the incoming pod has a toleration,                              are included. - Ignore: node taints are ignored. All                              nodes are included. \n If this value is nil, the behavior                              is equivalent to the Ignore policy. This is a beta-level                              feature default enabled by the NodeInclusionPolicyInPodTopologySpread                              feature flag."                            type: string                          topologyKey:                            description: TopologyKey is the key of node labels. Nodes                              that have a label with this key and identical values                              are considered to be in the same topology. We consider                              each <key, value> as a "bucket", and try to put balanced                              number of pods into each bucket. We define a domain                              as a particular instance of a topology. Also, we define                              an eligible domain as a domain whose nodes meet the                              requirements of nodeAffinityPolicy and nodeTaintsPolicy.                              e.g. If TopologyKey is "kubernetes.io/hostname", each                              Node is a domain of that topology. And, if TopologyKey                              is "topology.kubernetes.io/zone", each zone is a domain                              of that topology. It's a required field.                            type: string                          whenUnsatisfiable:                            description: 'WhenUnsatisfiable indicates how to deal                              with a pod if it doesn''t satisfy the spread constraint.                              - DoNotSchedule (default) tells the scheduler not to                              schedule it. - ScheduleAnyway tells the scheduler to                              schedule the pod in any location, but giving higher                              precedence to topologies that would help reduce the                              skew. A constraint is considered "Unsatisfiable" for                              an incoming pod if and only if every possible node assignment                              for that pod would violate "MaxSkew" on some topology.                              For example, in a 3-zone cluster, MaxSkew is set to                              1, and pods with the same labelSelector spread as 3/1/1:                              | zone1 | zone2 | zone3 | | P P P |   P   |   P   |                              If WhenUnsatisfiable is set to DoNotSchedule, incoming                              pod can only be scheduled to zone2(zone3) to become                              3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies                              MaxSkew(1). In other words, the cluster can still be                              imbalanced, but scheduler won''t make it *more* imbalanced.                              It''s a required field.'                            type: string                        required:                        - maxSkew                        - topologyKey                        - whenUnsatisfiable                        type: object                      type: array                  type: object                description: The placement-related configuration to pass to kubernetes                  (affinity, node selector, tolerations).                nullable: true                type: object                x-kubernetes-preserve-unknown-fields: true              priorityClassNames:                additionalProperties:                  type: string                description: PriorityClassNames sets priority classes on components                nullable: true                type: object                x-kubernetes-preserve-unknown-fields: true              removeOSDsIfOutAndSafeToRemove:                description: Remove the OSD that is out and safe to remove only if                  this option is true                type: boolean              resources:                additionalProperties:                  description: ResourceRequirements describes the compute resource                    requirements.                  properties:                    claims:                      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."                      items:                        description: ResourceClaim references one entry in PodSpec.ResourceClaims.                        properties:                          name:                            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.                            type: string                        required:                        - name                        type: object                      type: array                      x-kubernetes-list-map-keys:                      - name                      x-kubernetes-list-type: map                    limits:                      additionalProperties:                        anyOf:                        - type: integer                        - type: string                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                        x-kubernetes-int-or-string: true                      description: 'Limits describes the maximum amount of compute                        resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                      type: object                    requests:                      additionalProperties:                        anyOf:                        - type: integer                        - type: string                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                        x-kubernetes-int-or-string: true                      description: 'Requests describes the minimum amount of compute                        resources required. If Requests is omitted for a container,                        it defaults to Limits if that is explicitly specified, otherwise                        to an implementation-defined value. Requests cannot exceed                        Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                      type: object                  type: object                description: Resources set resource requests and limits                nullable: true                type: object                x-kubernetes-preserve-unknown-fields: true              security:                description: Security represents security settings                nullable: true                properties:                  keyRotation:                    description: KeyRotation defines options for Key Rotation.                    nullable: true                    properties:                      enabled:                        default: false                        description: Enabled represents whether the key rotation is                          enabled.                        type: boolean                      schedule:                        description: Schedule represents the cron schedule for key                          rotation.                        type: string                    type: object                  kms:                    description: KeyManagementService is the main Key Management option                    nullable: true                    properties:                      connectionDetails:                        additionalProperties:                          type: string                        description: ConnectionDetails contains the KMS connection                          details (address, port etc)                        nullable: true                        type: object                        x-kubernetes-preserve-unknown-fields: true                      tokenSecretName:                        description: TokenSecretName is the kubernetes secret containing                          the KMS token                        type: string                    type: object                type: object              skipUpgradeChecks:                description: SkipUpgradeChecks defines if an upgrade should be forced                  even if one of the check fails                type: boolean              storage:                description: A spec for available storage in the cluster and how it                  should be used                nullable: true                properties:                  config:                    additionalProperties:                      type: string                    nullable: true                    type: object                    x-kubernetes-preserve-unknown-fields: true                  deviceFilter:                    description: A regular expression to allow more fine-grained selection                      of devices on nodes across the cluster                    type: string                  devicePathFilter:                    description: A regular expression to allow more fine-grained selection                      of devices with path names                    type: string                  devices:                    description: List of devices to use as storage devices                    items:                      description: Device represents a disk to use in the cluster                      properties:                        config:                          additionalProperties:                            type: string                          nullable: true                          type: object                          x-kubernetes-preserve-unknown-fields: true                        fullpath:                          type: string                        name:                          type: string                      type: object                    nullable: true                    type: array                    x-kubernetes-preserve-unknown-fields: true                  nodes:                    items:                      description: Node is a storage nodes                      properties:                        config:                          additionalProperties:                            type: string                          nullable: true                          type: object                          x-kubernetes-preserve-unknown-fields: true                        deviceFilter:                          description: A regular expression to allow more fine-grained                            selection of devices on nodes across the cluster                          type: string                        devicePathFilter:                          description: A regular expression to allow more fine-grained                            selection of devices with path names                          type: string                        devices:                          description: List of devices to use as storage devices                          items:                            description: Device represents a disk to use in the cluster                            properties:                              config:                                additionalProperties:                                  type: string                                nullable: true                                type: object                                x-kubernetes-preserve-unknown-fields: true                              fullpath:                                type: string                              name:                                type: string                            type: object                          nullable: true                          type: array                          x-kubernetes-preserve-unknown-fields: true                        name:                          type: string                        resources:                          description: ResourceRequirements describes the compute                            resource requirements.                          nullable: true                          properties:                            claims:                              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."                              items:                                description: ResourceClaim references one entry in                                  PodSpec.ResourceClaims.                                properties:                                  name:                                    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.                                    type: string                                required:                                - name                                type: object                              type: array                              x-kubernetes-list-map-keys:                              - name                              x-kubernetes-list-type: map                            limits:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Limits describes the maximum amount of                                compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                            requests:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Requests describes the minimum amount                                of compute resources required. If Requests is omitted                                for a container, it defaults to Limits if that is                                explicitly specified, otherwise to an implementation-defined                                value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                          type: object                          x-kubernetes-preserve-unknown-fields: true                        useAllDevices:                          description: Whether to consume all the storage devices                            found on a machine                          type: boolean                        volumeClaimTemplates:                          description: PersistentVolumeClaims to use as storage                          items:                            description: PersistentVolumeClaim is a user's request                              for and claim to a persistent volume                            properties:                              apiVersion:                                description: 'APIVersion defines the versioned schema                                  of this representation of an object. Servers should                                  convert recognized schemas to the latest internal                                  value, and may reject unrecognized values. More                                  info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                                type: string                              kind:                                description: 'Kind is a string value representing                                  the REST resource this object represents. Servers                                  may infer this from the endpoint the client submits                                  requests to. Cannot be updated. In CamelCase. More                                  info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                                type: string                              metadata:                                description: 'Standard object''s metadata. More info:                                  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    type: object                                  finalizers:                                    items:                                      type: string                                    type: array                                  labels:                                    additionalProperties:                                      type: string                                    type: object                                  name:                                    type: string                                  namespace:                                    type: string                                type: object                              spec:                                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'                                properties:                                  accessModes:                                    description: 'accessModes contains the desired                                      access modes the volume should have. More info:                                      https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                                    items:                                      type: string                                    type: array                                  dataSource:                                    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.'                                    properties:                                      apiGroup:                                        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.                                        type: string                                      kind:                                        description: Kind is the type of resource                                          being referenced                                        type: string                                      name:                                        description: Name is the name of resource                                          being referenced                                        type: string                                    required:                                    - kind                                    - name                                    type: object                                    x-kubernetes-map-type: atomic                                  dataSourceRef:                                    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.'                                    properties:                                      apiGroup:                                        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.                                        type: string                                      kind:                                        description: Kind is the type of resource                                          being referenced                                        type: string                                      name:                                        description: Name is the name of resource                                          being referenced                                        type: string                                      namespace:                                        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.                                        type: string                                    required:                                    - kind                                    - name                                    type: object                                  resources:                                    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'                                    properties:                                      claims:                                        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."                                        items:                                          description: ResourceClaim references one                                            entry in PodSpec.ResourceClaims.                                          properties:                                            name:                                              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.                                              type: string                                          required:                                          - name                                          type: object                                        type: array                                        x-kubernetes-list-map-keys:                                        - name                                        x-kubernetes-list-type: map                                      limits:                                        additionalProperties:                                          anyOf:                                          - type: integer                                          - type: string                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                          x-kubernetes-int-or-string: true                                        description: 'Limits describes the maximum                                          amount of compute resources allowed. More                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                        type: object                                      requests:                                        additionalProperties:                                          anyOf:                                          - type: integer                                          - type: string                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                          x-kubernetes-int-or-string: true                                        description: 'Requests describes the minimum                                          amount of compute resources required. If                                          Requests is omitted for a container, it                                          defaults to Limits if that is explicitly                                          specified, otherwise to an implementation-defined                                          value. Requests cannot exceed Limits. More                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                        type: object                                    type: object                                  selector:                                    description: selector is a label query over volumes                                      to consider for binding.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  storageClassName:                                    description: 'storageClassName is the name of                                      the StorageClass required by the claim. More                                      info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                                    type: string                                  volumeMode:                                    description: volumeMode defines what type of volume                                      is required by the claim. Value of Filesystem                                      is implied when not included in claim spec.                                    type: string                                  volumeName:                                    description: volumeName is the binding reference                                      to the PersistentVolume backing this claim.                                    type: string                                type: object                              status:                                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'                                properties:                                  accessModes:                                    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'                                    items:                                      type: string                                    type: array                                  allocatedResourceStatuses:                                    additionalProperties:                                      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.                                      type: string                                    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."                                    type: object                                    x-kubernetes-map-type: granular                                  allocatedResources:                                    additionalProperties:                                      anyOf:                                      - type: integer                                      - type: string                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                      x-kubernetes-int-or-string: true                                    description: "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."                                    type: object                                  capacity:                                    additionalProperties:                                      anyOf:                                      - type: integer                                      - type: string                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                      x-kubernetes-int-or-string: true                                    description: capacity represents the actual resources                                      of the underlying volume.                                    type: object                                  conditions:                                    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'.                                    items:                                      description: PersistentVolumeClaimCondition                                        contains details about state of pvc                                      properties:                                        lastProbeTime:                                          description: lastProbeTime is the time we                                            probed the condition.                                          format: date-time                                          type: string                                        lastTransitionTime:                                          description: lastTransitionTime is the time                                            the condition transitioned from one status                                            to another.                                          format: date-time                                          type: string                                        message:                                          description: message is the human-readable                                            message indicating details about last                                            transition.                                          type: string                                        reason:                                          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.                                          type: string                                        status:                                          type: string                                        type:                                          description: PersistentVolumeClaimConditionType                                            is a valid value of PersistentVolumeClaimCondition.Type                                          type: string                                      required:                                      - status                                      - type                                      type: object                                    type: array                                  phase:                                    description: phase represents the current phase                                      of PersistentVolumeClaim.                                    type: string                                type: object                            type: object                          type: array                      type: object                    nullable: true                    type: array                  onlyApplyOSDPlacement:                    type: boolean                  storageClassDeviceSets:                    items:                      description: StorageClassDeviceSet is a storage class device                        set                      properties:                        config:                          additionalProperties:                            type: string                          description: Provider-specific device configuration                          nullable: true                          type: object                          x-kubernetes-preserve-unknown-fields: true                        count:                          description: Count is the number of devices in this set                          minimum: 1                          type: integer                        encrypted:                          description: Whether to encrypt the deviceSet                          type: boolean                        name:                          description: Name is a unique identifier for the set                          type: string                        placement:                          description: Placement is the placement for an object                          nullable: true                          properties:                            nodeAffinity:                              description: NodeAffinity is a group of node affinity                                scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node matches the corresponding                                    matchExpressions; the node(s) with the highest                                    sum are the most preferred.                                  items:                                    description: An empty preferred scheduling term                                      matches all objects with implicit weight 0 (i.e.                                      it's a no-op). A null preferred scheduling term                                      matches no objects (i.e. is also a no-op).                                    properties:                                      preference:                                        description: A node selector term, associated                                          with the corresponding weight.                                        properties:                                          matchExpressions:                                            description: A list of node selector requirements                                              by node's labels.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchFields:                                            description: A list of node selector requirements                                              by node's fields.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                        type: object                                        x-kubernetes-map-type: atomic                                      weight:                                        description: Weight associated with matching                                          the corresponding nodeSelectorTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - preference                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the affinity requirements specified by this field                                    cease to be met at some point during pod execution                                    (e.g. due to an update), the system may or may                                    not try to eventually evict the pod from its node.                                  properties:                                    nodeSelectorTerms:                                      description: Required. A list of node selector                                        terms. The terms are ORed.                                      items:                                        description: A null or empty node selector                                          term matches no objects. The requirements                                          of them are ANDed. The TopologySelectorTerm                                          type implements a subset of the NodeSelectorTerm.                                        properties:                                          matchExpressions:                                            description: A list of node selector requirements                                              by node's labels.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchFields:                                            description: A list of node selector requirements                                              by node's fields.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                        type: object                                        x-kubernetes-map-type: atomic                                      type: array                                  required:                                  - nodeSelectorTerms                                  type: object                                  x-kubernetes-map-type: atomic                              type: object                            podAffinity:                              description: PodAffinity is a group of inter pod affinity                                scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node has pods which                                    matches the corresponding podAffinityTerm; the                                    node(s) with the highest sum are the most preferred.                                  items:                                    description: The weights of all of the matched                                      WeightedPodAffinityTerm fields are added per-node                                      to find the most preferred node(s)                                    properties:                                      podAffinityTerm:                                        description: Required. A pod affinity term,                                          associated with the corresponding weight.                                        properties:                                          labelSelector:                                            description: A label query over a set                                              of resources, in this case pods.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaceSelector:                                            description: A label query over the set                                              of namespaces that the term applies                                              to. The term is applied to the union                                              of the namespaces selected by this field                                              and the ones listed in the namespaces                                              field. null selector and null or empty                                              namespaces list means "this pod's namespace".                                              An empty selector ({}) matches all namespaces.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaces:                                            description: namespaces specifies a static                                              list of namespace names that the term                                              applies to. The term is applied to the                                              union of the namespaces listed in this                                              field and the ones selected by namespaceSelector.                                              null or empty namespaces list and null                                              namespaceSelector means "this pod's                                              namespace".                                            items:                                              type: string                                            type: array                                          topologyKey:                                            description: This pod should be co-located                                              (affinity) or not co-located (anti-affinity)                                              with the pods matching the labelSelector                                              in the specified namespaces, where co-located                                              is defined as running on a node whose                                              value of the label with key topologyKey                                              matches that of any node on which any                                              of the selected pods is running. Empty                                              topologyKey is not allowed.                                            type: string                                        required:                                        - topologyKey                                        type: object                                      weight:                                        description: weight associated with matching                                          the corresponding podAffinityTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - podAffinityTerm                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the affinity requirements specified by this field                                    cease to be met at some point during pod execution                                    (e.g. due to a pod label update), the system may                                    or may not try to eventually evict the pod from                                    its node. When there are multiple elements, the                                    lists of nodes corresponding to each podAffinityTerm                                    are intersected, i.e. all terms must be satisfied.                                  items:                                    description: Defines a set of pods (namely those                                      matching the labelSelector relative to the given                                      namespace(s)) that this pod should be co-located                                      (affinity) or not co-located (anti-affinity)                                      with, where co-located is defined as running                                      on a node whose value of the label with key                                      <topologyKey> matches that of any node on which                                      a pod of the set of pods is running                                    properties:                                      labelSelector:                                        description: A label query over a set of resources,                                          in this case pods.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaceSelector:                                        description: A label query over the set of                                          namespaces that the term applies to. The                                          term is applied to the union of the namespaces                                          selected by this field and the ones listed                                          in the namespaces field. null selector and                                          null or empty namespaces list means "this                                          pod's namespace". An empty selector ({})                                          matches all namespaces.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaces:                                        description: namespaces specifies a static                                          list of namespace names that the term applies                                          to. The term is applied to the union of                                          the namespaces listed in this field and                                          the ones selected by namespaceSelector.                                          null or empty namespaces list and null namespaceSelector                                          means "this pod's namespace".                                        items:                                          type: string                                        type: array                                      topologyKey:                                        description: This pod should be co-located                                          (affinity) or not co-located (anti-affinity)                                          with the pods matching the labelSelector                                          in the specified namespaces, where co-located                                          is defined as running on a node whose value                                          of the label with key topologyKey matches                                          that of any node on which any of the selected                                          pods is running. Empty topologyKey is not                                          allowed.                                        type: string                                    required:                                    - topologyKey                                    type: object                                  type: array                              type: object                            podAntiAffinity:                              description: PodAntiAffinity is a group of inter pod                                anti affinity scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the anti-affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling anti-affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node has pods which                                    matches the corresponding podAffinityTerm; the                                    node(s) with the highest sum are the most preferred.                                  items:                                    description: The weights of all of the matched                                      WeightedPodAffinityTerm fields are added per-node                                      to find the most preferred node(s)                                    properties:                                      podAffinityTerm:                                        description: Required. A pod affinity term,                                          associated with the corresponding weight.                                        properties:                                          labelSelector:                                            description: A label query over a set                                              of resources, in this case pods.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaceSelector:                                            description: A label query over the set                                              of namespaces that the term applies                                              to. The term is applied to the union                                              of the namespaces selected by this field                                              and the ones listed in the namespaces                                              field. null selector and null or empty                                              namespaces list means "this pod's namespace".                                              An empty selector ({}) matches all namespaces.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaces:                                            description: namespaces specifies a static                                              list of namespace names that the term                                              applies to. The term is applied to the                                              union of the namespaces listed in this                                              field and the ones selected by namespaceSelector.                                              null or empty namespaces list and null                                              namespaceSelector means "this pod's                                              namespace".                                            items:                                              type: string                                            type: array                                          topologyKey:                                            description: This pod should be co-located                                              (affinity) or not co-located (anti-affinity)                                              with the pods matching the labelSelector                                              in the specified namespaces, where co-located                                              is defined as running on a node whose                                              value of the label with key topologyKey                                              matches that of any node on which any                                              of the selected pods is running. Empty                                              topologyKey is not allowed.                                            type: string                                        required:                                        - topologyKey                                        type: object                                      weight:                                        description: weight associated with matching                                          the corresponding podAffinityTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - podAffinityTerm                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the anti-affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the anti-affinity requirements specified by this                                    field cease to be met at some point during pod                                    execution (e.g. due to a pod label update), the                                    system may or may not try to eventually evict                                    the pod from its node. When there are multiple                                    elements, the lists of nodes corresponding to                                    each podAffinityTerm are intersected, i.e. all                                    terms must be satisfied.                                  items:                                    description: Defines a set of pods (namely those                                      matching the labelSelector relative to the given                                      namespace(s)) that this pod should be co-located                                      (affinity) or not co-located (anti-affinity)                                      with, where co-located is defined as running                                      on a node whose value of the label with key                                      <topologyKey> matches that of any node on which                                      a pod of the set of pods is running                                    properties:                                      labelSelector:                                        description: A label query over a set of resources,                                          in this case pods.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaceSelector:                                        description: A label query over the set of                                          namespaces that the term applies to. The                                          term is applied to the union of the namespaces                                          selected by this field and the ones listed                                          in the namespaces field. null selector and                                          null or empty namespaces list means "this                                          pod's namespace". An empty selector ({})                                          matches all namespaces.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaces:                                        description: namespaces specifies a static                                          list of namespace names that the term applies                                          to. The term is applied to the union of                                          the namespaces listed in this field and                                          the ones selected by namespaceSelector.                                          null or empty namespaces list and null namespaceSelector                                          means "this pod's namespace".                                        items:                                          type: string                                        type: array                                      topologyKey:                                        description: This pod should be co-located                                          (affinity) or not co-located (anti-affinity)                                          with the pods matching the labelSelector                                          in the specified namespaces, where co-located                                          is defined as running on a node whose value                                          of the label with key topologyKey matches                                          that of any node on which any of the selected                                          pods is running. Empty topologyKey is not                                          allowed.                                        type: string                                    required:                                    - topologyKey                                    type: object                                  type: array                              type: object                            tolerations:                              description: The pod this Toleration is attached to                                tolerates any taint that matches the triple <key,value,effect>                                using the matching operator <operator>                              items:                                description: The pod this Toleration is attached to                                  tolerates any taint that matches the triple <key,value,effect>                                  using the matching operator <operator>.                                properties:                                  effect:                                    description: Effect indicates the taint effect                                      to match. Empty means match all taint effects.                                      When specified, allowed values are NoSchedule,                                      PreferNoSchedule and NoExecute.                                    type: string                                  key:                                    description: Key is the taint key that the toleration                                      applies to. Empty means match all taint keys.                                      If the key is empty, operator must be Exists;                                      this combination means to match all values and                                      all keys.                                    type: string                                  operator:                                    description: Operator represents a key's relationship                                      to the value. Valid operators are Exists and                                      Equal. Defaults to Equal. Exists is equivalent                                      to wildcard for value, so that a pod can tolerate                                      all taints of a particular category.                                    type: string                                  tolerationSeconds:                                    description: TolerationSeconds represents the                                      period of time the toleration (which must be                                      of effect NoExecute, otherwise this field is                                      ignored) tolerates the taint. By default, it                                      is not set, which means tolerate the taint forever                                      (do not evict). Zero and negative values will                                      be treated as 0 (evict immediately) by the system.                                    format: int64                                    type: integer                                  value:                                    description: Value is the taint value the toleration                                      matches to. If the operator is Exists, the value                                      should be empty, otherwise just a regular string.                                    type: string                                type: object                              type: array                            topologySpreadConstraints:                              description: TopologySpreadConstraint specifies how                                to spread matching pods among the given topology                              items:                                description: TopologySpreadConstraint specifies how                                  to spread matching pods among the given topology.                                properties:                                  labelSelector:                                    description: LabelSelector is used to find matching                                      pods. Pods that match this label selector are                                      counted to determine the number of pods in their                                      corresponding topology domain.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  matchLabelKeys:                                    description: "MatchLabelKeys is a set of pod label                                      keys to select the pods over which spreading                                      will be calculated. The keys are used to lookup                                      values from the incoming pod labels, those key-value                                      labels are ANDed with labelSelector to select                                      the group of existing pods over which spreading                                      will be calculated for the incoming pod. 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)."                                    items:                                      type: string                                    type: array                                    x-kubernetes-list-type: atomic                                  maxSkew:                                    description: 'MaxSkew describes the degree to                                      which pods may be unevenly distributed. When                                      `whenUnsatisfiable=DoNotSchedule`, it is the                                      maximum permitted difference between the number                                      of matching pods in the target topology and                                      the global minimum. The global minimum is the                                      minimum number of matching pods in an eligible                                      domain or zero if the number of eligible domains                                      is less than MinDomains. For example, in a 3-zone                                      cluster, MaxSkew is set to 1, and pods with                                      the same labelSelector spread as 2/2/1: In this                                      case, the global minimum is 1. | zone1 | zone2                                      | zone3 | |  P P  |  P P  |   P   | - if MaxSkew                                      is 1, incoming pod can only be scheduled to                                      zone3 to become 2/2/2; scheduling it onto zone1(zone2)                                      would make the ActualSkew(3-1) on zone1(zone2)                                      violate MaxSkew(1). - if MaxSkew is 2, incoming                                      pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,                                      it is used to give higher precedence to topologies                                      that satisfy it. It''s a required field. Default                                      value is 1 and 0 is not allowed.'                                    format: int32                                    type: integer                                  minDomains:                                    description: "MinDomains indicates a minimum number                                      of eligible domains. When the number of eligible                                      domains with matching topology keys is less                                      than minDomains, Pod Topology Spread treats                                      \"global minimum\" as 0, and then the calculation                                      of Skew is performed. And when the number of                                      eligible domains with matching topology keys                                      equals or greater than minDomains, this value                                      has no effect on scheduling. As a result, when                                      the number of eligible domains is less than                                      minDomains, scheduler won't schedule more than                                      maxSkew Pods to those domains. If value is nil,                                      the constraint behaves as if MinDomains is equal                                      to 1. Valid values are integers greater than                                      0. When value is not nil, WhenUnsatisfiable                                      must be DoNotSchedule. \n For example, in a                                      3-zone cluster, MaxSkew is set to 2, MinDomains                                      is set to 5 and pods with the same labelSelector                                      spread as 2/2/2: | zone1 | zone2 | zone3 | |                                      \ P P  |  P P  |  P P  | The number of domains                                      is less than 5(MinDomains), so \"global minimum\"                                      is treated as 0. In this situation, new pod                                      with the same labelSelector cannot be scheduled,                                      because computed skew will be 3(3 - 0) if new                                      Pod is scheduled to any of the three zones,                                      it will violate MaxSkew. \n This is a beta field                                      and requires the MinDomainsInPodTopologySpread                                      feature gate to be enabled (enabled by default)."                                    format: int32                                    type: integer                                  nodeAffinityPolicy:                                    description: "NodeAffinityPolicy indicates how                                      we will treat Pod's nodeAffinity/nodeSelector                                      when calculating pod topology spread skew. Options                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector                                      are included in the calculations. - Ignore:                                      nodeAffinity/nodeSelector are ignored. All nodes                                      are included in the calculations. \n If this                                      value is nil, the behavior is equivalent to                                      the Honor policy. This is a beta-level feature                                      default enabled by the NodeInclusionPolicyInPodTopologySpread                                      feature flag."                                    type: string                                  nodeTaintsPolicy:                                    description: "NodeTaintsPolicy indicates how we                                      will treat node taints when calculating pod                                      topology spread skew. Options are: - Honor:                                      nodes without taints, along with tainted nodes                                      for which the incoming pod has a toleration,                                      are included. - Ignore: node taints are ignored.                                      All nodes are included. \n If this value is                                      nil, the behavior is equivalent to the Ignore                                      policy. This is a beta-level feature default                                      enabled by the NodeInclusionPolicyInPodTopologySpread                                      feature flag."                                    type: string                                  topologyKey:                                    description: TopologyKey is the key of node labels.                                      Nodes that have a label with this key and identical                                      values are considered to be in the same topology.                                      We consider each <key, value> as a "bucket",                                      and try to put balanced number of pods into                                      each bucket. We define a domain as a particular                                      instance of a topology. Also, we define an eligible                                      domain as a domain whose nodes meet the requirements                                      of nodeAffinityPolicy and nodeTaintsPolicy.                                      e.g. If TopologyKey is "kubernetes.io/hostname",                                      each Node is a domain of that topology. And,                                      if TopologyKey is "topology.kubernetes.io/zone",                                      each zone is a domain of that topology. It's                                      a required field.                                    type: string                                  whenUnsatisfiable:                                    description: 'WhenUnsatisfiable indicates how                                      to deal with a pod if it doesn''t satisfy the                                      spread constraint. - DoNotSchedule (default)                                      tells the scheduler not to schedule it. - ScheduleAnyway                                      tells the scheduler to schedule the pod in any                                      location, but giving higher precedence to topologies                                      that would help reduce the skew. A constraint                                      is considered "Unsatisfiable" for an incoming                                      pod if and only if every possible node assignment                                      for that pod would violate "MaxSkew" on some                                      topology. For example, in a 3-zone cluster,                                      MaxSkew is set to 1, and pods with the same                                      labelSelector spread as 3/1/1: | zone1 | zone2                                      | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable                                      is set to DoNotSchedule, incoming pod can only                                      be scheduled to zone2(zone3) to become 3/2/1(3/1/2)                                      as ActualSkew(2-1) on zone2(zone3) satisfies                                      MaxSkew(1). In other words, the cluster can                                      still be imbalanced, but scheduler won''t make                                      it *more* imbalanced. It''s a required field.'                                    type: string                                required:                                - maxSkew                                - topologyKey                                - whenUnsatisfiable                                type: object                              type: array                          type: object                          x-kubernetes-preserve-unknown-fields: true                        portable:                          description: Portable represents OSD portability across                            the hosts                          type: boolean                        preparePlacement:                          description: Placement is the placement for an object                          nullable: true                          properties:                            nodeAffinity:                              description: NodeAffinity is a group of node affinity                                scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node matches the corresponding                                    matchExpressions; the node(s) with the highest                                    sum are the most preferred.                                  items:                                    description: An empty preferred scheduling term                                      matches all objects with implicit weight 0 (i.e.                                      it's a no-op). A null preferred scheduling term                                      matches no objects (i.e. is also a no-op).                                    properties:                                      preference:                                        description: A node selector term, associated                                          with the corresponding weight.                                        properties:                                          matchExpressions:                                            description: A list of node selector requirements                                              by node's labels.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchFields:                                            description: A list of node selector requirements                                              by node's fields.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                        type: object                                        x-kubernetes-map-type: atomic                                      weight:                                        description: Weight associated with matching                                          the corresponding nodeSelectorTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - preference                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the affinity requirements specified by this field                                    cease to be met at some point during pod execution                                    (e.g. due to an update), the system may or may                                    not try to eventually evict the pod from its node.                                  properties:                                    nodeSelectorTerms:                                      description: Required. A list of node selector                                        terms. The terms are ORed.                                      items:                                        description: A null or empty node selector                                          term matches no objects. The requirements                                          of them are ANDed. The TopologySelectorTerm                                          type implements a subset of the NodeSelectorTerm.                                        properties:                                          matchExpressions:                                            description: A list of node selector requirements                                              by node's labels.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchFields:                                            description: A list of node selector requirements                                              by node's fields.                                            items:                                              description: A node selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: The label key that                                                    the selector applies to.                                                  type: string                                                operator:                                                  description: Represents a key's                                                    relationship to a set of values.                                                    Valid operators are In, NotIn,                                                    Exists, DoesNotExist. Gt, and                                                    Lt.                                                  type: string                                                values:                                                  description: An array of string                                                    values. If the operator is In                                                    or NotIn, the values array must                                                    be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. If                                                    the operator is Gt or Lt, the                                                    values array must have a single                                                    element, which will be interpreted                                                    as an integer. This array is replaced                                                    during a strategic merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                        type: object                                        x-kubernetes-map-type: atomic                                      type: array                                  required:                                  - nodeSelectorTerms                                  type: object                                  x-kubernetes-map-type: atomic                              type: object                            podAffinity:                              description: PodAffinity is a group of inter pod affinity                                scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node has pods which                                    matches the corresponding podAffinityTerm; the                                    node(s) with the highest sum are the most preferred.                                  items:                                    description: The weights of all of the matched                                      WeightedPodAffinityTerm fields are added per-node                                      to find the most preferred node(s)                                    properties:                                      podAffinityTerm:                                        description: Required. A pod affinity term,                                          associated with the corresponding weight.                                        properties:                                          labelSelector:                                            description: A label query over a set                                              of resources, in this case pods.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaceSelector:                                            description: A label query over the set                                              of namespaces that the term applies                                              to. The term is applied to the union                                              of the namespaces selected by this field                                              and the ones listed in the namespaces                                              field. null selector and null or empty                                              namespaces list means "this pod's namespace".                                              An empty selector ({}) matches all namespaces.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaces:                                            description: namespaces specifies a static                                              list of namespace names that the term                                              applies to. The term is applied to the                                              union of the namespaces listed in this                                              field and the ones selected by namespaceSelector.                                              null or empty namespaces list and null                                              namespaceSelector means "this pod's                                              namespace".                                            items:                                              type: string                                            type: array                                          topologyKey:                                            description: This pod should be co-located                                              (affinity) or not co-located (anti-affinity)                                              with the pods matching the labelSelector                                              in the specified namespaces, where co-located                                              is defined as running on a node whose                                              value of the label with key topologyKey                                              matches that of any node on which any                                              of the selected pods is running. Empty                                              topologyKey is not allowed.                                            type: string                                        required:                                        - topologyKey                                        type: object                                      weight:                                        description: weight associated with matching                                          the corresponding podAffinityTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - podAffinityTerm                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the affinity requirements specified by this field                                    cease to be met at some point during pod execution                                    (e.g. due to a pod label update), the system may                                    or may not try to eventually evict the pod from                                    its node. When there are multiple elements, the                                    lists of nodes corresponding to each podAffinityTerm                                    are intersected, i.e. all terms must be satisfied.                                  items:                                    description: Defines a set of pods (namely those                                      matching the labelSelector relative to the given                                      namespace(s)) that this pod should be co-located                                      (affinity) or not co-located (anti-affinity)                                      with, where co-located is defined as running                                      on a node whose value of the label with key                                      <topologyKey> matches that of any node on which                                      a pod of the set of pods is running                                    properties:                                      labelSelector:                                        description: A label query over a set of resources,                                          in this case pods.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaceSelector:                                        description: A label query over the set of                                          namespaces that the term applies to. The                                          term is applied to the union of the namespaces                                          selected by this field and the ones listed                                          in the namespaces field. null selector and                                          null or empty namespaces list means "this                                          pod's namespace". An empty selector ({})                                          matches all namespaces.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaces:                                        description: namespaces specifies a static                                          list of namespace names that the term applies                                          to. The term is applied to the union of                                          the namespaces listed in this field and                                          the ones selected by namespaceSelector.                                          null or empty namespaces list and null namespaceSelector                                          means "this pod's namespace".                                        items:                                          type: string                                        type: array                                      topologyKey:                                        description: This pod should be co-located                                          (affinity) or not co-located (anti-affinity)                                          with the pods matching the labelSelector                                          in the specified namespaces, where co-located                                          is defined as running on a node whose value                                          of the label with key topologyKey matches                                          that of any node on which any of the selected                                          pods is running. Empty topologyKey is not                                          allowed.                                        type: string                                    required:                                    - topologyKey                                    type: object                                  type: array                              type: object                            podAntiAffinity:                              description: PodAntiAffinity is a group of inter pod                                anti affinity scheduling rules                              properties:                                preferredDuringSchedulingIgnoredDuringExecution:                                  description: The scheduler will prefer to schedule                                    pods to nodes that satisfy the anti-affinity expressions                                    specified by this field, but it may choose a node                                    that violates one or more of the expressions.                                    The node that is most preferred is the one with                                    the greatest sum of weights, i.e. for each node                                    that meets all of the scheduling requirements                                    (resource request, requiredDuringScheduling anti-affinity                                    expressions, etc.), compute a sum by iterating                                    through the elements of this field and adding                                    "weight" to the sum if the node has pods which                                    matches the corresponding podAffinityTerm; the                                    node(s) with the highest sum are the most preferred.                                  items:                                    description: The weights of all of the matched                                      WeightedPodAffinityTerm fields are added per-node                                      to find the most preferred node(s)                                    properties:                                      podAffinityTerm:                                        description: Required. A pod affinity term,                                          associated with the corresponding weight.                                        properties:                                          labelSelector:                                            description: A label query over a set                                              of resources, in this case pods.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaceSelector:                                            description: A label query over the set                                              of namespaces that the term applies                                              to. The term is applied to the union                                              of the namespaces selected by this field                                              and the ones listed in the namespaces                                              field. null selector and null or empty                                              namespaces list means "this pod's namespace".                                              An empty selector ({}) matches all namespaces.                                            properties:                                              matchExpressions:                                                description: matchExpressions is a                                                  list of label selector requirements.                                                  The requirements are ANDed.                                                items:                                                  description: A label selector requirement                                                    is a selector that contains values,                                                    a key, and an operator that relates                                                    the key and values.                                                  properties:                                                    key:                                                      description: key is the label                                                        key that the selector applies                                                        to.                                                      type: string                                                    operator:                                                      description: operator represents                                                        a key's relationship to a                                                        set of values. Valid operators                                                        are In, NotIn, Exists and                                                        DoesNotExist.                                                      type: string                                                    values:                                                      description: values is an array                                                        of string values. If the operator                                                        is In or NotIn, the values                                                        array must be non-empty. If                                                        the operator is Exists or                                                        DoesNotExist, the values array                                                        must be empty. This array                                                        is replaced during a strategic                                                        merge patch.                                                      items:                                                        type: string                                                      type: array                                                  required:                                                  - key                                                  - operator                                                  type: object                                                type: array                                              matchLabels:                                                additionalProperties:                                                  type: string                                                description: matchLabels is a map                                                  of {key,value} pairs. A single {key,value}                                                  in the matchLabels map is equivalent                                                  to an element of matchExpressions,                                                  whose key field is "key", the operator                                                  is "In", and the values array contains                                                  only "value". The requirements are                                                  ANDed.                                                type: object                                            type: object                                            x-kubernetes-map-type: atomic                                          namespaces:                                            description: namespaces specifies a static                                              list of namespace names that the term                                              applies to. The term is applied to the                                              union of the namespaces listed in this                                              field and the ones selected by namespaceSelector.                                              null or empty namespaces list and null                                              namespaceSelector means "this pod's                                              namespace".                                            items:                                              type: string                                            type: array                                          topologyKey:                                            description: This pod should be co-located                                              (affinity) or not co-located (anti-affinity)                                              with the pods matching the labelSelector                                              in the specified namespaces, where co-located                                              is defined as running on a node whose                                              value of the label with key topologyKey                                              matches that of any node on which any                                              of the selected pods is running. Empty                                              topologyKey is not allowed.                                            type: string                                        required:                                        - topologyKey                                        type: object                                      weight:                                        description: weight associated with matching                                          the corresponding podAffinityTerm, in the                                          range 1-100.                                        format: int32                                        type: integer                                    required:                                    - podAffinityTerm                                    - weight                                    type: object                                  type: array                                requiredDuringSchedulingIgnoredDuringExecution:                                  description: If the anti-affinity requirements specified                                    by this field are not met at scheduling time,                                    the pod will not be scheduled onto the node. If                                    the anti-affinity requirements specified by this                                    field cease to be met at some point during pod                                    execution (e.g. due to a pod label update), the                                    system may or may not try to eventually evict                                    the pod from its node. When there are multiple                                    elements, the lists of nodes corresponding to                                    each podAffinityTerm are intersected, i.e. all                                    terms must be satisfied.                                  items:                                    description: Defines a set of pods (namely those                                      matching the labelSelector relative to the given                                      namespace(s)) that this pod should be co-located                                      (affinity) or not co-located (anti-affinity)                                      with, where co-located is defined as running                                      on a node whose value of the label with key                                      <topologyKey> matches that of any node on which                                      a pod of the set of pods is running                                    properties:                                      labelSelector:                                        description: A label query over a set of resources,                                          in this case pods.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaceSelector:                                        description: A label query over the set of                                          namespaces that the term applies to. The                                          term is applied to the union of the namespaces                                          selected by this field and the ones listed                                          in the namespaces field. null selector and                                          null or empty namespaces list means "this                                          pod's namespace". An empty selector ({})                                          matches all namespaces.                                        properties:                                          matchExpressions:                                            description: matchExpressions is a list                                              of label selector requirements. The                                              requirements are ANDed.                                            items:                                              description: A label selector requirement                                                is a selector that contains values,                                                a key, and an operator that relates                                                the key and values.                                              properties:                                                key:                                                  description: key is the label key                                                    that the selector applies to.                                                  type: string                                                operator:                                                  description: operator represents                                                    a key's relationship to a set                                                    of values. Valid operators are                                                    In, NotIn, Exists and DoesNotExist.                                                  type: string                                                values:                                                  description: values is an array                                                    of string values. If the operator                                                    is In or NotIn, the values array                                                    must be non-empty. If the operator                                                    is Exists or DoesNotExist, the                                                    values array must be empty. This                                                    array is replaced during a strategic                                                    merge patch.                                                  items:                                                    type: string                                                  type: array                                              required:                                              - key                                              - operator                                              type: object                                            type: array                                          matchLabels:                                            additionalProperties:                                              type: string                                            description: matchLabels is a map of {key,value}                                              pairs. A single {key,value} in the matchLabels                                              map is equivalent to an element of matchExpressions,                                              whose key field is "key", the operator                                              is "In", and the values array contains                                              only "value". The requirements are ANDed.                                            type: object                                        type: object                                        x-kubernetes-map-type: atomic                                      namespaces:                                        description: namespaces specifies a static                                          list of namespace names that the term applies                                          to. The term is applied to the union of                                          the namespaces listed in this field and                                          the ones selected by namespaceSelector.                                          null or empty namespaces list and null namespaceSelector                                          means "this pod's namespace".                                        items:                                          type: string                                        type: array                                      topologyKey:                                        description: This pod should be co-located                                          (affinity) or not co-located (anti-affinity)                                          with the pods matching the labelSelector                                          in the specified namespaces, where co-located                                          is defined as running on a node whose value                                          of the label with key topologyKey matches                                          that of any node on which any of the selected                                          pods is running. Empty topologyKey is not                                          allowed.                                        type: string                                    required:                                    - topologyKey                                    type: object                                  type: array                              type: object                            tolerations:                              description: The pod this Toleration is attached to                                tolerates any taint that matches the triple <key,value,effect>                                using the matching operator <operator>                              items:                                description: The pod this Toleration is attached to                                  tolerates any taint that matches the triple <key,value,effect>                                  using the matching operator <operator>.                                properties:                                  effect:                                    description: Effect indicates the taint effect                                      to match. Empty means match all taint effects.                                      When specified, allowed values are NoSchedule,                                      PreferNoSchedule and NoExecute.                                    type: string                                  key:                                    description: Key is the taint key that the toleration                                      applies to. Empty means match all taint keys.                                      If the key is empty, operator must be Exists;                                      this combination means to match all values and                                      all keys.                                    type: string                                  operator:                                    description: Operator represents a key's relationship                                      to the value. Valid operators are Exists and                                      Equal. Defaults to Equal. Exists is equivalent                                      to wildcard for value, so that a pod can tolerate                                      all taints of a particular category.                                    type: string                                  tolerationSeconds:                                    description: TolerationSeconds represents the                                      period of time the toleration (which must be                                      of effect NoExecute, otherwise this field is                                      ignored) tolerates the taint. By default, it                                      is not set, which means tolerate the taint forever                                      (do not evict). Zero and negative values will                                      be treated as 0 (evict immediately) by the system.                                    format: int64                                    type: integer                                  value:                                    description: Value is the taint value the toleration                                      matches to. If the operator is Exists, the value                                      should be empty, otherwise just a regular string.                                    type: string                                type: object                              type: array                            topologySpreadConstraints:                              description: TopologySpreadConstraint specifies how                                to spread matching pods among the given topology                              items:                                description: TopologySpreadConstraint specifies how                                  to spread matching pods among the given topology.                                properties:                                  labelSelector:                                    description: LabelSelector is used to find matching                                      pods. Pods that match this label selector are                                      counted to determine the number of pods in their                                      corresponding topology domain.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  matchLabelKeys:                                    description: "MatchLabelKeys is a set of pod label                                      keys to select the pods over which spreading                                      will be calculated. The keys are used to lookup                                      values from the incoming pod labels, those key-value                                      labels are ANDed with labelSelector to select                                      the group of existing pods over which spreading                                      will be calculated for the incoming pod. 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)."                                    items:                                      type: string                                    type: array                                    x-kubernetes-list-type: atomic                                  maxSkew:                                    description: 'MaxSkew describes the degree to                                      which pods may be unevenly distributed. When                                      `whenUnsatisfiable=DoNotSchedule`, it is the                                      maximum permitted difference between the number                                      of matching pods in the target topology and                                      the global minimum. The global minimum is the                                      minimum number of matching pods in an eligible                                      domain or zero if the number of eligible domains                                      is less than MinDomains. For example, in a 3-zone                                      cluster, MaxSkew is set to 1, and pods with                                      the same labelSelector spread as 2/2/1: In this                                      case, the global minimum is 1. | zone1 | zone2                                      | zone3 | |  P P  |  P P  |   P   | - if MaxSkew                                      is 1, incoming pod can only be scheduled to                                      zone3 to become 2/2/2; scheduling it onto zone1(zone2)                                      would make the ActualSkew(3-1) on zone1(zone2)                                      violate MaxSkew(1). - if MaxSkew is 2, incoming                                      pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,                                      it is used to give higher precedence to topologies                                      that satisfy it. It''s a required field. Default                                      value is 1 and 0 is not allowed.'                                    format: int32                                    type: integer                                  minDomains:                                    description: "MinDomains indicates a minimum number                                      of eligible domains. When the number of eligible                                      domains with matching topology keys is less                                      than minDomains, Pod Topology Spread treats                                      \"global minimum\" as 0, and then the calculation                                      of Skew is performed. And when the number of                                      eligible domains with matching topology keys                                      equals or greater than minDomains, this value                                      has no effect on scheduling. As a result, when                                      the number of eligible domains is less than                                      minDomains, scheduler won't schedule more than                                      maxSkew Pods to those domains. If value is nil,                                      the constraint behaves as if MinDomains is equal                                      to 1. Valid values are integers greater than                                      0. When value is not nil, WhenUnsatisfiable                                      must be DoNotSchedule. \n For example, in a                                      3-zone cluster, MaxSkew is set to 2, MinDomains                                      is set to 5 and pods with the same labelSelector                                      spread as 2/2/2: | zone1 | zone2 | zone3 | |                                      \ P P  |  P P  |  P P  | The number of domains                                      is less than 5(MinDomains), so \"global minimum\"                                      is treated as 0. In this situation, new pod                                      with the same labelSelector cannot be scheduled,                                      because computed skew will be 3(3 - 0) if new                                      Pod is scheduled to any of the three zones,                                      it will violate MaxSkew. \n This is a beta field                                      and requires the MinDomainsInPodTopologySpread                                      feature gate to be enabled (enabled by default)."                                    format: int32                                    type: integer                                  nodeAffinityPolicy:                                    description: "NodeAffinityPolicy indicates how                                      we will treat Pod's nodeAffinity/nodeSelector                                      when calculating pod topology spread skew. Options                                      are: - Honor: only nodes matching nodeAffinity/nodeSelector                                      are included in the calculations. - Ignore:                                      nodeAffinity/nodeSelector are ignored. All nodes                                      are included in the calculations. \n If this                                      value is nil, the behavior is equivalent to                                      the Honor policy. This is a beta-level feature                                      default enabled by the NodeInclusionPolicyInPodTopologySpread                                      feature flag."                                    type: string                                  nodeTaintsPolicy:                                    description: "NodeTaintsPolicy indicates how we                                      will treat node taints when calculating pod                                      topology spread skew. Options are: - Honor:                                      nodes without taints, along with tainted nodes                                      for which the incoming pod has a toleration,                                      are included. - Ignore: node taints are ignored.                                      All nodes are included. \n If this value is                                      nil, the behavior is equivalent to the Ignore                                      policy. This is a beta-level feature default                                      enabled by the NodeInclusionPolicyInPodTopologySpread                                      feature flag."                                    type: string                                  topologyKey:                                    description: TopologyKey is the key of node labels.                                      Nodes that have a label with this key and identical                                      values are considered to be in the same topology.                                      We consider each <key, value> as a "bucket",                                      and try to put balanced number of pods into                                      each bucket. We define a domain as a particular                                      instance of a topology. Also, we define an eligible                                      domain as a domain whose nodes meet the requirements                                      of nodeAffinityPolicy and nodeTaintsPolicy.                                      e.g. If TopologyKey is "kubernetes.io/hostname",                                      each Node is a domain of that topology. And,                                      if TopologyKey is "topology.kubernetes.io/zone",                                      each zone is a domain of that topology. It's                                      a required field.                                    type: string                                  whenUnsatisfiable:                                    description: 'WhenUnsatisfiable indicates how                                      to deal with a pod if it doesn''t satisfy the                                      spread constraint. - DoNotSchedule (default)                                      tells the scheduler not to schedule it. - ScheduleAnyway                                      tells the scheduler to schedule the pod in any                                      location, but giving higher precedence to topologies                                      that would help reduce the skew. A constraint                                      is considered "Unsatisfiable" for an incoming                                      pod if and only if every possible node assignment                                      for that pod would violate "MaxSkew" on some                                      topology. For example, in a 3-zone cluster,                                      MaxSkew is set to 1, and pods with the same                                      labelSelector spread as 3/1/1: | zone1 | zone2                                      | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable                                      is set to DoNotSchedule, incoming pod can only                                      be scheduled to zone2(zone3) to become 3/2/1(3/1/2)                                      as ActualSkew(2-1) on zone2(zone3) satisfies                                      MaxSkew(1). In other words, the cluster can                                      still be imbalanced, but scheduler won''t make                                      it *more* imbalanced. It''s a required field.'                                    type: string                                required:                                - maxSkew                                - topologyKey                                - whenUnsatisfiable                                type: object                              type: array                          type: object                          x-kubernetes-preserve-unknown-fields: true                        resources:                          description: ResourceRequirements describes the compute                            resource requirements.                          nullable: true                          properties:                            claims:                              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."                              items:                                description: ResourceClaim references one entry in                                  PodSpec.ResourceClaims.                                properties:                                  name:                                    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.                                    type: string                                required:                                - name                                type: object                              type: array                              x-kubernetes-list-map-keys:                              - name                              x-kubernetes-list-type: map                            limits:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Limits describes the maximum amount of                                compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                            requests:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: 'Requests describes the minimum amount                                of compute resources required. If Requests is omitted                                for a container, it defaults to Limits if that is                                explicitly specified, otherwise to an implementation-defined                                value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                              type: object                          type: object                          x-kubernetes-preserve-unknown-fields: true                        schedulerName:                          description: Scheduler name for OSD pod placement                          type: string                        tuneDeviceClass:                          description: TuneSlowDeviceClass Tune the OSD when running                            on a slow Device Class                          type: boolean                        tuneFastDeviceClass:                          description: TuneFastDeviceClass Tune the OSD when running                            on a fast Device Class                          type: boolean                        volumeClaimTemplates:                          description: VolumeClaimTemplates is a list of PVC templates                            for the underlying storage devices                          items:                            description: PersistentVolumeClaim is a user's request                              for and claim to a persistent volume                            properties:                              apiVersion:                                description: 'APIVersion defines the versioned schema                                  of this representation of an object. Servers should                                  convert recognized schemas to the latest internal                                  value, and may reject unrecognized values. More                                  info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                                type: string                              kind:                                description: 'Kind is a string value representing                                  the REST resource this object represents. Servers                                  may infer this from the endpoint the client submits                                  requests to. Cannot be updated. In CamelCase. More                                  info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                                type: string                              metadata:                                description: 'Standard object''s metadata. More info:                                  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                                properties:                                  annotations:                                    additionalProperties:                                      type: string                                    type: object                                    x-kubernetes-preserve-unknown-fields: true                                  finalizers:                                    items:                                      type: string                                    type: array                                  labels:                                    additionalProperties:                                      type: string                                    type: object                                  name:                                    type: string                                  namespace:                                    type: string                                type: object                              spec:                                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'                                properties:                                  accessModes:                                    description: 'accessModes contains the desired                                      access modes the volume should have. More info:                                      https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                                    items:                                      type: string                                    type: array                                  dataSource:                                    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.'                                    properties:                                      apiGroup:                                        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.                                        type: string                                      kind:                                        description: Kind is the type of resource                                          being referenced                                        type: string                                      name:                                        description: Name is the name of resource                                          being referenced                                        type: string                                    required:                                    - kind                                    - name                                    type: object                                    x-kubernetes-map-type: atomic                                  dataSourceRef:                                    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.'                                    properties:                                      apiGroup:                                        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.                                        type: string                                      kind:                                        description: Kind is the type of resource                                          being referenced                                        type: string                                      name:                                        description: Name is the name of resource                                          being referenced                                        type: string                                      namespace:                                        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.                                        type: string                                    required:                                    - kind                                    - name                                    type: object                                  resources:                                    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'                                    properties:                                      claims:                                        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."                                        items:                                          description: ResourceClaim references one                                            entry in PodSpec.ResourceClaims.                                          properties:                                            name:                                              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.                                              type: string                                          required:                                          - name                                          type: object                                        type: array                                        x-kubernetes-list-map-keys:                                        - name                                        x-kubernetes-list-type: map                                      limits:                                        additionalProperties:                                          anyOf:                                          - type: integer                                          - type: string                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                          x-kubernetes-int-or-string: true                                        description: 'Limits describes the maximum                                          amount of compute resources allowed. More                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                        type: object                                      requests:                                        additionalProperties:                                          anyOf:                                          - type: integer                                          - type: string                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                          x-kubernetes-int-or-string: true                                        description: 'Requests describes the minimum                                          amount of compute resources required. If                                          Requests is omitted for a container, it                                          defaults to Limits if that is explicitly                                          specified, otherwise to an implementation-defined                                          value. Requests cannot exceed Limits. More                                          info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                        type: object                                    type: object                                  selector:                                    description: selector is a label query over volumes                                      to consider for binding.                                    properties:                                      matchExpressions:                                        description: matchExpressions is a list of                                          label selector requirements. The requirements                                          are ANDed.                                        items:                                          description: A label selector requirement                                            is a selector that contains values, a                                            key, and an operator that relates the                                            key and values.                                          properties:                                            key:                                              description: key is the label key that                                                the selector applies to.                                              type: string                                            operator:                                              description: operator represents a key's                                                relationship to a set of values. Valid                                                operators are In, NotIn, Exists and                                                DoesNotExist.                                              type: string                                            values:                                              description: values is an array of string                                                values. If the operator is In or NotIn,                                                the values array must be non-empty.                                                If the operator is Exists or DoesNotExist,                                                the values array must be empty. This                                                array is replaced during a strategic                                                merge patch.                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        description: matchLabels is a map of {key,value}                                          pairs. A single {key,value} in the matchLabels                                          map is equivalent to an element of matchExpressions,                                          whose key field is "key", the operator is                                          "In", and the values array contains only                                          "value". The requirements are ANDed.                                        type: object                                    type: object                                    x-kubernetes-map-type: atomic                                  storageClassName:                                    description: 'storageClassName is the name of                                      the StorageClass required by the claim. More                                      info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                                    type: string                                  volumeMode:                                    description: volumeMode defines what type of volume                                      is required by the claim. Value of Filesystem                                      is implied when not included in claim spec.                                    type: string                                  volumeName:                                    description: volumeName is the binding reference                                      to the PersistentVolume backing this claim.                                    type: string                                type: object                              status:                                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'                                properties:                                  accessModes:                                    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'                                    items:                                      type: string                                    type: array                                  allocatedResourceStatuses:                                    additionalProperties:                                      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.                                      type: string                                    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."                                    type: object                                    x-kubernetes-map-type: granular                                  allocatedResources:                                    additionalProperties:                                      anyOf:                                      - type: integer                                      - type: string                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                      x-kubernetes-int-or-string: true                                    description: "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."                                    type: object                                  capacity:                                    additionalProperties:                                      anyOf:                                      - type: integer                                      - type: string                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                      x-kubernetes-int-or-string: true                                    description: capacity represents the actual resources                                      of the underlying volume.                                    type: object                                  conditions:                                    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'.                                    items:                                      description: PersistentVolumeClaimCondition                                        contains details about state of pvc                                      properties:                                        lastProbeTime:                                          description: lastProbeTime is the time we                                            probed the condition.                                          format: date-time                                          type: string                                        lastTransitionTime:                                          description: lastTransitionTime is the time                                            the condition transitioned from one status                                            to another.                                          format: date-time                                          type: string                                        message:                                          description: message is the human-readable                                            message indicating details about last                                            transition.                                          type: string                                        reason:                                          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.                                          type: string                                        status:                                          type: string                                        type:                                          description: PersistentVolumeClaimConditionType                                            is a valid value of PersistentVolumeClaimCondition.Type                                          type: string                                      required:                                      - status                                      - type                                      type: object                                    type: array                                  phase:                                    description: phase represents the current phase                                      of PersistentVolumeClaim.                                    type: string                                type: object                            type: object                          type: array                      required:                      - count                      - name                      - volumeClaimTemplates                      type: object                    nullable: true                    type: array                  store:                    description: OSDStore is the backend storage type used for creating                      the OSDs                    properties:                      type:                        description: Type of backend storage to be used while creating                          OSDs. If empty, then bluestore will be used                        enum:                        - bluestore                        - bluestore-rdr                        type: string                      updateStore:                        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                        pattern: ^$|^yes-really-update-store$                        type: string                    type: object                  useAllDevices:                    description: Whether to consume all the storage devices found                      on a machine                    type: boolean                  useAllNodes:                    type: boolean                  volumeClaimTemplates:                    description: PersistentVolumeClaims to use as storage                    items:                      description: PersistentVolumeClaim is a user's request for and                        claim to a persistent volume                      properties:                        apiVersion:                          description: 'APIVersion defines the versioned schema of                            this representation of an object. Servers should convert                            recognized schemas to the latest internal value, and may                            reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'                          type: string                        kind:                          description: 'Kind is a string value representing the REST                            resource this object represents. Servers may infer this                            from the endpoint the client submits requests to. Cannot                            be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'                          type: string                        metadata:                          description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'                          properties:                            annotations:                              additionalProperties:                                type: string                              type: object                            finalizers:                              items:                                type: string                              type: array                            labels:                              additionalProperties:                                type: string                              type: object                            name:                              type: string                            namespace:                              type: string                          type: object                        spec:                          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'                          properties:                            accessModes:                              description: 'accessModes contains the desired access                                modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'                              items:                                type: string                              type: array                            dataSource:                              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.'                              properties:                                apiGroup:                                  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.                                  type: string                                kind:                                  description: Kind is the type of resource being                                    referenced                                  type: string                                name:                                  description: Name is the name of resource being                                    referenced                                  type: string                              required:                              - kind                              - name                              type: object                              x-kubernetes-map-type: atomic                            dataSourceRef:                              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.'                              properties:                                apiGroup:                                  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.                                  type: string                                kind:                                  description: Kind is the type of resource being                                    referenced                                  type: string                                name:                                  description: Name is the name of resource being                                    referenced                                  type: string                                namespace:                                  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.                                  type: string                              required:                              - kind                              - name                              type: object                            resources:                              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'                              properties:                                claims:                                  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."                                  items:                                    description: ResourceClaim references one entry                                      in PodSpec.ResourceClaims.                                    properties:                                      name:                                        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.                                        type: string                                    required:                                    - name                                    type: object                                  type: array                                  x-kubernetes-list-map-keys:                                  - name                                  x-kubernetes-list-type: map                                limits:                                  additionalProperties:                                    anyOf:                                    - type: integer                                    - type: string                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                    x-kubernetes-int-or-string: true                                  description: 'Limits describes the maximum amount                                    of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                  type: object                                requests:                                  additionalProperties:                                    anyOf:                                    - type: integer                                    - type: string                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                    x-kubernetes-int-or-string: true                                  description: 'Requests describes the minimum amount                                    of compute resources required. If Requests is                                    omitted for a container, it defaults to Limits                                    if that is explicitly specified, otherwise to                                    an implementation-defined value. Requests cannot                                    exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'                                  type: object                              type: object                            selector:                              description: selector is a label query over volumes                                to consider for binding.                              properties:                                matchExpressions:                                  description: matchExpressions is a list of label                                    selector requirements. The requirements are ANDed.                                  items:                                    description: A label selector requirement is a                                      selector that contains values, a key, and an                                      operator that relates the key and values.                                    properties:                                      key:                                        description: key is the label key that the                                          selector applies to.                                        type: string                                      operator:                                        description: operator represents a key's relationship                                          to a set of values. Valid operators are                                          In, NotIn, Exists and DoesNotExist.                                        type: string                                      values:                                        description: values is an array of string                                          values. If the operator is In or NotIn,                                          the values array must be non-empty. If the                                          operator is Exists or DoesNotExist, the                                          values array must be empty. This array is                                          replaced during a strategic merge patch.                                        items:                                          type: string                                        type: array                                    required:                                    - key                                    - operator                                    type: object                                  type: array                                matchLabels:                                  additionalProperties:                                    type: string                                  description: matchLabels is a map of {key,value}                                    pairs. A single {key,value} in the matchLabels                                    map is equivalent to an element of matchExpressions,                                    whose key field is "key", the operator is "In",                                    and the values array contains only "value". The                                    requirements are ANDed.                                  type: object                              type: object                              x-kubernetes-map-type: atomic                            storageClassName:                              description: 'storageClassName is the name of the StorageClass                                required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'                              type: string                            volumeMode:                              description: volumeMode defines what type of volume                                is required by the claim. Value of Filesystem is implied                                when not included in claim spec.                              type: string                            volumeName:                              description: volumeName is the binding reference to                                the PersistentVolume backing this claim.                              type: string                          type: object                        status:                          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'                          properties:                            accessModes:                              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'                              items:                                type: string                              type: array                            allocatedResourceStatuses:                              additionalProperties:                                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.                                type: string                              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."                              type: object                              x-kubernetes-map-type: granular                            allocatedResources:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: "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."                              type: object                            capacity:                              additionalProperties:                                anyOf:                                - type: integer                                - type: string                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$                                x-kubernetes-int-or-string: true                              description: capacity represents the actual resources                                of the underlying volume.                              type: object                            conditions:                              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'.                              items:                                description: PersistentVolumeClaimCondition contains                                  details about state of pvc                                properties:                                  lastProbeTime:                                    description: lastProbeTime is the time we probed                                      the condition.                                    format: date-time                                    type: string                                  lastTransitionTime:                                    description: lastTransitionTime is the time the                                      condition transitioned from one status to another.                                    format: date-time                                    type: string                                  message:                                    description: message is the human-readable message                                      indicating details about last transition.                                    type: string                                  reason:                                    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.                                    type: string                                  status:                                    type: string                                  type:                                    description: PersistentVolumeClaimConditionType                                      is a valid value of PersistentVolumeClaimCondition.Type                                    type: string                                required:                                - status                                - type                                type: object                              type: array                            phase:                              description: phase represents the current phase of PersistentVolumeClaim.                              type: string                          type: object                      type: object                    type: array                type: object              waitTimeoutForHealthyOSDInMinutes:                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.                format: int64                type: integer            type: object          status:            description: ClusterStatus represents the status of a Ceph cluster            nullable: true            properties:              ceph:                description: CephStatus is the details health of a Ceph Cluster                properties:                  capacity:                    description: Capacity is the capacity information of a Ceph Cluster                    properties:                      bytesAvailable:                        format: int64                        type: integer                      bytesTotal:                        format: int64                        type: integer                      bytesUsed:                        format: int64                        type: integer                      lastUpdated:                        type: string                    type: object                  details:                    additionalProperties:                      description: CephHealthMessage represents the health message                        of a Ceph Cluster                      properties:                        message:                          type: string                        severity:                          type: string                      required:                      - message                      - severity                      type: object                    type: object                  fsid:                    type: string                  health:                    type: string                  lastChanged:                    type: string                  lastChecked:                    type: string                  previousHealth:                    type: string                  versions:                    description: CephDaemonsVersions show the current ceph version                      for different ceph daemons                    properties:                      cephfs-mirror:                        additionalProperties:                          type: integer                        description: CephFSMirror shows CephFSMirror Ceph version                        type: object                      mds:                        additionalProperties:                          type: integer                        description: Mds shows Mds Ceph version                        type: object                      mgr:                        additionalProperties:                          type: integer                        description: Mgr shows Mgr Ceph version                        type: object                      mon:                        additionalProperties:                          type: integer                        description: Mon shows Mon Ceph version                        type: object                      osd:                        additionalProperties:                          type: integer                        description: Osd shows Osd Ceph version                        type: object                      overall:                        additionalProperties:                          type: integer                        description: Overall shows overall Ceph version                        type: object                      rbd-mirror:                        additionalProperties:                          type: integer                        description: RbdMirror shows RbdMirror Ceph version                        type: object                      rgw:                        additionalProperties:                          type: integer                        description: Rgw shows Rgw Ceph version                        type: object                    type: object                type: object              conditions:                items:                  description: Condition represents a status condition on any Rook-Ceph                    Custom Resource.                  properties:                    lastHeartbeatTime:                      format: date-time                      type: string                    lastTransitionTime:                      format: date-time                      type: string                    message:                      type: string                    reason:                      description: ConditionReason is a reason for a condition                      type: string                    status:                      type: string                    type:                      description: ConditionType represent a resource's status                      type: string                  type: object                type: array              message:                type: string              observedGeneration:                description: ObservedGeneration is the latest generation observed                  by the controller.                format: int64                type: integer              phase:                description: ConditionType represent a resource's status                type: string              state:                description: ClusterState represents the state of a Ceph Cluster                type: string              storage:                description: CephStorage represents flavors of Ceph Cluster Storage                properties:                  deviceClasses:                    items:                      description: DeviceClasses represents device classes of a Ceph                        Cluster                      properties:                        name:                          type: string                      type: object                    type: array                  osd:                    description: OSDStatus represents OSD status of the ceph Cluster                    properties:                      storeType:                        additionalProperties:                          type: integer                        description: StoreType is a mapping between the OSD backend                          stores and number of OSDs using these stores                        type: object                    type: object                type: object              version:                description: ClusterVersion represents the version of a Ceph Cluster                properties:                  image:                    type: string                  version:                    type: string                type: object            type: object            x-kubernetes-preserve-unknown-fields: true        required:        - metadata        - spec        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: CephCluster    listKind: CephClusterList    plural: cephclusters    singular: cephcluster  conditions:  - lastTransitionTime: "2023-09-08T15:16:44Z"    message: no conflicts found    reason: NoConflicts    status: "True"    type: NamesAccepted  - lastTransitionTime: "2023-09-08T15:16:44Z"    message: the initial names have been accepted    reason: InitialNamesAccepted    status: "True"    type: Established  storedVersions:  - v1
 |