operator.yaml 1.1 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503
  1. ---
  2. # Source: rook-ceph/templates/cluster-rbac.yaml
  3. # Service account for Ceph OSDs
  4. apiVersion: v1
  5. kind: ServiceAccount
  6. metadata:
  7. name: rook-ceph-osd
  8. namespace: rook-ceph # namespace:cluster
  9. labels:
  10. operator: rook
  11. storage-backend: ceph
  12. app.kubernetes.io/part-of: rook-ceph-operator
  13. app.kubernetes.io/managed-by: Helm
  14. app.kubernetes.io/created-by: helm
  15. helm.sh/chart: "rook-ceph-v1.12.5"
  16. # imagePullSecrets:
  17. # - name: my-registry-secret
  18. ---
  19. # Source: rook-ceph/templates/cluster-rbac.yaml
  20. # Service account for Ceph mgrs
  21. apiVersion: v1
  22. kind: ServiceAccount
  23. metadata:
  24. name: rook-ceph-mgr
  25. namespace: rook-ceph # namespace:cluster
  26. labels:
  27. operator: rook
  28. storage-backend: ceph
  29. app.kubernetes.io/part-of: rook-ceph-operator
  30. app.kubernetes.io/managed-by: Helm
  31. app.kubernetes.io/created-by: helm
  32. helm.sh/chart: "rook-ceph-v1.12.5"
  33. # imagePullSecrets:
  34. # - name: my-registry-secret
  35. ---
  36. # Source: rook-ceph/templates/cluster-rbac.yaml
  37. # Service account for the job that reports the Ceph version in an image
  38. apiVersion: v1
  39. kind: ServiceAccount
  40. metadata:
  41. name: rook-ceph-cmd-reporter
  42. namespace: rook-ceph # namespace:cluster
  43. labels:
  44. operator: rook
  45. storage-backend: ceph
  46. app.kubernetes.io/part-of: rook-ceph-operator
  47. app.kubernetes.io/managed-by: Helm
  48. app.kubernetes.io/created-by: helm
  49. helm.sh/chart: "rook-ceph-v1.12.5"
  50. # imagePullSecrets:
  51. # - name: my-registry-secret
  52. ---
  53. # Source: rook-ceph/templates/cluster-rbac.yaml
  54. # Service account for job that purges OSDs from a Rook-Ceph cluster
  55. apiVersion: v1
  56. kind: ServiceAccount
  57. metadata:
  58. name: rook-ceph-purge-osd
  59. namespace: rook-ceph # namespace:cluster
  60. # imagePullSecrets:
  61. # - name: my-registry-secret
  62. ---
  63. # Source: rook-ceph/templates/cluster-rbac.yaml
  64. # Service account for RGW server
  65. apiVersion: v1
  66. kind: ServiceAccount
  67. metadata:
  68. name: rook-ceph-rgw
  69. namespace: rook-ceph # namespace:cluster
  70. labels:
  71. operator: rook
  72. storage-backend: ceph
  73. app.kubernetes.io/part-of: rook-ceph-operator
  74. app.kubernetes.io/managed-by: Helm
  75. app.kubernetes.io/created-by: helm
  76. helm.sh/chart: "rook-ceph-v1.12.5"
  77. # imagePullSecrets:
  78. # - name: my-registry-secret
  79. ---
  80. # Source: rook-ceph/templates/serviceaccount.yaml
  81. # Service account for the Rook-Ceph operator
  82. apiVersion: v1
  83. kind: ServiceAccount
  84. metadata:
  85. name: rook-ceph-system
  86. namespace: rook-ceph # namespace:operator
  87. labels:
  88. operator: rook
  89. storage-backend: ceph
  90. app.kubernetes.io/part-of: rook-ceph-operator
  91. app.kubernetes.io/managed-by: Helm
  92. app.kubernetes.io/created-by: helm
  93. helm.sh/chart: "rook-ceph-v1.12.5"
  94. # imagePullSecrets:
  95. # - name: my-registry-secret
  96. ---
  97. # Source: rook-ceph/templates/serviceaccount.yaml
  98. # Service account for the CephFS CSI driver
  99. apiVersion: v1
  100. kind: ServiceAccount
  101. metadata:
  102. name: rook-csi-cephfs-plugin-sa
  103. namespace: rook-ceph # namespace:operator
  104. # imagePullSecrets:
  105. # - name: my-registry-secret
  106. ---
  107. # Source: rook-ceph/templates/serviceaccount.yaml
  108. # Service account for the NFS CSI driver
  109. apiVersion: v1
  110. kind: ServiceAccount
  111. metadata:
  112. name: rook-csi-nfs-plugin-sa
  113. namespace: rook-ceph # namespace:operator
  114. # imagePullSecrets:
  115. # - name: my-registry-secret
  116. ---
  117. # Source: rook-ceph/templates/serviceaccount.yaml
  118. # Service account for the NFS CSI provisioner
  119. apiVersion: v1
  120. kind: ServiceAccount
  121. metadata:
  122. name: rook-csi-nfs-provisioner-sa
  123. namespace: rook-ceph # namespace:operator
  124. # imagePullSecrets:
  125. # - name: my-registry-secret
  126. ---
  127. # Source: rook-ceph/templates/serviceaccount.yaml
  128. # Service account for the CephFS CSI provisioner
  129. apiVersion: v1
  130. kind: ServiceAccount
  131. metadata:
  132. name: rook-csi-cephfs-provisioner-sa
  133. namespace: rook-ceph # namespace:operator
  134. # imagePullSecrets:
  135. # - name: my-registry-secret
  136. ---
  137. # Source: rook-ceph/templates/serviceaccount.yaml
  138. # Service account for the RBD CSI driver
  139. apiVersion: v1
  140. kind: ServiceAccount
  141. metadata:
  142. name: rook-csi-rbd-plugin-sa
  143. namespace: rook-ceph # namespace:operator
  144. # imagePullSecrets:
  145. # - name: my-registry-secret
  146. ---
  147. # Source: rook-ceph/templates/serviceaccount.yaml
  148. # Service account for the RBD CSI provisioner
  149. apiVersion: v1
  150. kind: ServiceAccount
  151. metadata:
  152. name: rook-csi-rbd-provisioner-sa
  153. namespace: rook-ceph # namespace:operator
  154. # imagePullSecrets:
  155. # - name: my-registry-secret
  156. ---
  157. # Source: rook-ceph/templates/serviceaccount.yaml
  158. # Service account for Ceph COSI driver
  159. apiVersion: v1
  160. kind: ServiceAccount
  161. metadata:
  162. name: objectstorage-provisioner
  163. namespace: rook-ceph # namespace:operator
  164. labels:
  165. app.kubernetes.io/part-of: container-object-storage-interface
  166. app.kubernetes.io/component: driver-ceph
  167. app.kubernetes.io/name: cosi-driver-ceph
  168. # imagePullSecrets:
  169. # - name: my-registry-secret
  170. ---
  171. # Source: rook-ceph/templates/configmap.yaml
  172. # Operator settings that can be updated without an operator restart
  173. # Operator settings that require an operator restart are found in the operator env vars
  174. kind: ConfigMap
  175. apiVersion: v1
  176. metadata:
  177. name: rook-ceph-operator-config
  178. data:
  179. ROOK_LOG_LEVEL: "INFO"
  180. ROOK_CEPH_COMMANDS_TIMEOUT_SECONDS: "15"
  181. ROOK_OBC_WATCH_OPERATOR_NAMESPACE: "true"
  182. ROOK_CEPH_ALLOW_LOOP_DEVICES: "false"
  183. ROOK_DISABLE_ADMISSION_CONTROLLER: "true"
  184. ROOK_ENABLE_DISCOVERY_DAEMON: "false"
  185. ROOK_CSI_ENABLE_RBD: "false"
  186. ROOK_CSI_ENABLE_CEPHFS: "true"
  187. CSI_ENABLE_CEPHFS_SNAPSHOTTER: "true"
  188. CSI_ENABLE_NFS_SNAPSHOTTER: "true"
  189. CSI_ENABLE_RBD_SNAPSHOTTER: "true"
  190. CSI_PLUGIN_ENABLE_SELINUX_HOST_MOUNT: "false"
  191. CSI_ENABLE_ENCRYPTION: "false"
  192. CSI_ENABLE_OMAP_GENERATOR: "false"
  193. CSI_ENABLE_HOST_NETWORK: "true"
  194. CSI_ENABLE_METADATA: "false"
  195. CSI_PLUGIN_PRIORITY_CLASSNAME: "system-node-critical"
  196. CSI_PROVISIONER_PRIORITY_CLASSNAME: "system-cluster-critical"
  197. CSI_RBD_FSGROUPPOLICY: "File"
  198. CSI_CEPHFS_FSGROUPPOLICY: "File"
  199. CSI_NFS_FSGROUPPOLICY: "File"
  200. ROOK_CSI_ENABLE_GRPC_METRICS: "false"
  201. ROOK_CSI_CEPH_IMAGE: "quay.io/cephcsi/cephcsi:v3.9.0"
  202. ROOK_CSI_REGISTRAR_IMAGE: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0"
  203. ROOK_CSI_PROVISIONER_IMAGE: "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0"
  204. ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2"
  205. ROOK_CSI_ATTACHER_IMAGE: "registry.k8s.io/sig-storage/csi-attacher:v4.3.0"
  206. ROOK_CSI_RESIZER_IMAGE: "registry.k8s.io/sig-storage/csi-resizer:v1.8.0"
  207. ROOK_CSI_IMAGE_PULL_POLICY: "IfNotPresent"
  208. CSI_ENABLE_CSIADDONS: "false"
  209. ROOK_CSIADDONS_IMAGE: "quay.io/csiaddons/k8s-sidecar:v0.7.0"
  210. CSI_ENABLE_TOPOLOGY: "false"
  211. CSI_ENABLE_READ_AFFINITY : "false"
  212. ROOK_CSI_ENABLE_NFS: "true"
  213. CSI_FORCE_CEPHFS_KERNEL_CLIENT: "true"
  214. CSI_GRPC_TIMEOUT_SECONDS: "150"
  215. CSI_PROVISIONER_REPLICAS: "2"
  216. CSI_RBD_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-resizer\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-attacher\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-snapshotter\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-rbdplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : csi-omap-generator\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  217. CSI_RBD_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-rbdplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  218. CSI_CEPHFS_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-resizer\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-attacher\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-snapshotter\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-cephfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  219. CSI_CEPHFS_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-cephfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  220. CSI_NFS_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-nfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : csi-attacher\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n"
  221. CSI_NFS_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-nfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n"
  222. CSI_CEPHFS_ATTACH_REQUIRED: "true"
  223. CSI_RBD_ATTACH_REQUIRED: "true"
  224. CSI_NFS_ATTACH_REQUIRED: "true"
  225. ---
  226. # Source: rook-ceph/templates/resources.yaml
  227. apiVersion: apiextensions.k8s.io/v1
  228. kind: CustomResourceDefinition
  229. metadata:
  230. annotations:
  231. controller-gen.kubebuilder.io/version: v0.11.3
  232. helm.sh/resource-policy: keep
  233. creationTimestamp: null
  234. name: cephblockpoolradosnamespaces.ceph.rook.io
  235. spec:
  236. group: ceph.rook.io
  237. names:
  238. kind: CephBlockPoolRadosNamespace
  239. listKind: CephBlockPoolRadosNamespaceList
  240. plural: cephblockpoolradosnamespaces
  241. singular: cephblockpoolradosnamespace
  242. scope: Namespaced
  243. versions:
  244. - name: v1
  245. schema:
  246. openAPIV3Schema:
  247. description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
  248. properties:
  249. apiVersion:
  250. 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'
  251. type: string
  252. kind:
  253. 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'
  254. type: string
  255. metadata:
  256. type: object
  257. spec:
  258. description: Spec represents the specification of a Ceph BlockPool Rados Namespace
  259. properties:
  260. blockPoolName:
  261. description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR.
  262. type: string
  263. required:
  264. - blockPoolName
  265. type: object
  266. status:
  267. description: Status represents the status of a CephBlockPool Rados Namespace
  268. properties:
  269. info:
  270. additionalProperties:
  271. type: string
  272. nullable: true
  273. type: object
  274. phase:
  275. description: ConditionType represent a resource's status
  276. type: string
  277. type: object
  278. x-kubernetes-preserve-unknown-fields: true
  279. required:
  280. - metadata
  281. - spec
  282. type: object
  283. served: true
  284. storage: true
  285. subresources:
  286. status: {}
  287. ---
  288. # Source: rook-ceph/templates/resources.yaml
  289. apiVersion: apiextensions.k8s.io/v1
  290. kind: CustomResourceDefinition
  291. metadata:
  292. annotations:
  293. controller-gen.kubebuilder.io/version: v0.11.3
  294. helm.sh/resource-policy: keep
  295. creationTimestamp: null
  296. name: cephblockpools.ceph.rook.io
  297. spec:
  298. group: ceph.rook.io
  299. names:
  300. kind: CephBlockPool
  301. listKind: CephBlockPoolList
  302. plural: cephblockpools
  303. singular: cephblockpool
  304. scope: Namespaced
  305. versions:
  306. - additionalPrinterColumns:
  307. - jsonPath: .status.phase
  308. name: Phase
  309. type: string
  310. name: v1
  311. schema:
  312. openAPIV3Schema:
  313. description: CephBlockPool represents a Ceph Storage Pool
  314. properties:
  315. apiVersion:
  316. 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'
  317. type: string
  318. kind:
  319. 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'
  320. type: string
  321. metadata:
  322. type: object
  323. spec:
  324. description: NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.
  325. properties:
  326. compressionMode:
  327. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  328. enum:
  329. - none
  330. - passive
  331. - aggressive
  332. - force
  333. - ""
  334. nullable: true
  335. type: string
  336. crushRoot:
  337. description: The root of the crush hierarchy utilized by the pool
  338. nullable: true
  339. type: string
  340. deviceClass:
  341. description: The device class the OSD should set to for use in the pool
  342. nullable: true
  343. type: string
  344. enableRBDStats:
  345. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  346. type: boolean
  347. erasureCoded:
  348. description: The erasure code settings
  349. properties:
  350. algorithm:
  351. description: The algorithm for erasure coding
  352. type: string
  353. codingChunks:
  354. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  355. minimum: 0
  356. type: integer
  357. dataChunks:
  358. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  359. minimum: 0
  360. type: integer
  361. required:
  362. - codingChunks
  363. - dataChunks
  364. type: object
  365. failureDomain:
  366. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  367. type: string
  368. mirroring:
  369. description: The mirroring settings
  370. properties:
  371. enabled:
  372. description: Enabled whether this pool is mirrored or not
  373. type: boolean
  374. mode:
  375. description: 'Mode is the mirroring mode: either pool or image'
  376. type: string
  377. peers:
  378. description: Peers represents the peers spec
  379. nullable: true
  380. properties:
  381. secretNames:
  382. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  383. items:
  384. type: string
  385. type: array
  386. type: object
  387. snapshotSchedules:
  388. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  389. items:
  390. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  391. properties:
  392. interval:
  393. description: Interval represent the periodicity of the snapshot.
  394. type: string
  395. path:
  396. description: Path is the path to snapshot, only valid for CephFS
  397. type: string
  398. startTime:
  399. description: StartTime indicates when to start the snapshot
  400. type: string
  401. type: object
  402. type: array
  403. type: object
  404. name:
  405. description: The desired name of the pool if different from the CephBlockPool CR name.
  406. enum:
  407. - device_health_metrics
  408. - .nfs
  409. - .mgr
  410. type: string
  411. parameters:
  412. additionalProperties:
  413. type: string
  414. description: Parameters is a list of properties to enable on a given pool
  415. nullable: true
  416. type: object
  417. x-kubernetes-preserve-unknown-fields: true
  418. quotas:
  419. description: The quota settings
  420. nullable: true
  421. properties:
  422. maxBytes:
  423. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  424. format: int64
  425. type: integer
  426. maxObjects:
  427. description: MaxObjects represents the quota in objects
  428. format: int64
  429. type: integer
  430. maxSize:
  431. description: MaxSize represents the quota in bytes as a string
  432. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  433. type: string
  434. type: object
  435. replicated:
  436. description: The replication settings
  437. properties:
  438. hybridStorage:
  439. description: HybridStorage represents hybrid storage tier settings
  440. nullable: true
  441. properties:
  442. primaryDeviceClass:
  443. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  444. minLength: 1
  445. type: string
  446. secondaryDeviceClass:
  447. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  448. minLength: 1
  449. type: string
  450. required:
  451. - primaryDeviceClass
  452. - secondaryDeviceClass
  453. type: object
  454. replicasPerFailureDomain:
  455. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  456. minimum: 1
  457. type: integer
  458. requireSafeReplicaSize:
  459. description: RequireSafeReplicaSize if false allows you to set replica 1
  460. type: boolean
  461. size:
  462. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  463. minimum: 0
  464. type: integer
  465. subFailureDomain:
  466. description: SubFailureDomain the name of the sub-failure domain
  467. type: string
  468. targetSizeRatio:
  469. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  470. type: number
  471. required:
  472. - size
  473. type: object
  474. statusCheck:
  475. description: The mirroring statusCheck
  476. properties:
  477. mirror:
  478. description: HealthCheckSpec represents the health check of an object store bucket
  479. nullable: true
  480. properties:
  481. disabled:
  482. type: boolean
  483. interval:
  484. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  485. type: string
  486. timeout:
  487. type: string
  488. type: object
  489. type: object
  490. x-kubernetes-preserve-unknown-fields: true
  491. type: object
  492. status:
  493. description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
  494. properties:
  495. conditions:
  496. items:
  497. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  498. properties:
  499. lastHeartbeatTime:
  500. format: date-time
  501. type: string
  502. lastTransitionTime:
  503. format: date-time
  504. type: string
  505. message:
  506. type: string
  507. reason:
  508. description: ConditionReason is a reason for a condition
  509. type: string
  510. status:
  511. type: string
  512. type:
  513. description: ConditionType represent a resource's status
  514. type: string
  515. type: object
  516. type: array
  517. info:
  518. additionalProperties:
  519. type: string
  520. nullable: true
  521. type: object
  522. mirroringInfo:
  523. description: MirroringInfoSpec is the status of the pool mirroring
  524. properties:
  525. details:
  526. type: string
  527. lastChanged:
  528. type: string
  529. lastChecked:
  530. type: string
  531. mode:
  532. description: Mode is the mirroring mode
  533. type: string
  534. peers:
  535. description: Peers are the list of peer sites connected to that cluster
  536. items:
  537. description: PeersSpec contains peer details
  538. properties:
  539. client_name:
  540. description: ClientName is the CephX user used to connect to the peer
  541. type: string
  542. direction:
  543. description: Direction is the peer mirroring direction
  544. type: string
  545. mirror_uuid:
  546. description: MirrorUUID is the mirror UUID
  547. type: string
  548. site_name:
  549. description: SiteName is the current site name
  550. type: string
  551. uuid:
  552. description: UUID is the peer UUID
  553. type: string
  554. type: object
  555. type: array
  556. site_name:
  557. description: SiteName is the current site name
  558. type: string
  559. type: object
  560. mirroringStatus:
  561. description: MirroringStatusSpec is the status of the pool mirroring
  562. properties:
  563. details:
  564. description: Details contains potential status errors
  565. type: string
  566. lastChanged:
  567. description: LastChanged is the last time time the status last changed
  568. type: string
  569. lastChecked:
  570. description: LastChecked is the last time time the status was checked
  571. type: string
  572. summary:
  573. description: Summary is the mirroring status summary
  574. properties:
  575. daemon_health:
  576. description: DaemonHealth is the health of the mirroring daemon
  577. type: string
  578. health:
  579. description: Health is the mirroring health
  580. type: string
  581. image_health:
  582. description: ImageHealth is the health of the mirrored image
  583. type: string
  584. states:
  585. description: States is the various state for all mirrored images
  586. nullable: true
  587. properties:
  588. error:
  589. description: Error is when the mirroring state is errored
  590. type: integer
  591. replaying:
  592. description: Replaying is when the replay of the mirroring journal is on-going
  593. type: integer
  594. starting_replay:
  595. description: StartingReplay is when the replay of the mirroring journal starts
  596. type: integer
  597. stopped:
  598. description: Stopped is when the mirroring state is stopped
  599. type: integer
  600. stopping_replay:
  601. description: StopReplaying is when the replay of the mirroring journal stops
  602. type: integer
  603. syncing:
  604. description: Syncing is when the image is syncing
  605. type: integer
  606. unknown:
  607. description: Unknown is when the mirroring state is unknown
  608. type: integer
  609. type: object
  610. type: object
  611. type: object
  612. observedGeneration:
  613. description: ObservedGeneration is the latest generation observed by the controller.
  614. format: int64
  615. type: integer
  616. phase:
  617. description: ConditionType represent a resource's status
  618. type: string
  619. snapshotScheduleStatus:
  620. description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
  621. properties:
  622. details:
  623. description: Details contains potential status errors
  624. type: string
  625. lastChanged:
  626. description: LastChanged is the last time time the status last changed
  627. type: string
  628. lastChecked:
  629. description: LastChecked is the last time time the status was checked
  630. type: string
  631. snapshotSchedules:
  632. description: SnapshotSchedules is the list of snapshots scheduled
  633. items:
  634. description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  635. properties:
  636. image:
  637. description: Image is the mirrored image
  638. type: string
  639. items:
  640. description: Items is the list schedules times for a given snapshot
  641. items:
  642. description: SnapshotSchedule is a schedule
  643. properties:
  644. interval:
  645. description: Interval is the interval in which snapshots will be taken
  646. type: string
  647. start_time:
  648. description: StartTime is the snapshot starting time
  649. type: string
  650. type: object
  651. type: array
  652. namespace:
  653. description: Namespace is the RADOS namespace the image is part of
  654. type: string
  655. pool:
  656. description: Pool is the pool name
  657. type: string
  658. type: object
  659. nullable: true
  660. type: array
  661. type: object
  662. type: object
  663. x-kubernetes-preserve-unknown-fields: true
  664. required:
  665. - metadata
  666. - spec
  667. type: object
  668. served: true
  669. storage: true
  670. subresources:
  671. status: {}
  672. ---
  673. # Source: rook-ceph/templates/resources.yaml
  674. apiVersion: apiextensions.k8s.io/v1
  675. kind: CustomResourceDefinition
  676. metadata:
  677. annotations:
  678. controller-gen.kubebuilder.io/version: v0.11.3
  679. helm.sh/resource-policy: keep
  680. creationTimestamp: null
  681. name: cephbucketnotifications.ceph.rook.io
  682. spec:
  683. group: ceph.rook.io
  684. names:
  685. kind: CephBucketNotification
  686. listKind: CephBucketNotificationList
  687. plural: cephbucketnotifications
  688. singular: cephbucketnotification
  689. scope: Namespaced
  690. versions:
  691. - name: v1
  692. schema:
  693. openAPIV3Schema:
  694. description: CephBucketNotification represents a Bucket Notifications
  695. properties:
  696. apiVersion:
  697. 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'
  698. type: string
  699. kind:
  700. 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'
  701. type: string
  702. metadata:
  703. type: object
  704. spec:
  705. description: BucketNotificationSpec represent the spec of a Bucket Notification
  706. properties:
  707. events:
  708. description: List of events that should trigger the notification
  709. items:
  710. description: BucketNotificationSpec represent the event type of the bucket notification
  711. enum:
  712. - s3:ObjectCreated:*
  713. - s3:ObjectCreated:Put
  714. - s3:ObjectCreated:Post
  715. - s3:ObjectCreated:Copy
  716. - s3:ObjectCreated:CompleteMultipartUpload
  717. - s3:ObjectRemoved:*
  718. - s3:ObjectRemoved:Delete
  719. - s3:ObjectRemoved:DeleteMarkerCreated
  720. type: string
  721. type: array
  722. filter:
  723. description: Spec of notification filter
  724. properties:
  725. keyFilters:
  726. description: Filters based on the object's key
  727. items:
  728. description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
  729. properties:
  730. name:
  731. description: Name of the filter - prefix/suffix/regex
  732. enum:
  733. - prefix
  734. - suffix
  735. - regex
  736. type: string
  737. value:
  738. description: Value to filter on
  739. type: string
  740. required:
  741. - name
  742. - value
  743. type: object
  744. type: array
  745. metadataFilters:
  746. description: Filters based on the object's metadata
  747. items:
  748. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  749. properties:
  750. name:
  751. description: Name of the metadata or tag
  752. minLength: 1
  753. type: string
  754. value:
  755. description: Value to filter on
  756. type: string
  757. required:
  758. - name
  759. - value
  760. type: object
  761. type: array
  762. tagFilters:
  763. description: Filters based on the object's tags
  764. items:
  765. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  766. properties:
  767. name:
  768. description: Name of the metadata or tag
  769. minLength: 1
  770. type: string
  771. value:
  772. description: Value to filter on
  773. type: string
  774. required:
  775. - name
  776. - value
  777. type: object
  778. type: array
  779. type: object
  780. topic:
  781. description: The name of the topic associated with this notification
  782. minLength: 1
  783. type: string
  784. required:
  785. - topic
  786. type: object
  787. status:
  788. description: Status represents the status of an object
  789. properties:
  790. conditions:
  791. items:
  792. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  793. properties:
  794. lastHeartbeatTime:
  795. format: date-time
  796. type: string
  797. lastTransitionTime:
  798. format: date-time
  799. type: string
  800. message:
  801. type: string
  802. reason:
  803. description: ConditionReason is a reason for a condition
  804. type: string
  805. status:
  806. type: string
  807. type:
  808. description: ConditionType represent a resource's status
  809. type: string
  810. type: object
  811. type: array
  812. observedGeneration:
  813. description: ObservedGeneration is the latest generation observed by the controller.
  814. format: int64
  815. type: integer
  816. phase:
  817. type: string
  818. type: object
  819. x-kubernetes-preserve-unknown-fields: true
  820. required:
  821. - metadata
  822. - spec
  823. type: object
  824. served: true
  825. storage: true
  826. subresources:
  827. status: {}
  828. ---
  829. # Source: rook-ceph/templates/resources.yaml
  830. apiVersion: apiextensions.k8s.io/v1
  831. kind: CustomResourceDefinition
  832. metadata:
  833. annotations:
  834. controller-gen.kubebuilder.io/version: v0.11.3
  835. helm.sh/resource-policy: keep
  836. creationTimestamp: null
  837. name: cephbuckettopics.ceph.rook.io
  838. spec:
  839. group: ceph.rook.io
  840. names:
  841. kind: CephBucketTopic
  842. listKind: CephBucketTopicList
  843. plural: cephbuckettopics
  844. singular: cephbuckettopic
  845. scope: Namespaced
  846. versions:
  847. - additionalPrinterColumns:
  848. - jsonPath: .status.phase
  849. name: Phase
  850. type: string
  851. name: v1
  852. schema:
  853. openAPIV3Schema:
  854. description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
  855. properties:
  856. apiVersion:
  857. 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'
  858. type: string
  859. kind:
  860. 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'
  861. type: string
  862. metadata:
  863. type: object
  864. spec:
  865. description: BucketTopicSpec represent the spec of a Bucket Topic
  866. properties:
  867. endpoint:
  868. description: Contains the endpoint spec of the topic
  869. properties:
  870. amqp:
  871. description: Spec of AMQP endpoint
  872. properties:
  873. ackLevel:
  874. default: broker
  875. description: The ack level required for this topic (none/broker/routeable)
  876. enum:
  877. - none
  878. - broker
  879. - routeable
  880. type: string
  881. disableVerifySSL:
  882. description: Indicate whether the server certificate is validated by the client or not
  883. type: boolean
  884. exchange:
  885. description: Name of the exchange that is used to route messages based on topics
  886. minLength: 1
  887. type: string
  888. uri:
  889. description: The URI of the AMQP endpoint to push notification to
  890. minLength: 1
  891. type: string
  892. required:
  893. - exchange
  894. - uri
  895. type: object
  896. http:
  897. description: Spec of HTTP endpoint
  898. properties:
  899. disableVerifySSL:
  900. description: Indicate whether the server certificate is validated by the client or not
  901. type: boolean
  902. sendCloudEvents:
  903. description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md Supported for Ceph Quincy (v17) or newer.'
  904. type: boolean
  905. uri:
  906. description: The URI of the HTTP endpoint to push notification to
  907. minLength: 1
  908. type: string
  909. required:
  910. - uri
  911. type: object
  912. kafka:
  913. description: Spec of Kafka endpoint
  914. properties:
  915. ackLevel:
  916. default: broker
  917. description: The ack level required for this topic (none/broker)
  918. enum:
  919. - none
  920. - broker
  921. type: string
  922. disableVerifySSL:
  923. description: Indicate whether the server certificate is validated by the client or not
  924. type: boolean
  925. uri:
  926. description: The URI of the Kafka endpoint to push notification to
  927. minLength: 1
  928. type: string
  929. useSSL:
  930. description: Indicate whether to use SSL when communicating with the broker
  931. type: boolean
  932. required:
  933. - uri
  934. type: object
  935. type: object
  936. objectStoreName:
  937. description: The name of the object store on which to define the topic
  938. minLength: 1
  939. type: string
  940. objectStoreNamespace:
  941. description: The namespace of the object store on which to define the topic
  942. minLength: 1
  943. type: string
  944. opaqueData:
  945. description: Data which is sent in each event
  946. type: string
  947. persistent:
  948. description: Indication whether notifications to this endpoint are persistent or not
  949. type: boolean
  950. required:
  951. - endpoint
  952. - objectStoreName
  953. - objectStoreNamespace
  954. type: object
  955. status:
  956. description: BucketTopicStatus represents the Status of a CephBucketTopic
  957. properties:
  958. ARN:
  959. description: The ARN of the topic generated by the RGW
  960. nullable: true
  961. type: string
  962. observedGeneration:
  963. description: ObservedGeneration is the latest generation observed by the controller.
  964. format: int64
  965. type: integer
  966. phase:
  967. type: string
  968. type: object
  969. x-kubernetes-preserve-unknown-fields: true
  970. required:
  971. - metadata
  972. - spec
  973. type: object
  974. served: true
  975. storage: true
  976. subresources:
  977. status: {}
  978. ---
  979. # Source: rook-ceph/templates/resources.yaml
  980. apiVersion: apiextensions.k8s.io/v1
  981. kind: CustomResourceDefinition
  982. metadata:
  983. annotations:
  984. controller-gen.kubebuilder.io/version: v0.11.3
  985. helm.sh/resource-policy: keep
  986. creationTimestamp: null
  987. name: cephclients.ceph.rook.io
  988. spec:
  989. group: ceph.rook.io
  990. names:
  991. kind: CephClient
  992. listKind: CephClientList
  993. plural: cephclients
  994. singular: cephclient
  995. scope: Namespaced
  996. versions:
  997. - additionalPrinterColumns:
  998. - jsonPath: .status.phase
  999. name: Phase
  1000. type: string
  1001. name: v1
  1002. schema:
  1003. openAPIV3Schema:
  1004. description: CephClient represents a Ceph Client
  1005. properties:
  1006. apiVersion:
  1007. 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'
  1008. type: string
  1009. kind:
  1010. 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'
  1011. type: string
  1012. metadata:
  1013. type: object
  1014. spec:
  1015. description: Spec represents the specification of a Ceph Client
  1016. properties:
  1017. caps:
  1018. additionalProperties:
  1019. type: string
  1020. type: object
  1021. x-kubernetes-preserve-unknown-fields: true
  1022. name:
  1023. type: string
  1024. required:
  1025. - caps
  1026. type: object
  1027. status:
  1028. description: Status represents the status of a Ceph Client
  1029. properties:
  1030. info:
  1031. additionalProperties:
  1032. type: string
  1033. nullable: true
  1034. type: object
  1035. observedGeneration:
  1036. description: ObservedGeneration is the latest generation observed by the controller.
  1037. format: int64
  1038. type: integer
  1039. phase:
  1040. description: ConditionType represent a resource's status
  1041. type: string
  1042. type: object
  1043. x-kubernetes-preserve-unknown-fields: true
  1044. required:
  1045. - metadata
  1046. - spec
  1047. type: object
  1048. served: true
  1049. storage: true
  1050. subresources:
  1051. status: {}
  1052. ---
  1053. # Source: rook-ceph/templates/resources.yaml
  1054. apiVersion: apiextensions.k8s.io/v1
  1055. kind: CustomResourceDefinition
  1056. metadata:
  1057. annotations:
  1058. controller-gen.kubebuilder.io/version: v0.11.3
  1059. helm.sh/resource-policy: keep
  1060. creationTimestamp: null
  1061. name: cephclusters.ceph.rook.io
  1062. spec:
  1063. group: ceph.rook.io
  1064. names:
  1065. kind: CephCluster
  1066. listKind: CephClusterList
  1067. plural: cephclusters
  1068. singular: cephcluster
  1069. scope: Namespaced
  1070. versions:
  1071. - additionalPrinterColumns:
  1072. - description: Directory used on the K8s nodes
  1073. jsonPath: .spec.dataDirHostPath
  1074. name: DataDirHostPath
  1075. type: string
  1076. - description: Number of MONs
  1077. jsonPath: .spec.mon.count
  1078. name: MonCount
  1079. type: string
  1080. - jsonPath: .metadata.creationTimestamp
  1081. name: Age
  1082. type: date
  1083. - jsonPath: .status.phase
  1084. name: Phase
  1085. type: string
  1086. - description: Message
  1087. jsonPath: .status.message
  1088. name: Message
  1089. type: string
  1090. - description: Ceph Health
  1091. jsonPath: .status.ceph.health
  1092. name: Health
  1093. type: string
  1094. - jsonPath: .spec.external.enable
  1095. name: External
  1096. type: boolean
  1097. - description: Ceph FSID
  1098. jsonPath: .status.ceph.fsid
  1099. name: FSID
  1100. type: string
  1101. name: v1
  1102. schema:
  1103. openAPIV3Schema:
  1104. description: CephCluster is a Ceph storage cluster
  1105. properties:
  1106. apiVersion:
  1107. 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'
  1108. type: string
  1109. kind:
  1110. 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'
  1111. type: string
  1112. metadata:
  1113. type: object
  1114. spec:
  1115. description: ClusterSpec represents the specification of Ceph Cluster
  1116. properties:
  1117. annotations:
  1118. additionalProperties:
  1119. additionalProperties:
  1120. type: string
  1121. description: Annotations are annotations
  1122. type: object
  1123. description: The annotations-related configuration to add/set on each Pod related object.
  1124. nullable: true
  1125. type: object
  1126. x-kubernetes-preserve-unknown-fields: true
  1127. cephVersion:
  1128. description: The version information that instructs Rook to orchestrate a particular version of Ceph.
  1129. nullable: true
  1130. properties:
  1131. allowUnsupported:
  1132. description: Whether to allow unsupported versions (do not set to true in production)
  1133. type: boolean
  1134. image:
  1135. 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
  1136. type: string
  1137. imagePullPolicy:
  1138. description: ImagePullPolicy describes a policy for if/when to pull a container image One of Always, Never, IfNotPresent.
  1139. enum:
  1140. - IfNotPresent
  1141. - Always
  1142. - Never
  1143. - ""
  1144. type: string
  1145. type: object
  1146. cleanupPolicy:
  1147. description: Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster deletion is not imminent.
  1148. nullable: true
  1149. properties:
  1150. allowUninstallWithVolumes:
  1151. description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
  1152. type: boolean
  1153. confirmation:
  1154. description: Confirmation represents the cleanup confirmation
  1155. nullable: true
  1156. pattern: ^$|^yes-really-destroy-data$
  1157. type: string
  1158. sanitizeDisks:
  1159. description: SanitizeDisks represents way we sanitize disks
  1160. nullable: true
  1161. properties:
  1162. dataSource:
  1163. description: DataSource is the data source to use to sanitize the disk with
  1164. enum:
  1165. - zero
  1166. - random
  1167. type: string
  1168. iteration:
  1169. description: Iteration is the number of pass to apply the sanitizing
  1170. format: int32
  1171. type: integer
  1172. method:
  1173. description: Method is the method we use to sanitize disks
  1174. enum:
  1175. - complete
  1176. - quick
  1177. type: string
  1178. type: object
  1179. type: object
  1180. continueUpgradeAfterChecksEvenIfNotHealthy:
  1181. description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
  1182. type: boolean
  1183. crashCollector:
  1184. description: A spec for the crash controller
  1185. nullable: true
  1186. properties:
  1187. daysToRetain:
  1188. description: DaysToRetain represents the number of days to retain crash until they get pruned
  1189. type: integer
  1190. disable:
  1191. description: Disable determines whether we should enable the crash collector
  1192. type: boolean
  1193. type: object
  1194. dashboard:
  1195. description: Dashboard settings
  1196. nullable: true
  1197. properties:
  1198. enabled:
  1199. description: Enabled determines whether to enable the dashboard
  1200. type: boolean
  1201. port:
  1202. description: Port is the dashboard webserver port
  1203. maximum: 65535
  1204. minimum: 0
  1205. type: integer
  1206. prometheusEndpoint:
  1207. description: Endpoint for the Prometheus host
  1208. type: string
  1209. prometheusEndpointSSLVerify:
  1210. description: Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert.
  1211. type: boolean
  1212. ssl:
  1213. description: SSL determines whether SSL should be used
  1214. type: boolean
  1215. urlPrefix:
  1216. description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
  1217. type: string
  1218. type: object
  1219. dataDirHostPath:
  1220. description: The path on the host where config and data can be persisted
  1221. pattern: ^/(\S+)
  1222. type: string
  1223. disruptionManagement:
  1224. description: A spec for configuring disruption management.
  1225. nullable: true
  1226. properties:
  1227. machineDisruptionBudgetNamespace:
  1228. description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController
  1229. type: string
  1230. manageMachineDisruptionBudgets:
  1231. description: Deprecated. This enables management of machinedisruptionbudgets.
  1232. type: boolean
  1233. managePodBudgets:
  1234. description: This enables management of poddisruptionbudgets
  1235. type: boolean
  1236. osdMaintenanceTimeout:
  1237. 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
  1238. format: int64
  1239. type: integer
  1240. pgHealthCheckTimeout:
  1241. 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.
  1242. format: int64
  1243. type: integer
  1244. type: object
  1245. external:
  1246. 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.
  1247. nullable: true
  1248. properties:
  1249. enable:
  1250. description: Enable determines whether external mode is enabled or not
  1251. type: boolean
  1252. type: object
  1253. x-kubernetes-preserve-unknown-fields: true
  1254. healthCheck:
  1255. description: Internal daemon healthchecks and liveness probe
  1256. nullable: true
  1257. properties:
  1258. daemonHealth:
  1259. description: DaemonHealth is the health check for a given daemon
  1260. nullable: true
  1261. properties:
  1262. mon:
  1263. description: Monitor represents the health check settings for the Ceph monitor
  1264. nullable: true
  1265. properties:
  1266. disabled:
  1267. type: boolean
  1268. interval:
  1269. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1270. type: string
  1271. timeout:
  1272. type: string
  1273. type: object
  1274. osd:
  1275. description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs
  1276. nullable: true
  1277. properties:
  1278. disabled:
  1279. type: boolean
  1280. interval:
  1281. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1282. type: string
  1283. timeout:
  1284. type: string
  1285. type: object
  1286. status:
  1287. description: Status represents the health check settings for the Ceph health
  1288. nullable: true
  1289. properties:
  1290. disabled:
  1291. type: boolean
  1292. interval:
  1293. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1294. type: string
  1295. timeout:
  1296. type: string
  1297. type: object
  1298. type: object
  1299. livenessProbe:
  1300. additionalProperties:
  1301. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1302. properties:
  1303. disabled:
  1304. description: Disabled determines whether probe is disable or not
  1305. type: boolean
  1306. probe:
  1307. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1308. properties:
  1309. exec:
  1310. description: Exec specifies the action to take.
  1311. properties:
  1312. command:
  1313. 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.
  1314. items:
  1315. type: string
  1316. type: array
  1317. type: object
  1318. failureThreshold:
  1319. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1320. format: int32
  1321. type: integer
  1322. grpc:
  1323. description: GRPC specifies an action involving a GRPC port.
  1324. properties:
  1325. port:
  1326. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1327. format: int32
  1328. type: integer
  1329. service:
  1330. 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."
  1331. type: string
  1332. required:
  1333. - port
  1334. type: object
  1335. httpGet:
  1336. description: HTTPGet specifies the http request to perform.
  1337. properties:
  1338. host:
  1339. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1340. type: string
  1341. httpHeaders:
  1342. description: Custom headers to set in the request. HTTP allows repeated headers.
  1343. items:
  1344. description: HTTPHeader describes a custom header to be used in HTTP probes
  1345. properties:
  1346. name:
  1347. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1348. type: string
  1349. value:
  1350. description: The header field value
  1351. type: string
  1352. required:
  1353. - name
  1354. - value
  1355. type: object
  1356. type: array
  1357. path:
  1358. description: Path to access on the HTTP server.
  1359. type: string
  1360. port:
  1361. anyOf:
  1362. - type: integer
  1363. - type: string
  1364. 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.
  1365. x-kubernetes-int-or-string: true
  1366. scheme:
  1367. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1368. type: string
  1369. required:
  1370. - port
  1371. type: object
  1372. initialDelaySeconds:
  1373. 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'
  1374. format: int32
  1375. type: integer
  1376. periodSeconds:
  1377. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1378. format: int32
  1379. type: integer
  1380. successThreshold:
  1381. 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.
  1382. format: int32
  1383. type: integer
  1384. tcpSocket:
  1385. description: TCPSocket specifies an action involving a TCP port.
  1386. properties:
  1387. host:
  1388. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1389. type: string
  1390. port:
  1391. anyOf:
  1392. - type: integer
  1393. - type: string
  1394. 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.
  1395. x-kubernetes-int-or-string: true
  1396. required:
  1397. - port
  1398. type: object
  1399. terminationGracePeriodSeconds:
  1400. 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.
  1401. format: int64
  1402. type: integer
  1403. timeoutSeconds:
  1404. 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'
  1405. format: int32
  1406. type: integer
  1407. type: object
  1408. type: object
  1409. description: LivenessProbe allows changing the livenessProbe configuration for a given daemon
  1410. type: object
  1411. startupProbe:
  1412. additionalProperties:
  1413. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1414. properties:
  1415. disabled:
  1416. description: Disabled determines whether probe is disable or not
  1417. type: boolean
  1418. probe:
  1419. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1420. properties:
  1421. exec:
  1422. description: Exec specifies the action to take.
  1423. properties:
  1424. command:
  1425. 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.
  1426. items:
  1427. type: string
  1428. type: array
  1429. type: object
  1430. failureThreshold:
  1431. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1432. format: int32
  1433. type: integer
  1434. grpc:
  1435. description: GRPC specifies an action involving a GRPC port.
  1436. properties:
  1437. port:
  1438. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1439. format: int32
  1440. type: integer
  1441. service:
  1442. 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."
  1443. type: string
  1444. required:
  1445. - port
  1446. type: object
  1447. httpGet:
  1448. description: HTTPGet specifies the http request to perform.
  1449. properties:
  1450. host:
  1451. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1452. type: string
  1453. httpHeaders:
  1454. description: Custom headers to set in the request. HTTP allows repeated headers.
  1455. items:
  1456. description: HTTPHeader describes a custom header to be used in HTTP probes
  1457. properties:
  1458. name:
  1459. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1460. type: string
  1461. value:
  1462. description: The header field value
  1463. type: string
  1464. required:
  1465. - name
  1466. - value
  1467. type: object
  1468. type: array
  1469. path:
  1470. description: Path to access on the HTTP server.
  1471. type: string
  1472. port:
  1473. anyOf:
  1474. - type: integer
  1475. - type: string
  1476. 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.
  1477. x-kubernetes-int-or-string: true
  1478. scheme:
  1479. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1480. type: string
  1481. required:
  1482. - port
  1483. type: object
  1484. initialDelaySeconds:
  1485. 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'
  1486. format: int32
  1487. type: integer
  1488. periodSeconds:
  1489. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1490. format: int32
  1491. type: integer
  1492. successThreshold:
  1493. 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.
  1494. format: int32
  1495. type: integer
  1496. tcpSocket:
  1497. description: TCPSocket specifies an action involving a TCP port.
  1498. properties:
  1499. host:
  1500. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1501. type: string
  1502. port:
  1503. anyOf:
  1504. - type: integer
  1505. - type: string
  1506. 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.
  1507. x-kubernetes-int-or-string: true
  1508. required:
  1509. - port
  1510. type: object
  1511. terminationGracePeriodSeconds:
  1512. 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.
  1513. format: int64
  1514. type: integer
  1515. timeoutSeconds:
  1516. 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'
  1517. format: int32
  1518. type: integer
  1519. type: object
  1520. type: object
  1521. description: StartupProbe allows changing the startupProbe configuration for a given daemon
  1522. type: object
  1523. type: object
  1524. labels:
  1525. additionalProperties:
  1526. additionalProperties:
  1527. type: string
  1528. description: Labels are label for a given daemons
  1529. type: object
  1530. description: The labels-related configuration to add/set on each Pod related object.
  1531. nullable: true
  1532. type: object
  1533. x-kubernetes-preserve-unknown-fields: true
  1534. logCollector:
  1535. description: Logging represents loggings settings
  1536. nullable: true
  1537. properties:
  1538. enabled:
  1539. description: Enabled represents whether the log collector is enabled
  1540. type: boolean
  1541. maxLogSize:
  1542. anyOf:
  1543. - type: integer
  1544. - type: string
  1545. description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
  1546. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1547. x-kubernetes-int-or-string: true
  1548. periodicity:
  1549. description: Periodicity is the periodicity of the log rotation.
  1550. pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$
  1551. type: string
  1552. type: object
  1553. mgr:
  1554. description: A spec for mgr related options
  1555. nullable: true
  1556. properties:
  1557. allowMultiplePerNode:
  1558. description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
  1559. type: boolean
  1560. count:
  1561. description: Count is the number of manager daemons to run
  1562. maximum: 5
  1563. minimum: 0
  1564. type: integer
  1565. modules:
  1566. description: Modules is the list of ceph manager modules to enable/disable
  1567. items:
  1568. description: Module represents mgr modules that the user wants to enable or disable
  1569. properties:
  1570. enabled:
  1571. description: Enabled determines whether a module should be enabled or not
  1572. type: boolean
  1573. name:
  1574. description: Name is the name of the ceph manager module
  1575. type: string
  1576. type: object
  1577. nullable: true
  1578. type: array
  1579. type: object
  1580. mon:
  1581. description: A spec for mon related options
  1582. nullable: true
  1583. properties:
  1584. allowMultiplePerNode:
  1585. description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
  1586. type: boolean
  1587. count:
  1588. description: Count is the number of Ceph monitors
  1589. maximum: 9
  1590. minimum: 0
  1591. type: integer
  1592. failureDomainLabel:
  1593. type: string
  1594. stretchCluster:
  1595. description: StretchCluster is the stretch cluster specification
  1596. properties:
  1597. failureDomainLabel:
  1598. description: 'FailureDomainLabel the failure domain name (e,g: zone)'
  1599. type: string
  1600. subFailureDomain:
  1601. description: SubFailureDomain is the failure domain within a zone
  1602. type: string
  1603. zones:
  1604. description: Zones is the list of zones
  1605. items:
  1606. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  1607. properties:
  1608. arbiter:
  1609. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  1610. type: boolean
  1611. name:
  1612. description: Name is the name of the zone
  1613. type: string
  1614. volumeClaimTemplate:
  1615. description: VolumeClaimTemplate is the PVC template
  1616. properties:
  1617. apiVersion:
  1618. 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'
  1619. type: string
  1620. kind:
  1621. 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'
  1622. type: string
  1623. metadata:
  1624. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1625. properties:
  1626. annotations:
  1627. additionalProperties:
  1628. type: string
  1629. type: object
  1630. finalizers:
  1631. items:
  1632. type: string
  1633. type: array
  1634. labels:
  1635. additionalProperties:
  1636. type: string
  1637. type: object
  1638. name:
  1639. type: string
  1640. namespace:
  1641. type: string
  1642. type: object
  1643. spec:
  1644. 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'
  1645. properties:
  1646. accessModes:
  1647. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1648. items:
  1649. type: string
  1650. type: array
  1651. dataSource:
  1652. 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.'
  1653. properties:
  1654. apiGroup:
  1655. 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.
  1656. type: string
  1657. kind:
  1658. description: Kind is the type of resource being referenced
  1659. type: string
  1660. name:
  1661. description: Name is the name of resource being referenced
  1662. type: string
  1663. required:
  1664. - kind
  1665. - name
  1666. type: object
  1667. x-kubernetes-map-type: atomic
  1668. dataSourceRef:
  1669. 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.'
  1670. properties:
  1671. apiGroup:
  1672. 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.
  1673. type: string
  1674. kind:
  1675. description: Kind is the type of resource being referenced
  1676. type: string
  1677. name:
  1678. description: Name is the name of resource being referenced
  1679. type: string
  1680. namespace:
  1681. 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.
  1682. type: string
  1683. required:
  1684. - kind
  1685. - name
  1686. type: object
  1687. resources:
  1688. 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'
  1689. properties:
  1690. claims:
  1691. 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."
  1692. items:
  1693. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1694. properties:
  1695. name:
  1696. 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.
  1697. type: string
  1698. required:
  1699. - name
  1700. type: object
  1701. type: array
  1702. x-kubernetes-list-map-keys:
  1703. - name
  1704. x-kubernetes-list-type: map
  1705. limits:
  1706. additionalProperties:
  1707. anyOf:
  1708. - type: integer
  1709. - type: string
  1710. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1711. x-kubernetes-int-or-string: true
  1712. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1713. type: object
  1714. requests:
  1715. additionalProperties:
  1716. anyOf:
  1717. - type: integer
  1718. - type: string
  1719. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1720. x-kubernetes-int-or-string: true
  1721. 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/'
  1722. type: object
  1723. type: object
  1724. selector:
  1725. description: selector is a label query over volumes to consider for binding.
  1726. properties:
  1727. matchExpressions:
  1728. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1729. items:
  1730. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1731. properties:
  1732. key:
  1733. description: key is the label key that the selector applies to.
  1734. type: string
  1735. operator:
  1736. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1737. type: string
  1738. values:
  1739. 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.
  1740. items:
  1741. type: string
  1742. type: array
  1743. required:
  1744. - key
  1745. - operator
  1746. type: object
  1747. type: array
  1748. matchLabels:
  1749. additionalProperties:
  1750. type: string
  1751. 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.
  1752. type: object
  1753. type: object
  1754. x-kubernetes-map-type: atomic
  1755. storageClassName:
  1756. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1757. type: string
  1758. volumeMode:
  1759. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1760. type: string
  1761. volumeName:
  1762. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1763. type: string
  1764. type: object
  1765. status:
  1766. 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'
  1767. properties:
  1768. accessModes:
  1769. 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'
  1770. items:
  1771. type: string
  1772. type: array
  1773. allocatedResourceStatuses:
  1774. additionalProperties:
  1775. 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.
  1776. type: string
  1777. 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."
  1778. type: object
  1779. x-kubernetes-map-type: granular
  1780. allocatedResources:
  1781. additionalProperties:
  1782. anyOf:
  1783. - type: integer
  1784. - type: string
  1785. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1786. x-kubernetes-int-or-string: true
  1787. 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."
  1788. type: object
  1789. capacity:
  1790. additionalProperties:
  1791. anyOf:
  1792. - type: integer
  1793. - type: string
  1794. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1795. x-kubernetes-int-or-string: true
  1796. description: capacity represents the actual resources of the underlying volume.
  1797. type: object
  1798. conditions:
  1799. 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'.
  1800. items:
  1801. description: PersistentVolumeClaimCondition contains details about state of pvc
  1802. properties:
  1803. lastProbeTime:
  1804. description: lastProbeTime is the time we probed the condition.
  1805. format: date-time
  1806. type: string
  1807. lastTransitionTime:
  1808. description: lastTransitionTime is the time the condition transitioned from one status to another.
  1809. format: date-time
  1810. type: string
  1811. message:
  1812. description: message is the human-readable message indicating details about last transition.
  1813. type: string
  1814. reason:
  1815. 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.
  1816. type: string
  1817. status:
  1818. type: string
  1819. type:
  1820. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  1821. type: string
  1822. required:
  1823. - status
  1824. - type
  1825. type: object
  1826. type: array
  1827. phase:
  1828. description: phase represents the current phase of PersistentVolumeClaim.
  1829. type: string
  1830. type: object
  1831. type: object
  1832. x-kubernetes-preserve-unknown-fields: true
  1833. type: object
  1834. nullable: true
  1835. type: array
  1836. type: object
  1837. volumeClaimTemplate:
  1838. description: VolumeClaimTemplate is the PVC definition
  1839. properties:
  1840. apiVersion:
  1841. 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'
  1842. type: string
  1843. kind:
  1844. 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'
  1845. type: string
  1846. metadata:
  1847. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1848. properties:
  1849. annotations:
  1850. additionalProperties:
  1851. type: string
  1852. type: object
  1853. finalizers:
  1854. items:
  1855. type: string
  1856. type: array
  1857. labels:
  1858. additionalProperties:
  1859. type: string
  1860. type: object
  1861. name:
  1862. type: string
  1863. namespace:
  1864. type: string
  1865. type: object
  1866. spec:
  1867. 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'
  1868. properties:
  1869. accessModes:
  1870. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1871. items:
  1872. type: string
  1873. type: array
  1874. dataSource:
  1875. 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.'
  1876. properties:
  1877. apiGroup:
  1878. 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.
  1879. type: string
  1880. kind:
  1881. description: Kind is the type of resource being referenced
  1882. type: string
  1883. name:
  1884. description: Name is the name of resource being referenced
  1885. type: string
  1886. required:
  1887. - kind
  1888. - name
  1889. type: object
  1890. x-kubernetes-map-type: atomic
  1891. dataSourceRef:
  1892. 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.'
  1893. properties:
  1894. apiGroup:
  1895. 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.
  1896. type: string
  1897. kind:
  1898. description: Kind is the type of resource being referenced
  1899. type: string
  1900. name:
  1901. description: Name is the name of resource being referenced
  1902. type: string
  1903. namespace:
  1904. 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.
  1905. type: string
  1906. required:
  1907. - kind
  1908. - name
  1909. type: object
  1910. resources:
  1911. 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'
  1912. properties:
  1913. claims:
  1914. 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."
  1915. items:
  1916. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1917. properties:
  1918. name:
  1919. 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.
  1920. type: string
  1921. required:
  1922. - name
  1923. type: object
  1924. type: array
  1925. x-kubernetes-list-map-keys:
  1926. - name
  1927. x-kubernetes-list-type: map
  1928. limits:
  1929. additionalProperties:
  1930. anyOf:
  1931. - type: integer
  1932. - type: string
  1933. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1934. x-kubernetes-int-or-string: true
  1935. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1936. type: object
  1937. requests:
  1938. additionalProperties:
  1939. anyOf:
  1940. - type: integer
  1941. - type: string
  1942. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1943. x-kubernetes-int-or-string: true
  1944. 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/'
  1945. type: object
  1946. type: object
  1947. selector:
  1948. description: selector is a label query over volumes to consider for binding.
  1949. properties:
  1950. matchExpressions:
  1951. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1952. items:
  1953. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1954. properties:
  1955. key:
  1956. description: key is the label key that the selector applies to.
  1957. type: string
  1958. operator:
  1959. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1960. type: string
  1961. values:
  1962. 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.
  1963. items:
  1964. type: string
  1965. type: array
  1966. required:
  1967. - key
  1968. - operator
  1969. type: object
  1970. type: array
  1971. matchLabels:
  1972. additionalProperties:
  1973. type: string
  1974. 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.
  1975. type: object
  1976. type: object
  1977. x-kubernetes-map-type: atomic
  1978. storageClassName:
  1979. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1980. type: string
  1981. volumeMode:
  1982. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1983. type: string
  1984. volumeName:
  1985. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1986. type: string
  1987. type: object
  1988. status:
  1989. 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'
  1990. properties:
  1991. accessModes:
  1992. 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'
  1993. items:
  1994. type: string
  1995. type: array
  1996. allocatedResourceStatuses:
  1997. additionalProperties:
  1998. 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.
  1999. type: string
  2000. 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."
  2001. type: object
  2002. x-kubernetes-map-type: granular
  2003. allocatedResources:
  2004. additionalProperties:
  2005. anyOf:
  2006. - type: integer
  2007. - type: string
  2008. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2009. x-kubernetes-int-or-string: true
  2010. 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."
  2011. type: object
  2012. capacity:
  2013. additionalProperties:
  2014. anyOf:
  2015. - type: integer
  2016. - type: string
  2017. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2018. x-kubernetes-int-or-string: true
  2019. description: capacity represents the actual resources of the underlying volume.
  2020. type: object
  2021. conditions:
  2022. 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'.
  2023. items:
  2024. description: PersistentVolumeClaimCondition contains details about state of pvc
  2025. properties:
  2026. lastProbeTime:
  2027. description: lastProbeTime is the time we probed the condition.
  2028. format: date-time
  2029. type: string
  2030. lastTransitionTime:
  2031. description: lastTransitionTime is the time the condition transitioned from one status to another.
  2032. format: date-time
  2033. type: string
  2034. message:
  2035. description: message is the human-readable message indicating details about last transition.
  2036. type: string
  2037. reason:
  2038. 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.
  2039. type: string
  2040. status:
  2041. type: string
  2042. type:
  2043. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  2044. type: string
  2045. required:
  2046. - status
  2047. - type
  2048. type: object
  2049. type: array
  2050. phase:
  2051. description: phase represents the current phase of PersistentVolumeClaim.
  2052. type: string
  2053. type: object
  2054. type: object
  2055. x-kubernetes-preserve-unknown-fields: true
  2056. zones:
  2057. description: Zones are specified when we want to provide zonal awareness to mons
  2058. items:
  2059. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  2060. properties:
  2061. arbiter:
  2062. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  2063. type: boolean
  2064. name:
  2065. description: Name is the name of the zone
  2066. type: string
  2067. volumeClaimTemplate:
  2068. description: VolumeClaimTemplate is the PVC template
  2069. properties:
  2070. apiVersion:
  2071. 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'
  2072. type: string
  2073. kind:
  2074. 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'
  2075. type: string
  2076. metadata:
  2077. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  2078. properties:
  2079. annotations:
  2080. additionalProperties:
  2081. type: string
  2082. type: object
  2083. finalizers:
  2084. items:
  2085. type: string
  2086. type: array
  2087. labels:
  2088. additionalProperties:
  2089. type: string
  2090. type: object
  2091. name:
  2092. type: string
  2093. namespace:
  2094. type: string
  2095. type: object
  2096. spec:
  2097. 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'
  2098. properties:
  2099. accessModes:
  2100. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  2101. items:
  2102. type: string
  2103. type: array
  2104. dataSource:
  2105. 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.'
  2106. properties:
  2107. apiGroup:
  2108. 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.
  2109. type: string
  2110. kind:
  2111. description: Kind is the type of resource being referenced
  2112. type: string
  2113. name:
  2114. description: Name is the name of resource being referenced
  2115. type: string
  2116. required:
  2117. - kind
  2118. - name
  2119. type: object
  2120. x-kubernetes-map-type: atomic
  2121. dataSourceRef:
  2122. 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.'
  2123. properties:
  2124. apiGroup:
  2125. 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.
  2126. type: string
  2127. kind:
  2128. description: Kind is the type of resource being referenced
  2129. type: string
  2130. name:
  2131. description: Name is the name of resource being referenced
  2132. type: string
  2133. namespace:
  2134. 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.
  2135. type: string
  2136. required:
  2137. - kind
  2138. - name
  2139. type: object
  2140. resources:
  2141. 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'
  2142. properties:
  2143. claims:
  2144. 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."
  2145. items:
  2146. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  2147. properties:
  2148. name:
  2149. 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.
  2150. type: string
  2151. required:
  2152. - name
  2153. type: object
  2154. type: array
  2155. x-kubernetes-list-map-keys:
  2156. - name
  2157. x-kubernetes-list-type: map
  2158. limits:
  2159. additionalProperties:
  2160. anyOf:
  2161. - type: integer
  2162. - type: string
  2163. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2164. x-kubernetes-int-or-string: true
  2165. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2166. type: object
  2167. requests:
  2168. additionalProperties:
  2169. anyOf:
  2170. - type: integer
  2171. - type: string
  2172. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2173. x-kubernetes-int-or-string: true
  2174. 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/'
  2175. type: object
  2176. type: object
  2177. selector:
  2178. description: selector is a label query over volumes to consider for binding.
  2179. properties:
  2180. matchExpressions:
  2181. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2182. items:
  2183. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2184. properties:
  2185. key:
  2186. description: key is the label key that the selector applies to.
  2187. type: string
  2188. operator:
  2189. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2190. type: string
  2191. values:
  2192. 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.
  2193. items:
  2194. type: string
  2195. type: array
  2196. required:
  2197. - key
  2198. - operator
  2199. type: object
  2200. type: array
  2201. matchLabels:
  2202. additionalProperties:
  2203. type: string
  2204. 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.
  2205. type: object
  2206. type: object
  2207. x-kubernetes-map-type: atomic
  2208. storageClassName:
  2209. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  2210. type: string
  2211. volumeMode:
  2212. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  2213. type: string
  2214. volumeName:
  2215. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2216. type: string
  2217. type: object
  2218. status:
  2219. 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'
  2220. properties:
  2221. accessModes:
  2222. 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'
  2223. items:
  2224. type: string
  2225. type: array
  2226. allocatedResourceStatuses:
  2227. additionalProperties:
  2228. 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.
  2229. type: string
  2230. 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."
  2231. type: object
  2232. x-kubernetes-map-type: granular
  2233. allocatedResources:
  2234. additionalProperties:
  2235. anyOf:
  2236. - type: integer
  2237. - type: string
  2238. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2239. x-kubernetes-int-or-string: true
  2240. 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."
  2241. type: object
  2242. capacity:
  2243. additionalProperties:
  2244. anyOf:
  2245. - type: integer
  2246. - type: string
  2247. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2248. x-kubernetes-int-or-string: true
  2249. description: capacity represents the actual resources of the underlying volume.
  2250. type: object
  2251. conditions:
  2252. 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'.
  2253. items:
  2254. description: PersistentVolumeClaimCondition contains details about state of pvc
  2255. properties:
  2256. lastProbeTime:
  2257. description: lastProbeTime is the time we probed the condition.
  2258. format: date-time
  2259. type: string
  2260. lastTransitionTime:
  2261. description: lastTransitionTime is the time the condition transitioned from one status to another.
  2262. format: date-time
  2263. type: string
  2264. message:
  2265. description: message is the human-readable message indicating details about last transition.
  2266. type: string
  2267. reason:
  2268. 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.
  2269. type: string
  2270. status:
  2271. type: string
  2272. type:
  2273. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  2274. type: string
  2275. required:
  2276. - status
  2277. - type
  2278. type: object
  2279. type: array
  2280. phase:
  2281. description: phase represents the current phase of PersistentVolumeClaim.
  2282. type: string
  2283. type: object
  2284. type: object
  2285. x-kubernetes-preserve-unknown-fields: true
  2286. type: object
  2287. type: array
  2288. type: object
  2289. monitoring:
  2290. description: Prometheus based Monitoring settings
  2291. nullable: true
  2292. properties:
  2293. enabled:
  2294. 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.
  2295. type: boolean
  2296. externalMgrEndpoints:
  2297. description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
  2298. items:
  2299. description: EndpointAddress is a tuple that describes single IP address.
  2300. properties:
  2301. hostname:
  2302. description: The Hostname of this endpoint
  2303. type: string
  2304. ip:
  2305. 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).
  2306. type: string
  2307. nodeName:
  2308. description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.'
  2309. type: string
  2310. targetRef:
  2311. description: Reference to object providing the endpoint.
  2312. properties:
  2313. apiVersion:
  2314. description: API version of the referent.
  2315. type: string
  2316. fieldPath:
  2317. 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.'
  2318. type: string
  2319. kind:
  2320. description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2321. type: string
  2322. name:
  2323. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2324. type: string
  2325. namespace:
  2326. description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2327. type: string
  2328. resourceVersion:
  2329. 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'
  2330. type: string
  2331. uid:
  2332. description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2333. type: string
  2334. type: object
  2335. x-kubernetes-map-type: atomic
  2336. required:
  2337. - ip
  2338. type: object
  2339. x-kubernetes-map-type: atomic
  2340. nullable: true
  2341. type: array
  2342. externalMgrPrometheusPort:
  2343. description: ExternalMgrPrometheusPort Prometheus exporter port
  2344. maximum: 65535
  2345. minimum: 0
  2346. type: integer
  2347. interval:
  2348. description: Interval determines prometheus scrape interval
  2349. type: string
  2350. metricsDisabled:
  2351. 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.
  2352. type: boolean
  2353. port:
  2354. description: Port is the prometheus server port
  2355. maximum: 65535
  2356. minimum: 0
  2357. type: integer
  2358. type: object
  2359. network:
  2360. description: Network related configuration
  2361. nullable: true
  2362. properties:
  2363. addressRanges:
  2364. description: AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or 'cluster_network' configurations. This config section may be used for the "host" or "multus" network providers.
  2365. nullable: true
  2366. properties:
  2367. cluster:
  2368. description: Cluster defines a list of CIDRs to use for Ceph cluster network communication.
  2369. items:
  2370. description: "An IPv4 or IPv6 network CIDR. \n This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code."
  2371. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2372. type: string
  2373. type: array
  2374. public:
  2375. description: Public defines a list of CIDRs to use for Ceph public network communication.
  2376. items:
  2377. description: "An IPv4 or IPv6 network CIDR. \n This naive kubebuilder regex provides immediate feedback for some typos and for a common problem case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code."
  2378. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2379. type: string
  2380. type: array
  2381. type: object
  2382. connections:
  2383. description: Settings for network connections such as compression and encryption across the wire.
  2384. nullable: true
  2385. properties:
  2386. compression:
  2387. description: Compression settings for the network connections.
  2388. nullable: true
  2389. properties:
  2390. enabled:
  2391. description: Whether to compress the data in transit across the wire. The default is not set. Requires Ceph Quincy (v17) or newer.
  2392. type: boolean
  2393. type: object
  2394. encryption:
  2395. description: Encryption settings for the network connections.
  2396. nullable: true
  2397. properties:
  2398. enabled:
  2399. 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.
  2400. type: boolean
  2401. type: object
  2402. requireMsgr2:
  2403. 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).
  2404. type: boolean
  2405. type: object
  2406. dualStack:
  2407. description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
  2408. type: boolean
  2409. hostNetwork:
  2410. description: HostNetwork to enable host network
  2411. type: boolean
  2412. ipFamily:
  2413. description: IPFamily is the single stack IPv6 or IPv4 protocol
  2414. enum:
  2415. - IPv4
  2416. - IPv6
  2417. nullable: true
  2418. type: string
  2419. multiClusterService:
  2420. description: Enable multiClusterService to export the Services between peer clusters
  2421. properties:
  2422. clusterID:
  2423. description: 'ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported services. For example: <clusterid>.<svc>.<ns>.svc.clusterset.local'
  2424. type: string
  2425. enabled:
  2426. 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.
  2427. type: boolean
  2428. type: object
  2429. provider:
  2430. description: Provider is what provides network connectivity to the cluster e.g. "host" or "multus"
  2431. enum:
  2432. - ""
  2433. - host
  2434. - multus
  2435. nullable: true
  2436. type: string
  2437. selectors:
  2438. additionalProperties:
  2439. type: string
  2440. description: "Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster networks when the \"multus\" network provider is used. This config section is not used for other network providers. \n Valid keys are \"public\" and \"cluster\". Refer to Ceph networking documentation for more: https://docs.ceph.com/en/reef/rados/configuration/network-config-ref/ \n Refer to Multus network annotation documentation for help selecting values: https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation \n Rook will make a best-effort attempt to automatically detect CIDR address ranges for given network attachment definitions. Rook's methods are robust but may be imprecise for sufficiently complicated networks. Rook's auto-detection process obtains a new IP address lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only partially detects, or if underlying networks do not support reusing old IP addresses, it is best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster. \n As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client traffic and a theoretical Rook-only network for Ceph replication traffic as shown: selectors: public: \"default/cluster-fast-net\" cluster: \"rook-ceph/ceph-backend-net\""
  2441. nullable: true
  2442. type: object
  2443. type: object
  2444. x-kubernetes-preserve-unknown-fields: true
  2445. placement:
  2446. additionalProperties:
  2447. description: Placement is the placement for an object
  2448. properties:
  2449. nodeAffinity:
  2450. description: NodeAffinity is a group of node affinity scheduling rules
  2451. properties:
  2452. preferredDuringSchedulingIgnoredDuringExecution:
  2453. 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.
  2454. items:
  2455. 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).
  2456. properties:
  2457. preference:
  2458. description: A node selector term, associated with the corresponding weight.
  2459. properties:
  2460. matchExpressions:
  2461. description: A list of node selector requirements by node's labels.
  2462. items:
  2463. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2464. properties:
  2465. key:
  2466. description: The label key that the selector applies to.
  2467. type: string
  2468. operator:
  2469. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2470. type: string
  2471. values:
  2472. 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.
  2473. items:
  2474. type: string
  2475. type: array
  2476. required:
  2477. - key
  2478. - operator
  2479. type: object
  2480. type: array
  2481. matchFields:
  2482. description: A list of node selector requirements by node's fields.
  2483. items:
  2484. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2485. properties:
  2486. key:
  2487. description: The label key that the selector applies to.
  2488. type: string
  2489. operator:
  2490. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2491. type: string
  2492. values:
  2493. 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.
  2494. items:
  2495. type: string
  2496. type: array
  2497. required:
  2498. - key
  2499. - operator
  2500. type: object
  2501. type: array
  2502. type: object
  2503. x-kubernetes-map-type: atomic
  2504. weight:
  2505. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  2506. format: int32
  2507. type: integer
  2508. required:
  2509. - preference
  2510. - weight
  2511. type: object
  2512. type: array
  2513. requiredDuringSchedulingIgnoredDuringExecution:
  2514. 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.
  2515. properties:
  2516. nodeSelectorTerms:
  2517. description: Required. A list of node selector terms. The terms are ORed.
  2518. items:
  2519. 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.
  2520. properties:
  2521. matchExpressions:
  2522. description: A list of node selector requirements by node's labels.
  2523. items:
  2524. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2525. properties:
  2526. key:
  2527. description: The label key that the selector applies to.
  2528. type: string
  2529. operator:
  2530. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2531. type: string
  2532. values:
  2533. 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.
  2534. items:
  2535. type: string
  2536. type: array
  2537. required:
  2538. - key
  2539. - operator
  2540. type: object
  2541. type: array
  2542. matchFields:
  2543. description: A list of node selector requirements by node's fields.
  2544. items:
  2545. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2546. properties:
  2547. key:
  2548. description: The label key that the selector applies to.
  2549. type: string
  2550. operator:
  2551. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2552. type: string
  2553. values:
  2554. 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.
  2555. items:
  2556. type: string
  2557. type: array
  2558. required:
  2559. - key
  2560. - operator
  2561. type: object
  2562. type: array
  2563. type: object
  2564. x-kubernetes-map-type: atomic
  2565. type: array
  2566. required:
  2567. - nodeSelectorTerms
  2568. type: object
  2569. x-kubernetes-map-type: atomic
  2570. type: object
  2571. podAffinity:
  2572. description: PodAffinity is a group of inter pod affinity scheduling rules
  2573. properties:
  2574. preferredDuringSchedulingIgnoredDuringExecution:
  2575. 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.
  2576. items:
  2577. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2578. properties:
  2579. podAffinityTerm:
  2580. description: Required. A pod affinity term, associated with the corresponding weight.
  2581. properties:
  2582. labelSelector:
  2583. description: A label query over a set of resources, in this case pods.
  2584. properties:
  2585. matchExpressions:
  2586. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2587. items:
  2588. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2589. properties:
  2590. key:
  2591. description: key is the label key that the selector applies to.
  2592. type: string
  2593. operator:
  2594. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2595. type: string
  2596. values:
  2597. 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.
  2598. items:
  2599. type: string
  2600. type: array
  2601. required:
  2602. - key
  2603. - operator
  2604. type: object
  2605. type: array
  2606. matchLabels:
  2607. additionalProperties:
  2608. type: string
  2609. 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.
  2610. type: object
  2611. type: object
  2612. x-kubernetes-map-type: atomic
  2613. namespaceSelector:
  2614. 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.
  2615. properties:
  2616. matchExpressions:
  2617. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2618. items:
  2619. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2620. properties:
  2621. key:
  2622. description: key is the label key that the selector applies to.
  2623. type: string
  2624. operator:
  2625. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2626. type: string
  2627. values:
  2628. 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.
  2629. items:
  2630. type: string
  2631. type: array
  2632. required:
  2633. - key
  2634. - operator
  2635. type: object
  2636. type: array
  2637. matchLabels:
  2638. additionalProperties:
  2639. type: string
  2640. 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.
  2641. type: object
  2642. type: object
  2643. x-kubernetes-map-type: atomic
  2644. namespaces:
  2645. 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".
  2646. items:
  2647. type: string
  2648. type: array
  2649. topologyKey:
  2650. 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.
  2651. type: string
  2652. required:
  2653. - topologyKey
  2654. type: object
  2655. weight:
  2656. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2657. format: int32
  2658. type: integer
  2659. required:
  2660. - podAffinityTerm
  2661. - weight
  2662. type: object
  2663. type: array
  2664. requiredDuringSchedulingIgnoredDuringExecution:
  2665. 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.
  2666. items:
  2667. 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
  2668. properties:
  2669. labelSelector:
  2670. description: A label query over a set of resources, in this case pods.
  2671. properties:
  2672. matchExpressions:
  2673. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2674. items:
  2675. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2676. properties:
  2677. key:
  2678. description: key is the label key that the selector applies to.
  2679. type: string
  2680. operator:
  2681. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2682. type: string
  2683. values:
  2684. 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.
  2685. items:
  2686. type: string
  2687. type: array
  2688. required:
  2689. - key
  2690. - operator
  2691. type: object
  2692. type: array
  2693. matchLabels:
  2694. additionalProperties:
  2695. type: string
  2696. 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.
  2697. type: object
  2698. type: object
  2699. x-kubernetes-map-type: atomic
  2700. namespaceSelector:
  2701. 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.
  2702. properties:
  2703. matchExpressions:
  2704. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2705. items:
  2706. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2707. properties:
  2708. key:
  2709. description: key is the label key that the selector applies to.
  2710. type: string
  2711. operator:
  2712. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2713. type: string
  2714. values:
  2715. 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.
  2716. items:
  2717. type: string
  2718. type: array
  2719. required:
  2720. - key
  2721. - operator
  2722. type: object
  2723. type: array
  2724. matchLabels:
  2725. additionalProperties:
  2726. type: string
  2727. 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.
  2728. type: object
  2729. type: object
  2730. x-kubernetes-map-type: atomic
  2731. namespaces:
  2732. 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".
  2733. items:
  2734. type: string
  2735. type: array
  2736. topologyKey:
  2737. 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.
  2738. type: string
  2739. required:
  2740. - topologyKey
  2741. type: object
  2742. type: array
  2743. type: object
  2744. podAntiAffinity:
  2745. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  2746. properties:
  2747. preferredDuringSchedulingIgnoredDuringExecution:
  2748. 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.
  2749. items:
  2750. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2751. properties:
  2752. podAffinityTerm:
  2753. description: Required. A pod affinity term, associated with the corresponding weight.
  2754. properties:
  2755. labelSelector:
  2756. description: A label query over a set of resources, in this case pods.
  2757. properties:
  2758. matchExpressions:
  2759. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2760. items:
  2761. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2762. properties:
  2763. key:
  2764. description: key is the label key that the selector applies to.
  2765. type: string
  2766. operator:
  2767. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2768. type: string
  2769. values:
  2770. 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.
  2771. items:
  2772. type: string
  2773. type: array
  2774. required:
  2775. - key
  2776. - operator
  2777. type: object
  2778. type: array
  2779. matchLabels:
  2780. additionalProperties:
  2781. type: string
  2782. 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.
  2783. type: object
  2784. type: object
  2785. x-kubernetes-map-type: atomic
  2786. namespaceSelector:
  2787. 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.
  2788. properties:
  2789. matchExpressions:
  2790. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2791. items:
  2792. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2793. properties:
  2794. key:
  2795. description: key is the label key that the selector applies to.
  2796. type: string
  2797. operator:
  2798. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2799. type: string
  2800. values:
  2801. 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.
  2802. items:
  2803. type: string
  2804. type: array
  2805. required:
  2806. - key
  2807. - operator
  2808. type: object
  2809. type: array
  2810. matchLabels:
  2811. additionalProperties:
  2812. type: string
  2813. 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.
  2814. type: object
  2815. type: object
  2816. x-kubernetes-map-type: atomic
  2817. namespaces:
  2818. 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".
  2819. items:
  2820. type: string
  2821. type: array
  2822. topologyKey:
  2823. 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.
  2824. type: string
  2825. required:
  2826. - topologyKey
  2827. type: object
  2828. weight:
  2829. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2830. format: int32
  2831. type: integer
  2832. required:
  2833. - podAffinityTerm
  2834. - weight
  2835. type: object
  2836. type: array
  2837. requiredDuringSchedulingIgnoredDuringExecution:
  2838. 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.
  2839. items:
  2840. 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
  2841. properties:
  2842. labelSelector:
  2843. description: A label query over a set of resources, in this case pods.
  2844. properties:
  2845. matchExpressions:
  2846. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2847. items:
  2848. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2849. properties:
  2850. key:
  2851. description: key is the label key that the selector applies to.
  2852. type: string
  2853. operator:
  2854. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2855. type: string
  2856. values:
  2857. 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.
  2858. items:
  2859. type: string
  2860. type: array
  2861. required:
  2862. - key
  2863. - operator
  2864. type: object
  2865. type: array
  2866. matchLabels:
  2867. additionalProperties:
  2868. type: string
  2869. 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.
  2870. type: object
  2871. type: object
  2872. x-kubernetes-map-type: atomic
  2873. namespaceSelector:
  2874. 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.
  2875. properties:
  2876. matchExpressions:
  2877. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2878. items:
  2879. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2880. properties:
  2881. key:
  2882. description: key is the label key that the selector applies to.
  2883. type: string
  2884. operator:
  2885. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2886. type: string
  2887. values:
  2888. 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.
  2889. items:
  2890. type: string
  2891. type: array
  2892. required:
  2893. - key
  2894. - operator
  2895. type: object
  2896. type: array
  2897. matchLabels:
  2898. additionalProperties:
  2899. type: string
  2900. 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.
  2901. type: object
  2902. type: object
  2903. x-kubernetes-map-type: atomic
  2904. namespaces:
  2905. 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".
  2906. items:
  2907. type: string
  2908. type: array
  2909. topologyKey:
  2910. 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.
  2911. type: string
  2912. required:
  2913. - topologyKey
  2914. type: object
  2915. type: array
  2916. type: object
  2917. tolerations:
  2918. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  2919. items:
  2920. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  2921. properties:
  2922. effect:
  2923. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  2924. type: string
  2925. key:
  2926. 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.
  2927. type: string
  2928. operator:
  2929. 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.
  2930. type: string
  2931. tolerationSeconds:
  2932. 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.
  2933. format: int64
  2934. type: integer
  2935. value:
  2936. 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.
  2937. type: string
  2938. type: object
  2939. type: array
  2940. topologySpreadConstraints:
  2941. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  2942. items:
  2943. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  2944. properties:
  2945. labelSelector:
  2946. 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.
  2947. properties:
  2948. matchExpressions:
  2949. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2950. items:
  2951. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2952. properties:
  2953. key:
  2954. description: key is the label key that the selector applies to.
  2955. type: string
  2956. operator:
  2957. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2958. type: string
  2959. values:
  2960. 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.
  2961. items:
  2962. type: string
  2963. type: array
  2964. required:
  2965. - key
  2966. - operator
  2967. type: object
  2968. type: array
  2969. matchLabels:
  2970. additionalProperties:
  2971. type: string
  2972. 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.
  2973. type: object
  2974. type: object
  2975. x-kubernetes-map-type: atomic
  2976. matchLabelKeys:
  2977. 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)."
  2978. items:
  2979. type: string
  2980. type: array
  2981. x-kubernetes-list-type: atomic
  2982. maxSkew:
  2983. 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.'
  2984. format: int32
  2985. type: integer
  2986. minDomains:
  2987. 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)."
  2988. format: int32
  2989. type: integer
  2990. nodeAffinityPolicy:
  2991. 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."
  2992. type: string
  2993. nodeTaintsPolicy:
  2994. 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."
  2995. type: string
  2996. topologyKey:
  2997. 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.
  2998. type: string
  2999. whenUnsatisfiable:
  3000. 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.'
  3001. type: string
  3002. required:
  3003. - maxSkew
  3004. - topologyKey
  3005. - whenUnsatisfiable
  3006. type: object
  3007. type: array
  3008. type: object
  3009. description: The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).
  3010. nullable: true
  3011. type: object
  3012. x-kubernetes-preserve-unknown-fields: true
  3013. priorityClassNames:
  3014. additionalProperties:
  3015. type: string
  3016. description: PriorityClassNames sets priority classes on components
  3017. nullable: true
  3018. type: object
  3019. x-kubernetes-preserve-unknown-fields: true
  3020. removeOSDsIfOutAndSafeToRemove:
  3021. description: Remove the OSD that is out and safe to remove only if this option is true
  3022. type: boolean
  3023. resources:
  3024. additionalProperties:
  3025. description: ResourceRequirements describes the compute resource requirements.
  3026. properties:
  3027. claims:
  3028. 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."
  3029. items:
  3030. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3031. properties:
  3032. name:
  3033. 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.
  3034. type: string
  3035. required:
  3036. - name
  3037. type: object
  3038. type: array
  3039. x-kubernetes-list-map-keys:
  3040. - name
  3041. x-kubernetes-list-type: map
  3042. limits:
  3043. additionalProperties:
  3044. anyOf:
  3045. - type: integer
  3046. - type: string
  3047. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3048. x-kubernetes-int-or-string: true
  3049. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3050. type: object
  3051. requests:
  3052. additionalProperties:
  3053. anyOf:
  3054. - type: integer
  3055. - type: string
  3056. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3057. x-kubernetes-int-or-string: true
  3058. 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/'
  3059. type: object
  3060. type: object
  3061. description: Resources set resource requests and limits
  3062. nullable: true
  3063. type: object
  3064. x-kubernetes-preserve-unknown-fields: true
  3065. security:
  3066. description: Security represents security settings
  3067. nullable: true
  3068. properties:
  3069. keyRotation:
  3070. description: KeyRotation defines options for Key Rotation.
  3071. nullable: true
  3072. properties:
  3073. enabled:
  3074. default: false
  3075. description: Enabled represents whether the key rotation is enabled.
  3076. type: boolean
  3077. schedule:
  3078. description: Schedule represents the cron schedule for key rotation.
  3079. type: string
  3080. type: object
  3081. kms:
  3082. description: KeyManagementService is the main Key Management option
  3083. nullable: true
  3084. properties:
  3085. connectionDetails:
  3086. additionalProperties:
  3087. type: string
  3088. description: ConnectionDetails contains the KMS connection details (address, port etc)
  3089. nullable: true
  3090. type: object
  3091. x-kubernetes-preserve-unknown-fields: true
  3092. tokenSecretName:
  3093. description: TokenSecretName is the kubernetes secret containing the KMS token
  3094. type: string
  3095. type: object
  3096. type: object
  3097. skipUpgradeChecks:
  3098. description: SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
  3099. type: boolean
  3100. storage:
  3101. description: A spec for available storage in the cluster and how it should be used
  3102. nullable: true
  3103. properties:
  3104. config:
  3105. additionalProperties:
  3106. type: string
  3107. nullable: true
  3108. type: object
  3109. x-kubernetes-preserve-unknown-fields: true
  3110. deviceFilter:
  3111. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3112. type: string
  3113. devicePathFilter:
  3114. description: A regular expression to allow more fine-grained selection of devices with path names
  3115. type: string
  3116. devices:
  3117. description: List of devices to use as storage devices
  3118. items:
  3119. description: Device represents a disk to use in the cluster
  3120. properties:
  3121. config:
  3122. additionalProperties:
  3123. type: string
  3124. nullable: true
  3125. type: object
  3126. x-kubernetes-preserve-unknown-fields: true
  3127. fullpath:
  3128. type: string
  3129. name:
  3130. type: string
  3131. type: object
  3132. nullable: true
  3133. type: array
  3134. x-kubernetes-preserve-unknown-fields: true
  3135. nodes:
  3136. items:
  3137. description: Node is a storage nodes
  3138. properties:
  3139. config:
  3140. additionalProperties:
  3141. type: string
  3142. nullable: true
  3143. type: object
  3144. x-kubernetes-preserve-unknown-fields: true
  3145. deviceFilter:
  3146. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3147. type: string
  3148. devicePathFilter:
  3149. description: A regular expression to allow more fine-grained selection of devices with path names
  3150. type: string
  3151. devices:
  3152. description: List of devices to use as storage devices
  3153. items:
  3154. description: Device represents a disk to use in the cluster
  3155. properties:
  3156. config:
  3157. additionalProperties:
  3158. type: string
  3159. nullable: true
  3160. type: object
  3161. x-kubernetes-preserve-unknown-fields: true
  3162. fullpath:
  3163. type: string
  3164. name:
  3165. type: string
  3166. type: object
  3167. nullable: true
  3168. type: array
  3169. x-kubernetes-preserve-unknown-fields: true
  3170. name:
  3171. type: string
  3172. resources:
  3173. description: ResourceRequirements describes the compute resource requirements.
  3174. nullable: true
  3175. properties:
  3176. claims:
  3177. 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."
  3178. items:
  3179. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3180. properties:
  3181. name:
  3182. 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.
  3183. type: string
  3184. required:
  3185. - name
  3186. type: object
  3187. type: array
  3188. x-kubernetes-list-map-keys:
  3189. - name
  3190. x-kubernetes-list-type: map
  3191. limits:
  3192. additionalProperties:
  3193. anyOf:
  3194. - type: integer
  3195. - type: string
  3196. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3197. x-kubernetes-int-or-string: true
  3198. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3199. type: object
  3200. requests:
  3201. additionalProperties:
  3202. anyOf:
  3203. - type: integer
  3204. - type: string
  3205. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3206. x-kubernetes-int-or-string: true
  3207. 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/'
  3208. type: object
  3209. type: object
  3210. x-kubernetes-preserve-unknown-fields: true
  3211. useAllDevices:
  3212. description: Whether to consume all the storage devices found on a machine
  3213. type: boolean
  3214. volumeClaimTemplates:
  3215. description: PersistentVolumeClaims to use as storage
  3216. items:
  3217. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  3218. properties:
  3219. apiVersion:
  3220. 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'
  3221. type: string
  3222. kind:
  3223. 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'
  3224. type: string
  3225. metadata:
  3226. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  3227. properties:
  3228. annotations:
  3229. additionalProperties:
  3230. type: string
  3231. type: object
  3232. finalizers:
  3233. items:
  3234. type: string
  3235. type: array
  3236. labels:
  3237. additionalProperties:
  3238. type: string
  3239. type: object
  3240. name:
  3241. type: string
  3242. namespace:
  3243. type: string
  3244. type: object
  3245. spec:
  3246. 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'
  3247. properties:
  3248. accessModes:
  3249. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  3250. items:
  3251. type: string
  3252. type: array
  3253. dataSource:
  3254. 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.'
  3255. properties:
  3256. apiGroup:
  3257. 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.
  3258. type: string
  3259. kind:
  3260. description: Kind is the type of resource being referenced
  3261. type: string
  3262. name:
  3263. description: Name is the name of resource being referenced
  3264. type: string
  3265. required:
  3266. - kind
  3267. - name
  3268. type: object
  3269. x-kubernetes-map-type: atomic
  3270. dataSourceRef:
  3271. 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.'
  3272. properties:
  3273. apiGroup:
  3274. 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.
  3275. type: string
  3276. kind:
  3277. description: Kind is the type of resource being referenced
  3278. type: string
  3279. name:
  3280. description: Name is the name of resource being referenced
  3281. type: string
  3282. namespace:
  3283. 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.
  3284. type: string
  3285. required:
  3286. - kind
  3287. - name
  3288. type: object
  3289. resources:
  3290. 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'
  3291. properties:
  3292. claims:
  3293. 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."
  3294. items:
  3295. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3296. properties:
  3297. name:
  3298. 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.
  3299. type: string
  3300. required:
  3301. - name
  3302. type: object
  3303. type: array
  3304. x-kubernetes-list-map-keys:
  3305. - name
  3306. x-kubernetes-list-type: map
  3307. limits:
  3308. additionalProperties:
  3309. anyOf:
  3310. - type: integer
  3311. - type: string
  3312. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3313. x-kubernetes-int-or-string: true
  3314. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3315. type: object
  3316. requests:
  3317. additionalProperties:
  3318. anyOf:
  3319. - type: integer
  3320. - type: string
  3321. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3322. x-kubernetes-int-or-string: true
  3323. 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/'
  3324. type: object
  3325. type: object
  3326. selector:
  3327. description: selector is a label query over volumes to consider for binding.
  3328. properties:
  3329. matchExpressions:
  3330. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3331. items:
  3332. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3333. properties:
  3334. key:
  3335. description: key is the label key that the selector applies to.
  3336. type: string
  3337. operator:
  3338. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3339. type: string
  3340. values:
  3341. 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.
  3342. items:
  3343. type: string
  3344. type: array
  3345. required:
  3346. - key
  3347. - operator
  3348. type: object
  3349. type: array
  3350. matchLabels:
  3351. additionalProperties:
  3352. type: string
  3353. 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.
  3354. type: object
  3355. type: object
  3356. x-kubernetes-map-type: atomic
  3357. storageClassName:
  3358. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  3359. type: string
  3360. volumeMode:
  3361. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  3362. type: string
  3363. volumeName:
  3364. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  3365. type: string
  3366. type: object
  3367. status:
  3368. 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'
  3369. properties:
  3370. accessModes:
  3371. 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'
  3372. items:
  3373. type: string
  3374. type: array
  3375. allocatedResourceStatuses:
  3376. additionalProperties:
  3377. 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.
  3378. type: string
  3379. 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."
  3380. type: object
  3381. x-kubernetes-map-type: granular
  3382. allocatedResources:
  3383. additionalProperties:
  3384. anyOf:
  3385. - type: integer
  3386. - type: string
  3387. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3388. x-kubernetes-int-or-string: true
  3389. 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."
  3390. type: object
  3391. capacity:
  3392. additionalProperties:
  3393. anyOf:
  3394. - type: integer
  3395. - type: string
  3396. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3397. x-kubernetes-int-or-string: true
  3398. description: capacity represents the actual resources of the underlying volume.
  3399. type: object
  3400. conditions:
  3401. 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'.
  3402. items:
  3403. description: PersistentVolumeClaimCondition contains details about state of pvc
  3404. properties:
  3405. lastProbeTime:
  3406. description: lastProbeTime is the time we probed the condition.
  3407. format: date-time
  3408. type: string
  3409. lastTransitionTime:
  3410. description: lastTransitionTime is the time the condition transitioned from one status to another.
  3411. format: date-time
  3412. type: string
  3413. message:
  3414. description: message is the human-readable message indicating details about last transition.
  3415. type: string
  3416. reason:
  3417. 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.
  3418. type: string
  3419. status:
  3420. type: string
  3421. type:
  3422. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  3423. type: string
  3424. required:
  3425. - status
  3426. - type
  3427. type: object
  3428. type: array
  3429. phase:
  3430. description: phase represents the current phase of PersistentVolumeClaim.
  3431. type: string
  3432. type: object
  3433. type: object
  3434. type: array
  3435. type: object
  3436. nullable: true
  3437. type: array
  3438. onlyApplyOSDPlacement:
  3439. type: boolean
  3440. storageClassDeviceSets:
  3441. items:
  3442. description: StorageClassDeviceSet is a storage class device set
  3443. properties:
  3444. config:
  3445. additionalProperties:
  3446. type: string
  3447. description: Provider-specific device configuration
  3448. nullable: true
  3449. type: object
  3450. x-kubernetes-preserve-unknown-fields: true
  3451. count:
  3452. description: Count is the number of devices in this set
  3453. minimum: 1
  3454. type: integer
  3455. encrypted:
  3456. description: Whether to encrypt the deviceSet
  3457. type: boolean
  3458. name:
  3459. description: Name is a unique identifier for the set
  3460. type: string
  3461. placement:
  3462. description: Placement is the placement for an object
  3463. nullable: true
  3464. properties:
  3465. nodeAffinity:
  3466. description: NodeAffinity is a group of node affinity scheduling rules
  3467. properties:
  3468. preferredDuringSchedulingIgnoredDuringExecution:
  3469. 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.
  3470. items:
  3471. 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).
  3472. properties:
  3473. preference:
  3474. description: A node selector term, associated with the corresponding weight.
  3475. properties:
  3476. matchExpressions:
  3477. description: A list of node selector requirements by node's labels.
  3478. items:
  3479. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3480. properties:
  3481. key:
  3482. description: The label key that the selector applies to.
  3483. type: string
  3484. operator:
  3485. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3486. type: string
  3487. values:
  3488. 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.
  3489. items:
  3490. type: string
  3491. type: array
  3492. required:
  3493. - key
  3494. - operator
  3495. type: object
  3496. type: array
  3497. matchFields:
  3498. description: A list of node selector requirements by node's fields.
  3499. items:
  3500. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3501. properties:
  3502. key:
  3503. description: The label key that the selector applies to.
  3504. type: string
  3505. operator:
  3506. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3507. type: string
  3508. values:
  3509. 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.
  3510. items:
  3511. type: string
  3512. type: array
  3513. required:
  3514. - key
  3515. - operator
  3516. type: object
  3517. type: array
  3518. type: object
  3519. x-kubernetes-map-type: atomic
  3520. weight:
  3521. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  3522. format: int32
  3523. type: integer
  3524. required:
  3525. - preference
  3526. - weight
  3527. type: object
  3528. type: array
  3529. requiredDuringSchedulingIgnoredDuringExecution:
  3530. 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.
  3531. properties:
  3532. nodeSelectorTerms:
  3533. description: Required. A list of node selector terms. The terms are ORed.
  3534. items:
  3535. 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.
  3536. properties:
  3537. matchExpressions:
  3538. description: A list of node selector requirements by node's labels.
  3539. items:
  3540. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3541. properties:
  3542. key:
  3543. description: The label key that the selector applies to.
  3544. type: string
  3545. operator:
  3546. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3547. type: string
  3548. values:
  3549. 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.
  3550. items:
  3551. type: string
  3552. type: array
  3553. required:
  3554. - key
  3555. - operator
  3556. type: object
  3557. type: array
  3558. matchFields:
  3559. description: A list of node selector requirements by node's fields.
  3560. items:
  3561. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3562. properties:
  3563. key:
  3564. description: The label key that the selector applies to.
  3565. type: string
  3566. operator:
  3567. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3568. type: string
  3569. values:
  3570. 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.
  3571. items:
  3572. type: string
  3573. type: array
  3574. required:
  3575. - key
  3576. - operator
  3577. type: object
  3578. type: array
  3579. type: object
  3580. x-kubernetes-map-type: atomic
  3581. type: array
  3582. required:
  3583. - nodeSelectorTerms
  3584. type: object
  3585. x-kubernetes-map-type: atomic
  3586. type: object
  3587. podAffinity:
  3588. description: PodAffinity is a group of inter pod affinity scheduling rules
  3589. properties:
  3590. preferredDuringSchedulingIgnoredDuringExecution:
  3591. 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.
  3592. items:
  3593. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3594. properties:
  3595. podAffinityTerm:
  3596. description: Required. A pod affinity term, associated with the corresponding weight.
  3597. properties:
  3598. labelSelector:
  3599. description: A label query over a set of resources, in this case pods.
  3600. properties:
  3601. matchExpressions:
  3602. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3603. items:
  3604. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3605. properties:
  3606. key:
  3607. description: key is the label key that the selector applies to.
  3608. type: string
  3609. operator:
  3610. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3611. type: string
  3612. values:
  3613. 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.
  3614. items:
  3615. type: string
  3616. type: array
  3617. required:
  3618. - key
  3619. - operator
  3620. type: object
  3621. type: array
  3622. matchLabels:
  3623. additionalProperties:
  3624. type: string
  3625. 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.
  3626. type: object
  3627. type: object
  3628. x-kubernetes-map-type: atomic
  3629. namespaceSelector:
  3630. 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.
  3631. properties:
  3632. matchExpressions:
  3633. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3634. items:
  3635. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3636. properties:
  3637. key:
  3638. description: key is the label key that the selector applies to.
  3639. type: string
  3640. operator:
  3641. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3642. type: string
  3643. values:
  3644. 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.
  3645. items:
  3646. type: string
  3647. type: array
  3648. required:
  3649. - key
  3650. - operator
  3651. type: object
  3652. type: array
  3653. matchLabels:
  3654. additionalProperties:
  3655. type: string
  3656. 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.
  3657. type: object
  3658. type: object
  3659. x-kubernetes-map-type: atomic
  3660. namespaces:
  3661. 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".
  3662. items:
  3663. type: string
  3664. type: array
  3665. topologyKey:
  3666. 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.
  3667. type: string
  3668. required:
  3669. - topologyKey
  3670. type: object
  3671. weight:
  3672. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3673. format: int32
  3674. type: integer
  3675. required:
  3676. - podAffinityTerm
  3677. - weight
  3678. type: object
  3679. type: array
  3680. requiredDuringSchedulingIgnoredDuringExecution:
  3681. 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.
  3682. items:
  3683. 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
  3684. properties:
  3685. labelSelector:
  3686. description: A label query over a set of resources, in this case pods.
  3687. properties:
  3688. matchExpressions:
  3689. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3690. items:
  3691. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3692. properties:
  3693. key:
  3694. description: key is the label key that the selector applies to.
  3695. type: string
  3696. operator:
  3697. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3698. type: string
  3699. values:
  3700. 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.
  3701. items:
  3702. type: string
  3703. type: array
  3704. required:
  3705. - key
  3706. - operator
  3707. type: object
  3708. type: array
  3709. matchLabels:
  3710. additionalProperties:
  3711. type: string
  3712. 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.
  3713. type: object
  3714. type: object
  3715. x-kubernetes-map-type: atomic
  3716. namespaceSelector:
  3717. 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.
  3718. properties:
  3719. matchExpressions:
  3720. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3721. items:
  3722. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3723. properties:
  3724. key:
  3725. description: key is the label key that the selector applies to.
  3726. type: string
  3727. operator:
  3728. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3729. type: string
  3730. values:
  3731. 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.
  3732. items:
  3733. type: string
  3734. type: array
  3735. required:
  3736. - key
  3737. - operator
  3738. type: object
  3739. type: array
  3740. matchLabels:
  3741. additionalProperties:
  3742. type: string
  3743. 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.
  3744. type: object
  3745. type: object
  3746. x-kubernetes-map-type: atomic
  3747. namespaces:
  3748. 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".
  3749. items:
  3750. type: string
  3751. type: array
  3752. topologyKey:
  3753. 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.
  3754. type: string
  3755. required:
  3756. - topologyKey
  3757. type: object
  3758. type: array
  3759. type: object
  3760. podAntiAffinity:
  3761. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  3762. properties:
  3763. preferredDuringSchedulingIgnoredDuringExecution:
  3764. 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.
  3765. items:
  3766. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3767. properties:
  3768. podAffinityTerm:
  3769. description: Required. A pod affinity term, associated with the corresponding weight.
  3770. properties:
  3771. labelSelector:
  3772. description: A label query over a set of resources, in this case pods.
  3773. properties:
  3774. matchExpressions:
  3775. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3776. items:
  3777. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3778. properties:
  3779. key:
  3780. description: key is the label key that the selector applies to.
  3781. type: string
  3782. operator:
  3783. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3784. type: string
  3785. values:
  3786. 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.
  3787. items:
  3788. type: string
  3789. type: array
  3790. required:
  3791. - key
  3792. - operator
  3793. type: object
  3794. type: array
  3795. matchLabels:
  3796. additionalProperties:
  3797. type: string
  3798. 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.
  3799. type: object
  3800. type: object
  3801. x-kubernetes-map-type: atomic
  3802. namespaceSelector:
  3803. 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.
  3804. properties:
  3805. matchExpressions:
  3806. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3807. items:
  3808. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3809. properties:
  3810. key:
  3811. description: key is the label key that the selector applies to.
  3812. type: string
  3813. operator:
  3814. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3815. type: string
  3816. values:
  3817. 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.
  3818. items:
  3819. type: string
  3820. type: array
  3821. required:
  3822. - key
  3823. - operator
  3824. type: object
  3825. type: array
  3826. matchLabels:
  3827. additionalProperties:
  3828. type: string
  3829. 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.
  3830. type: object
  3831. type: object
  3832. x-kubernetes-map-type: atomic
  3833. namespaces:
  3834. 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".
  3835. items:
  3836. type: string
  3837. type: array
  3838. topologyKey:
  3839. 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.
  3840. type: string
  3841. required:
  3842. - topologyKey
  3843. type: object
  3844. weight:
  3845. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3846. format: int32
  3847. type: integer
  3848. required:
  3849. - podAffinityTerm
  3850. - weight
  3851. type: object
  3852. type: array
  3853. requiredDuringSchedulingIgnoredDuringExecution:
  3854. 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.
  3855. items:
  3856. 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
  3857. properties:
  3858. labelSelector:
  3859. description: A label query over a set of resources, in this case pods.
  3860. properties:
  3861. matchExpressions:
  3862. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3863. items:
  3864. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3865. properties:
  3866. key:
  3867. description: key is the label key that the selector applies to.
  3868. type: string
  3869. operator:
  3870. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3871. type: string
  3872. values:
  3873. 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.
  3874. items:
  3875. type: string
  3876. type: array
  3877. required:
  3878. - key
  3879. - operator
  3880. type: object
  3881. type: array
  3882. matchLabels:
  3883. additionalProperties:
  3884. type: string
  3885. 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.
  3886. type: object
  3887. type: object
  3888. x-kubernetes-map-type: atomic
  3889. namespaceSelector:
  3890. 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.
  3891. properties:
  3892. matchExpressions:
  3893. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3894. items:
  3895. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3896. properties:
  3897. key:
  3898. description: key is the label key that the selector applies to.
  3899. type: string
  3900. operator:
  3901. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3902. type: string
  3903. values:
  3904. 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.
  3905. items:
  3906. type: string
  3907. type: array
  3908. required:
  3909. - key
  3910. - operator
  3911. type: object
  3912. type: array
  3913. matchLabels:
  3914. additionalProperties:
  3915. type: string
  3916. 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.
  3917. type: object
  3918. type: object
  3919. x-kubernetes-map-type: atomic
  3920. namespaces:
  3921. 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".
  3922. items:
  3923. type: string
  3924. type: array
  3925. topologyKey:
  3926. 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.
  3927. type: string
  3928. required:
  3929. - topologyKey
  3930. type: object
  3931. type: array
  3932. type: object
  3933. tolerations:
  3934. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  3935. items:
  3936. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  3937. properties:
  3938. effect:
  3939. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  3940. type: string
  3941. key:
  3942. 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.
  3943. type: string
  3944. operator:
  3945. 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.
  3946. type: string
  3947. tolerationSeconds:
  3948. 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.
  3949. format: int64
  3950. type: integer
  3951. value:
  3952. 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.
  3953. type: string
  3954. type: object
  3955. type: array
  3956. topologySpreadConstraints:
  3957. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  3958. items:
  3959. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  3960. properties:
  3961. labelSelector:
  3962. 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.
  3963. properties:
  3964. matchExpressions:
  3965. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3966. items:
  3967. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3968. properties:
  3969. key:
  3970. description: key is the label key that the selector applies to.
  3971. type: string
  3972. operator:
  3973. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3974. type: string
  3975. values:
  3976. 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.
  3977. items:
  3978. type: string
  3979. type: array
  3980. required:
  3981. - key
  3982. - operator
  3983. type: object
  3984. type: array
  3985. matchLabels:
  3986. additionalProperties:
  3987. type: string
  3988. 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.
  3989. type: object
  3990. type: object
  3991. x-kubernetes-map-type: atomic
  3992. matchLabelKeys:
  3993. 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)."
  3994. items:
  3995. type: string
  3996. type: array
  3997. x-kubernetes-list-type: atomic
  3998. maxSkew:
  3999. 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.'
  4000. format: int32
  4001. type: integer
  4002. minDomains:
  4003. 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)."
  4004. format: int32
  4005. type: integer
  4006. nodeAffinityPolicy:
  4007. 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."
  4008. type: string
  4009. nodeTaintsPolicy:
  4010. 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."
  4011. type: string
  4012. topologyKey:
  4013. 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.
  4014. type: string
  4015. whenUnsatisfiable:
  4016. 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.'
  4017. type: string
  4018. required:
  4019. - maxSkew
  4020. - topologyKey
  4021. - whenUnsatisfiable
  4022. type: object
  4023. type: array
  4024. type: object
  4025. x-kubernetes-preserve-unknown-fields: true
  4026. portable:
  4027. description: Portable represents OSD portability across the hosts
  4028. type: boolean
  4029. preparePlacement:
  4030. description: Placement is the placement for an object
  4031. nullable: true
  4032. properties:
  4033. nodeAffinity:
  4034. description: NodeAffinity is a group of node affinity scheduling rules
  4035. properties:
  4036. preferredDuringSchedulingIgnoredDuringExecution:
  4037. 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.
  4038. items:
  4039. 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).
  4040. properties:
  4041. preference:
  4042. description: A node selector term, associated with the corresponding weight.
  4043. properties:
  4044. matchExpressions:
  4045. description: A list of node selector requirements by node's labels.
  4046. items:
  4047. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4048. properties:
  4049. key:
  4050. description: The label key that the selector applies to.
  4051. type: string
  4052. operator:
  4053. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4054. type: string
  4055. values:
  4056. 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.
  4057. items:
  4058. type: string
  4059. type: array
  4060. required:
  4061. - key
  4062. - operator
  4063. type: object
  4064. type: array
  4065. matchFields:
  4066. description: A list of node selector requirements by node's fields.
  4067. items:
  4068. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4069. properties:
  4070. key:
  4071. description: The label key that the selector applies to.
  4072. type: string
  4073. operator:
  4074. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4075. type: string
  4076. values:
  4077. 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.
  4078. items:
  4079. type: string
  4080. type: array
  4081. required:
  4082. - key
  4083. - operator
  4084. type: object
  4085. type: array
  4086. type: object
  4087. x-kubernetes-map-type: atomic
  4088. weight:
  4089. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  4090. format: int32
  4091. type: integer
  4092. required:
  4093. - preference
  4094. - weight
  4095. type: object
  4096. type: array
  4097. requiredDuringSchedulingIgnoredDuringExecution:
  4098. 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.
  4099. properties:
  4100. nodeSelectorTerms:
  4101. description: Required. A list of node selector terms. The terms are ORed.
  4102. items:
  4103. 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.
  4104. properties:
  4105. matchExpressions:
  4106. description: A list of node selector requirements by node's labels.
  4107. items:
  4108. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4109. properties:
  4110. key:
  4111. description: The label key that the selector applies to.
  4112. type: string
  4113. operator:
  4114. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4115. type: string
  4116. values:
  4117. 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.
  4118. items:
  4119. type: string
  4120. type: array
  4121. required:
  4122. - key
  4123. - operator
  4124. type: object
  4125. type: array
  4126. matchFields:
  4127. description: A list of node selector requirements by node's fields.
  4128. items:
  4129. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4130. properties:
  4131. key:
  4132. description: The label key that the selector applies to.
  4133. type: string
  4134. operator:
  4135. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4136. type: string
  4137. values:
  4138. 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.
  4139. items:
  4140. type: string
  4141. type: array
  4142. required:
  4143. - key
  4144. - operator
  4145. type: object
  4146. type: array
  4147. type: object
  4148. x-kubernetes-map-type: atomic
  4149. type: array
  4150. required:
  4151. - nodeSelectorTerms
  4152. type: object
  4153. x-kubernetes-map-type: atomic
  4154. type: object
  4155. podAffinity:
  4156. description: PodAffinity is a group of inter pod affinity scheduling rules
  4157. properties:
  4158. preferredDuringSchedulingIgnoredDuringExecution:
  4159. 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.
  4160. items:
  4161. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  4162. properties:
  4163. podAffinityTerm:
  4164. description: Required. A pod affinity term, associated with the corresponding weight.
  4165. properties:
  4166. labelSelector:
  4167. description: A label query over a set of resources, in this case pods.
  4168. properties:
  4169. matchExpressions:
  4170. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4171. items:
  4172. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4173. properties:
  4174. key:
  4175. description: key is the label key that the selector applies to.
  4176. type: string
  4177. operator:
  4178. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4179. type: string
  4180. values:
  4181. 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.
  4182. items:
  4183. type: string
  4184. type: array
  4185. required:
  4186. - key
  4187. - operator
  4188. type: object
  4189. type: array
  4190. matchLabels:
  4191. additionalProperties:
  4192. type: string
  4193. 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.
  4194. type: object
  4195. type: object
  4196. x-kubernetes-map-type: atomic
  4197. namespaceSelector:
  4198. 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.
  4199. properties:
  4200. matchExpressions:
  4201. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4202. items:
  4203. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4204. properties:
  4205. key:
  4206. description: key is the label key that the selector applies to.
  4207. type: string
  4208. operator:
  4209. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4210. type: string
  4211. values:
  4212. 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.
  4213. items:
  4214. type: string
  4215. type: array
  4216. required:
  4217. - key
  4218. - operator
  4219. type: object
  4220. type: array
  4221. matchLabels:
  4222. additionalProperties:
  4223. type: string
  4224. 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.
  4225. type: object
  4226. type: object
  4227. x-kubernetes-map-type: atomic
  4228. namespaces:
  4229. 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".
  4230. items:
  4231. type: string
  4232. type: array
  4233. topologyKey:
  4234. 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.
  4235. type: string
  4236. required:
  4237. - topologyKey
  4238. type: object
  4239. weight:
  4240. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4241. format: int32
  4242. type: integer
  4243. required:
  4244. - podAffinityTerm
  4245. - weight
  4246. type: object
  4247. type: array
  4248. requiredDuringSchedulingIgnoredDuringExecution:
  4249. 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.
  4250. items:
  4251. 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
  4252. properties:
  4253. labelSelector:
  4254. description: A label query over a set of resources, in this case pods.
  4255. properties:
  4256. matchExpressions:
  4257. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4258. items:
  4259. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4260. properties:
  4261. key:
  4262. description: key is the label key that the selector applies to.
  4263. type: string
  4264. operator:
  4265. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4266. type: string
  4267. values:
  4268. 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.
  4269. items:
  4270. type: string
  4271. type: array
  4272. required:
  4273. - key
  4274. - operator
  4275. type: object
  4276. type: array
  4277. matchLabels:
  4278. additionalProperties:
  4279. type: string
  4280. 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.
  4281. type: object
  4282. type: object
  4283. x-kubernetes-map-type: atomic
  4284. namespaceSelector:
  4285. 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.
  4286. properties:
  4287. matchExpressions:
  4288. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4289. items:
  4290. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4291. properties:
  4292. key:
  4293. description: key is the label key that the selector applies to.
  4294. type: string
  4295. operator:
  4296. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4297. type: string
  4298. values:
  4299. 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.
  4300. items:
  4301. type: string
  4302. type: array
  4303. required:
  4304. - key
  4305. - operator
  4306. type: object
  4307. type: array
  4308. matchLabels:
  4309. additionalProperties:
  4310. type: string
  4311. 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.
  4312. type: object
  4313. type: object
  4314. x-kubernetes-map-type: atomic
  4315. namespaces:
  4316. 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".
  4317. items:
  4318. type: string
  4319. type: array
  4320. topologyKey:
  4321. 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.
  4322. type: string
  4323. required:
  4324. - topologyKey
  4325. type: object
  4326. type: array
  4327. type: object
  4328. podAntiAffinity:
  4329. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  4330. properties:
  4331. preferredDuringSchedulingIgnoredDuringExecution:
  4332. 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.
  4333. items:
  4334. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  4335. properties:
  4336. podAffinityTerm:
  4337. description: Required. A pod affinity term, associated with the corresponding weight.
  4338. properties:
  4339. labelSelector:
  4340. description: A label query over a set of resources, in this case pods.
  4341. properties:
  4342. matchExpressions:
  4343. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4344. items:
  4345. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4346. properties:
  4347. key:
  4348. description: key is the label key that the selector applies to.
  4349. type: string
  4350. operator:
  4351. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4352. type: string
  4353. values:
  4354. 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.
  4355. items:
  4356. type: string
  4357. type: array
  4358. required:
  4359. - key
  4360. - operator
  4361. type: object
  4362. type: array
  4363. matchLabels:
  4364. additionalProperties:
  4365. type: string
  4366. 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.
  4367. type: object
  4368. type: object
  4369. x-kubernetes-map-type: atomic
  4370. namespaceSelector:
  4371. 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.
  4372. properties:
  4373. matchExpressions:
  4374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4375. items:
  4376. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4377. properties:
  4378. key:
  4379. description: key is the label key that the selector applies to.
  4380. type: string
  4381. operator:
  4382. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4383. type: string
  4384. values:
  4385. 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.
  4386. items:
  4387. type: string
  4388. type: array
  4389. required:
  4390. - key
  4391. - operator
  4392. type: object
  4393. type: array
  4394. matchLabels:
  4395. additionalProperties:
  4396. type: string
  4397. 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.
  4398. type: object
  4399. type: object
  4400. x-kubernetes-map-type: atomic
  4401. namespaces:
  4402. 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".
  4403. items:
  4404. type: string
  4405. type: array
  4406. topologyKey:
  4407. 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.
  4408. type: string
  4409. required:
  4410. - topologyKey
  4411. type: object
  4412. weight:
  4413. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4414. format: int32
  4415. type: integer
  4416. required:
  4417. - podAffinityTerm
  4418. - weight
  4419. type: object
  4420. type: array
  4421. requiredDuringSchedulingIgnoredDuringExecution:
  4422. 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.
  4423. items:
  4424. 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
  4425. properties:
  4426. labelSelector:
  4427. description: A label query over a set of resources, in this case pods.
  4428. properties:
  4429. matchExpressions:
  4430. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4431. items:
  4432. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4433. properties:
  4434. key:
  4435. description: key is the label key that the selector applies to.
  4436. type: string
  4437. operator:
  4438. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4439. type: string
  4440. values:
  4441. 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.
  4442. items:
  4443. type: string
  4444. type: array
  4445. required:
  4446. - key
  4447. - operator
  4448. type: object
  4449. type: array
  4450. matchLabels:
  4451. additionalProperties:
  4452. type: string
  4453. 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.
  4454. type: object
  4455. type: object
  4456. x-kubernetes-map-type: atomic
  4457. namespaceSelector:
  4458. 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.
  4459. properties:
  4460. matchExpressions:
  4461. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4462. items:
  4463. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4464. properties:
  4465. key:
  4466. description: key is the label key that the selector applies to.
  4467. type: string
  4468. operator:
  4469. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4470. type: string
  4471. values:
  4472. 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.
  4473. items:
  4474. type: string
  4475. type: array
  4476. required:
  4477. - key
  4478. - operator
  4479. type: object
  4480. type: array
  4481. matchLabels:
  4482. additionalProperties:
  4483. type: string
  4484. 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.
  4485. type: object
  4486. type: object
  4487. x-kubernetes-map-type: atomic
  4488. namespaces:
  4489. 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".
  4490. items:
  4491. type: string
  4492. type: array
  4493. topologyKey:
  4494. 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.
  4495. type: string
  4496. required:
  4497. - topologyKey
  4498. type: object
  4499. type: array
  4500. type: object
  4501. tolerations:
  4502. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  4503. items:
  4504. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  4505. properties:
  4506. effect:
  4507. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  4508. type: string
  4509. key:
  4510. 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.
  4511. type: string
  4512. operator:
  4513. 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.
  4514. type: string
  4515. tolerationSeconds:
  4516. 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.
  4517. format: int64
  4518. type: integer
  4519. value:
  4520. 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.
  4521. type: string
  4522. type: object
  4523. type: array
  4524. topologySpreadConstraints:
  4525. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  4526. items:
  4527. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  4528. properties:
  4529. labelSelector:
  4530. 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.
  4531. properties:
  4532. matchExpressions:
  4533. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4534. items:
  4535. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4536. properties:
  4537. key:
  4538. description: key is the label key that the selector applies to.
  4539. type: string
  4540. operator:
  4541. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4542. type: string
  4543. values:
  4544. 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.
  4545. items:
  4546. type: string
  4547. type: array
  4548. required:
  4549. - key
  4550. - operator
  4551. type: object
  4552. type: array
  4553. matchLabels:
  4554. additionalProperties:
  4555. type: string
  4556. 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.
  4557. type: object
  4558. type: object
  4559. x-kubernetes-map-type: atomic
  4560. matchLabelKeys:
  4561. 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)."
  4562. items:
  4563. type: string
  4564. type: array
  4565. x-kubernetes-list-type: atomic
  4566. maxSkew:
  4567. 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.'
  4568. format: int32
  4569. type: integer
  4570. minDomains:
  4571. 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)."
  4572. format: int32
  4573. type: integer
  4574. nodeAffinityPolicy:
  4575. 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."
  4576. type: string
  4577. nodeTaintsPolicy:
  4578. 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."
  4579. type: string
  4580. topologyKey:
  4581. 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.
  4582. type: string
  4583. whenUnsatisfiable:
  4584. 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.'
  4585. type: string
  4586. required:
  4587. - maxSkew
  4588. - topologyKey
  4589. - whenUnsatisfiable
  4590. type: object
  4591. type: array
  4592. type: object
  4593. x-kubernetes-preserve-unknown-fields: true
  4594. resources:
  4595. description: ResourceRequirements describes the compute resource requirements.
  4596. nullable: true
  4597. properties:
  4598. claims:
  4599. 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."
  4600. items:
  4601. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4602. properties:
  4603. name:
  4604. 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.
  4605. type: string
  4606. required:
  4607. - name
  4608. type: object
  4609. type: array
  4610. x-kubernetes-list-map-keys:
  4611. - name
  4612. x-kubernetes-list-type: map
  4613. limits:
  4614. additionalProperties:
  4615. anyOf:
  4616. - type: integer
  4617. - type: string
  4618. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4619. x-kubernetes-int-or-string: true
  4620. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4621. type: object
  4622. requests:
  4623. additionalProperties:
  4624. anyOf:
  4625. - type: integer
  4626. - type: string
  4627. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4628. x-kubernetes-int-or-string: true
  4629. 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/'
  4630. type: object
  4631. type: object
  4632. x-kubernetes-preserve-unknown-fields: true
  4633. schedulerName:
  4634. description: Scheduler name for OSD pod placement
  4635. type: string
  4636. tuneDeviceClass:
  4637. description: TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
  4638. type: boolean
  4639. tuneFastDeviceClass:
  4640. description: TuneFastDeviceClass Tune the OSD when running on a fast Device Class
  4641. type: boolean
  4642. volumeClaimTemplates:
  4643. description: VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
  4644. items:
  4645. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4646. properties:
  4647. apiVersion:
  4648. 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'
  4649. type: string
  4650. kind:
  4651. 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'
  4652. type: string
  4653. metadata:
  4654. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4655. properties:
  4656. annotations:
  4657. additionalProperties:
  4658. type: string
  4659. type: object
  4660. x-kubernetes-preserve-unknown-fields: true
  4661. finalizers:
  4662. items:
  4663. type: string
  4664. type: array
  4665. labels:
  4666. additionalProperties:
  4667. type: string
  4668. type: object
  4669. name:
  4670. type: string
  4671. namespace:
  4672. type: string
  4673. type: object
  4674. spec:
  4675. 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'
  4676. properties:
  4677. accessModes:
  4678. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4679. items:
  4680. type: string
  4681. type: array
  4682. dataSource:
  4683. 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.'
  4684. properties:
  4685. apiGroup:
  4686. 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.
  4687. type: string
  4688. kind:
  4689. description: Kind is the type of resource being referenced
  4690. type: string
  4691. name:
  4692. description: Name is the name of resource being referenced
  4693. type: string
  4694. required:
  4695. - kind
  4696. - name
  4697. type: object
  4698. x-kubernetes-map-type: atomic
  4699. dataSourceRef:
  4700. 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.'
  4701. properties:
  4702. apiGroup:
  4703. 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.
  4704. type: string
  4705. kind:
  4706. description: Kind is the type of resource being referenced
  4707. type: string
  4708. name:
  4709. description: Name is the name of resource being referenced
  4710. type: string
  4711. namespace:
  4712. 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.
  4713. type: string
  4714. required:
  4715. - kind
  4716. - name
  4717. type: object
  4718. resources:
  4719. 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'
  4720. properties:
  4721. claims:
  4722. 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."
  4723. items:
  4724. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4725. properties:
  4726. name:
  4727. 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.
  4728. type: string
  4729. required:
  4730. - name
  4731. type: object
  4732. type: array
  4733. x-kubernetes-list-map-keys:
  4734. - name
  4735. x-kubernetes-list-type: map
  4736. limits:
  4737. additionalProperties:
  4738. anyOf:
  4739. - type: integer
  4740. - type: string
  4741. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4742. x-kubernetes-int-or-string: true
  4743. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4744. type: object
  4745. requests:
  4746. additionalProperties:
  4747. anyOf:
  4748. - type: integer
  4749. - type: string
  4750. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4751. x-kubernetes-int-or-string: true
  4752. 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/'
  4753. type: object
  4754. type: object
  4755. selector:
  4756. description: selector is a label query over volumes to consider for binding.
  4757. properties:
  4758. matchExpressions:
  4759. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4760. items:
  4761. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4762. properties:
  4763. key:
  4764. description: key is the label key that the selector applies to.
  4765. type: string
  4766. operator:
  4767. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4768. type: string
  4769. values:
  4770. 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.
  4771. items:
  4772. type: string
  4773. type: array
  4774. required:
  4775. - key
  4776. - operator
  4777. type: object
  4778. type: array
  4779. matchLabels:
  4780. additionalProperties:
  4781. type: string
  4782. 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.
  4783. type: object
  4784. type: object
  4785. x-kubernetes-map-type: atomic
  4786. storageClassName:
  4787. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  4788. type: string
  4789. volumeMode:
  4790. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4791. type: string
  4792. volumeName:
  4793. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4794. type: string
  4795. type: object
  4796. status:
  4797. 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'
  4798. properties:
  4799. accessModes:
  4800. 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'
  4801. items:
  4802. type: string
  4803. type: array
  4804. allocatedResourceStatuses:
  4805. additionalProperties:
  4806. 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.
  4807. type: string
  4808. 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."
  4809. type: object
  4810. x-kubernetes-map-type: granular
  4811. allocatedResources:
  4812. additionalProperties:
  4813. anyOf:
  4814. - type: integer
  4815. - type: string
  4816. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4817. x-kubernetes-int-or-string: true
  4818. 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."
  4819. type: object
  4820. capacity:
  4821. additionalProperties:
  4822. anyOf:
  4823. - type: integer
  4824. - type: string
  4825. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4826. x-kubernetes-int-or-string: true
  4827. description: capacity represents the actual resources of the underlying volume.
  4828. type: object
  4829. conditions:
  4830. 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'.
  4831. items:
  4832. description: PersistentVolumeClaimCondition contains details about state of pvc
  4833. properties:
  4834. lastProbeTime:
  4835. description: lastProbeTime is the time we probed the condition.
  4836. format: date-time
  4837. type: string
  4838. lastTransitionTime:
  4839. description: lastTransitionTime is the time the condition transitioned from one status to another.
  4840. format: date-time
  4841. type: string
  4842. message:
  4843. description: message is the human-readable message indicating details about last transition.
  4844. type: string
  4845. reason:
  4846. 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.
  4847. type: string
  4848. status:
  4849. type: string
  4850. type:
  4851. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  4852. type: string
  4853. required:
  4854. - status
  4855. - type
  4856. type: object
  4857. type: array
  4858. phase:
  4859. description: phase represents the current phase of PersistentVolumeClaim.
  4860. type: string
  4861. type: object
  4862. type: object
  4863. type: array
  4864. required:
  4865. - count
  4866. - name
  4867. - volumeClaimTemplates
  4868. type: object
  4869. nullable: true
  4870. type: array
  4871. store:
  4872. description: OSDStore is the backend storage type used for creating the OSDs
  4873. properties:
  4874. type:
  4875. description: Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used
  4876. enum:
  4877. - bluestore
  4878. - bluestore-rdr
  4879. type: string
  4880. updateStore:
  4881. 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
  4882. pattern: ^$|^yes-really-update-store$
  4883. type: string
  4884. type: object
  4885. useAllDevices:
  4886. description: Whether to consume all the storage devices found on a machine
  4887. type: boolean
  4888. useAllNodes:
  4889. type: boolean
  4890. volumeClaimTemplates:
  4891. description: PersistentVolumeClaims to use as storage
  4892. items:
  4893. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4894. properties:
  4895. apiVersion:
  4896. 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'
  4897. type: string
  4898. kind:
  4899. 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'
  4900. type: string
  4901. metadata:
  4902. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4903. properties:
  4904. annotations:
  4905. additionalProperties:
  4906. type: string
  4907. type: object
  4908. finalizers:
  4909. items:
  4910. type: string
  4911. type: array
  4912. labels:
  4913. additionalProperties:
  4914. type: string
  4915. type: object
  4916. name:
  4917. type: string
  4918. namespace:
  4919. type: string
  4920. type: object
  4921. spec:
  4922. 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'
  4923. properties:
  4924. accessModes:
  4925. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4926. items:
  4927. type: string
  4928. type: array
  4929. dataSource:
  4930. 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.'
  4931. properties:
  4932. apiGroup:
  4933. 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.
  4934. type: string
  4935. kind:
  4936. description: Kind is the type of resource being referenced
  4937. type: string
  4938. name:
  4939. description: Name is the name of resource being referenced
  4940. type: string
  4941. required:
  4942. - kind
  4943. - name
  4944. type: object
  4945. x-kubernetes-map-type: atomic
  4946. dataSourceRef:
  4947. 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.'
  4948. properties:
  4949. apiGroup:
  4950. 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.
  4951. type: string
  4952. kind:
  4953. description: Kind is the type of resource being referenced
  4954. type: string
  4955. name:
  4956. description: Name is the name of resource being referenced
  4957. type: string
  4958. namespace:
  4959. 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.
  4960. type: string
  4961. required:
  4962. - kind
  4963. - name
  4964. type: object
  4965. resources:
  4966. 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'
  4967. properties:
  4968. claims:
  4969. 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."
  4970. items:
  4971. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4972. properties:
  4973. name:
  4974. 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.
  4975. type: string
  4976. required:
  4977. - name
  4978. type: object
  4979. type: array
  4980. x-kubernetes-list-map-keys:
  4981. - name
  4982. x-kubernetes-list-type: map
  4983. limits:
  4984. additionalProperties:
  4985. anyOf:
  4986. - type: integer
  4987. - type: string
  4988. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4989. x-kubernetes-int-or-string: true
  4990. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4991. type: object
  4992. requests:
  4993. additionalProperties:
  4994. anyOf:
  4995. - type: integer
  4996. - type: string
  4997. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4998. x-kubernetes-int-or-string: true
  4999. 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/'
  5000. type: object
  5001. type: object
  5002. selector:
  5003. description: selector is a label query over volumes to consider for binding.
  5004. properties:
  5005. matchExpressions:
  5006. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5007. items:
  5008. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5009. properties:
  5010. key:
  5011. description: key is the label key that the selector applies to.
  5012. type: string
  5013. operator:
  5014. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5015. type: string
  5016. values:
  5017. 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.
  5018. items:
  5019. type: string
  5020. type: array
  5021. required:
  5022. - key
  5023. - operator
  5024. type: object
  5025. type: array
  5026. matchLabels:
  5027. additionalProperties:
  5028. type: string
  5029. 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.
  5030. type: object
  5031. type: object
  5032. x-kubernetes-map-type: atomic
  5033. storageClassName:
  5034. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  5035. type: string
  5036. volumeMode:
  5037. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  5038. type: string
  5039. volumeName:
  5040. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  5041. type: string
  5042. type: object
  5043. status:
  5044. 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'
  5045. properties:
  5046. accessModes:
  5047. 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'
  5048. items:
  5049. type: string
  5050. type: array
  5051. allocatedResourceStatuses:
  5052. additionalProperties:
  5053. 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.
  5054. type: string
  5055. 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."
  5056. type: object
  5057. x-kubernetes-map-type: granular
  5058. allocatedResources:
  5059. additionalProperties:
  5060. anyOf:
  5061. - type: integer
  5062. - type: string
  5063. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5064. x-kubernetes-int-or-string: true
  5065. 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."
  5066. type: object
  5067. capacity:
  5068. additionalProperties:
  5069. anyOf:
  5070. - type: integer
  5071. - type: string
  5072. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5073. x-kubernetes-int-or-string: true
  5074. description: capacity represents the actual resources of the underlying volume.
  5075. type: object
  5076. conditions:
  5077. 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'.
  5078. items:
  5079. description: PersistentVolumeClaimCondition contains details about state of pvc
  5080. properties:
  5081. lastProbeTime:
  5082. description: lastProbeTime is the time we probed the condition.
  5083. format: date-time
  5084. type: string
  5085. lastTransitionTime:
  5086. description: lastTransitionTime is the time the condition transitioned from one status to another.
  5087. format: date-time
  5088. type: string
  5089. message:
  5090. description: message is the human-readable message indicating details about last transition.
  5091. type: string
  5092. reason:
  5093. 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.
  5094. type: string
  5095. status:
  5096. type: string
  5097. type:
  5098. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  5099. type: string
  5100. required:
  5101. - status
  5102. - type
  5103. type: object
  5104. type: array
  5105. phase:
  5106. description: phase represents the current phase of PersistentVolumeClaim.
  5107. type: string
  5108. type: object
  5109. type: object
  5110. type: array
  5111. type: object
  5112. waitTimeoutForHealthyOSDInMinutes:
  5113. 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.
  5114. format: int64
  5115. type: integer
  5116. type: object
  5117. status:
  5118. description: ClusterStatus represents the status of a Ceph cluster
  5119. nullable: true
  5120. properties:
  5121. ceph:
  5122. description: CephStatus is the details health of a Ceph Cluster
  5123. properties:
  5124. capacity:
  5125. description: Capacity is the capacity information of a Ceph Cluster
  5126. properties:
  5127. bytesAvailable:
  5128. format: int64
  5129. type: integer
  5130. bytesTotal:
  5131. format: int64
  5132. type: integer
  5133. bytesUsed:
  5134. format: int64
  5135. type: integer
  5136. lastUpdated:
  5137. type: string
  5138. type: object
  5139. details:
  5140. additionalProperties:
  5141. description: CephHealthMessage represents the health message of a Ceph Cluster
  5142. properties:
  5143. message:
  5144. type: string
  5145. severity:
  5146. type: string
  5147. required:
  5148. - message
  5149. - severity
  5150. type: object
  5151. type: object
  5152. fsid:
  5153. type: string
  5154. health:
  5155. type: string
  5156. lastChanged:
  5157. type: string
  5158. lastChecked:
  5159. type: string
  5160. previousHealth:
  5161. type: string
  5162. versions:
  5163. description: CephDaemonsVersions show the current ceph version for different ceph daemons
  5164. properties:
  5165. cephfs-mirror:
  5166. additionalProperties:
  5167. type: integer
  5168. description: CephFSMirror shows CephFSMirror Ceph version
  5169. type: object
  5170. mds:
  5171. additionalProperties:
  5172. type: integer
  5173. description: Mds shows Mds Ceph version
  5174. type: object
  5175. mgr:
  5176. additionalProperties:
  5177. type: integer
  5178. description: Mgr shows Mgr Ceph version
  5179. type: object
  5180. mon:
  5181. additionalProperties:
  5182. type: integer
  5183. description: Mon shows Mon Ceph version
  5184. type: object
  5185. osd:
  5186. additionalProperties:
  5187. type: integer
  5188. description: Osd shows Osd Ceph version
  5189. type: object
  5190. overall:
  5191. additionalProperties:
  5192. type: integer
  5193. description: Overall shows overall Ceph version
  5194. type: object
  5195. rbd-mirror:
  5196. additionalProperties:
  5197. type: integer
  5198. description: RbdMirror shows RbdMirror Ceph version
  5199. type: object
  5200. rgw:
  5201. additionalProperties:
  5202. type: integer
  5203. description: Rgw shows Rgw Ceph version
  5204. type: object
  5205. type: object
  5206. type: object
  5207. conditions:
  5208. items:
  5209. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  5210. properties:
  5211. lastHeartbeatTime:
  5212. format: date-time
  5213. type: string
  5214. lastTransitionTime:
  5215. format: date-time
  5216. type: string
  5217. message:
  5218. type: string
  5219. reason:
  5220. description: ConditionReason is a reason for a condition
  5221. type: string
  5222. status:
  5223. type: string
  5224. type:
  5225. description: ConditionType represent a resource's status
  5226. type: string
  5227. type: object
  5228. type: array
  5229. message:
  5230. type: string
  5231. observedGeneration:
  5232. description: ObservedGeneration is the latest generation observed by the controller.
  5233. format: int64
  5234. type: integer
  5235. phase:
  5236. description: ConditionType represent a resource's status
  5237. type: string
  5238. state:
  5239. description: ClusterState represents the state of a Ceph Cluster
  5240. type: string
  5241. storage:
  5242. description: CephStorage represents flavors of Ceph Cluster Storage
  5243. properties:
  5244. deviceClasses:
  5245. items:
  5246. description: DeviceClasses represents device classes of a Ceph Cluster
  5247. properties:
  5248. name:
  5249. type: string
  5250. type: object
  5251. type: array
  5252. osd:
  5253. description: OSDStatus represents OSD status of the ceph Cluster
  5254. properties:
  5255. storeType:
  5256. additionalProperties:
  5257. type: integer
  5258. description: StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
  5259. type: object
  5260. type: object
  5261. type: object
  5262. version:
  5263. description: ClusterVersion represents the version of a Ceph Cluster
  5264. properties:
  5265. image:
  5266. type: string
  5267. version:
  5268. type: string
  5269. type: object
  5270. type: object
  5271. x-kubernetes-preserve-unknown-fields: true
  5272. required:
  5273. - metadata
  5274. - spec
  5275. type: object
  5276. served: true
  5277. storage: true
  5278. subresources:
  5279. status: {}
  5280. ---
  5281. # Source: rook-ceph/templates/resources.yaml
  5282. apiVersion: apiextensions.k8s.io/v1
  5283. kind: CustomResourceDefinition
  5284. metadata:
  5285. annotations:
  5286. controller-gen.kubebuilder.io/version: v0.11.3
  5287. helm.sh/resource-policy: keep
  5288. creationTimestamp: null
  5289. name: cephcosidrivers.ceph.rook.io
  5290. spec:
  5291. group: ceph.rook.io
  5292. names:
  5293. kind: CephCOSIDriver
  5294. listKind: CephCOSIDriverList
  5295. plural: cephcosidrivers
  5296. shortNames:
  5297. - cephcosi
  5298. singular: cephcosidriver
  5299. scope: Namespaced
  5300. versions:
  5301. - name: v1
  5302. schema:
  5303. openAPIV3Schema:
  5304. description: CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment
  5305. properties:
  5306. apiVersion:
  5307. 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'
  5308. type: string
  5309. kind:
  5310. 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'
  5311. type: string
  5312. metadata:
  5313. type: object
  5314. spec:
  5315. description: Spec represents the specification of a Ceph COSI Driver
  5316. properties:
  5317. deploymentStrategy:
  5318. description: DeploymentStrategy is the strategy to use to deploy the COSI driver.
  5319. enum:
  5320. - Never
  5321. - Auto
  5322. - Always
  5323. type: string
  5324. image:
  5325. description: Image is the container image to run the Ceph COSI driver
  5326. type: string
  5327. objectProvisionerImage:
  5328. description: ObjectProvisionerImage is the container image to run the COSI driver sidecar
  5329. type: string
  5330. placement:
  5331. description: Placement is the placement strategy to use for the COSI driver
  5332. properties:
  5333. nodeAffinity:
  5334. description: NodeAffinity is a group of node affinity scheduling rules
  5335. properties:
  5336. preferredDuringSchedulingIgnoredDuringExecution:
  5337. 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.
  5338. items:
  5339. 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).
  5340. properties:
  5341. preference:
  5342. description: A node selector term, associated with the corresponding weight.
  5343. properties:
  5344. matchExpressions:
  5345. description: A list of node selector requirements by node's labels.
  5346. items:
  5347. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5348. properties:
  5349. key:
  5350. description: The label key that the selector applies to.
  5351. type: string
  5352. operator:
  5353. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5354. type: string
  5355. values:
  5356. 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.
  5357. items:
  5358. type: string
  5359. type: array
  5360. required:
  5361. - key
  5362. - operator
  5363. type: object
  5364. type: array
  5365. matchFields:
  5366. description: A list of node selector requirements by node's fields.
  5367. items:
  5368. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5369. properties:
  5370. key:
  5371. description: The label key that the selector applies to.
  5372. type: string
  5373. operator:
  5374. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5375. type: string
  5376. values:
  5377. 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.
  5378. items:
  5379. type: string
  5380. type: array
  5381. required:
  5382. - key
  5383. - operator
  5384. type: object
  5385. type: array
  5386. type: object
  5387. x-kubernetes-map-type: atomic
  5388. weight:
  5389. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5390. format: int32
  5391. type: integer
  5392. required:
  5393. - preference
  5394. - weight
  5395. type: object
  5396. type: array
  5397. requiredDuringSchedulingIgnoredDuringExecution:
  5398. 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.
  5399. properties:
  5400. nodeSelectorTerms:
  5401. description: Required. A list of node selector terms. The terms are ORed.
  5402. items:
  5403. 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.
  5404. properties:
  5405. matchExpressions:
  5406. description: A list of node selector requirements by node's labels.
  5407. items:
  5408. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5409. properties:
  5410. key:
  5411. description: The label key that the selector applies to.
  5412. type: string
  5413. operator:
  5414. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5415. type: string
  5416. values:
  5417. 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.
  5418. items:
  5419. type: string
  5420. type: array
  5421. required:
  5422. - key
  5423. - operator
  5424. type: object
  5425. type: array
  5426. matchFields:
  5427. description: A list of node selector requirements by node's fields.
  5428. items:
  5429. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5430. properties:
  5431. key:
  5432. description: The label key that the selector applies to.
  5433. type: string
  5434. operator:
  5435. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5436. type: string
  5437. values:
  5438. 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.
  5439. items:
  5440. type: string
  5441. type: array
  5442. required:
  5443. - key
  5444. - operator
  5445. type: object
  5446. type: array
  5447. type: object
  5448. x-kubernetes-map-type: atomic
  5449. type: array
  5450. required:
  5451. - nodeSelectorTerms
  5452. type: object
  5453. x-kubernetes-map-type: atomic
  5454. type: object
  5455. podAffinity:
  5456. description: PodAffinity is a group of inter pod affinity scheduling rules
  5457. properties:
  5458. preferredDuringSchedulingIgnoredDuringExecution:
  5459. 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.
  5460. items:
  5461. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5462. properties:
  5463. podAffinityTerm:
  5464. description: Required. A pod affinity term, associated with the corresponding weight.
  5465. properties:
  5466. labelSelector:
  5467. description: A label query over a set of resources, in this case pods.
  5468. properties:
  5469. matchExpressions:
  5470. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5471. items:
  5472. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5473. properties:
  5474. key:
  5475. description: key is the label key that the selector applies to.
  5476. type: string
  5477. operator:
  5478. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5479. type: string
  5480. values:
  5481. 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.
  5482. items:
  5483. type: string
  5484. type: array
  5485. required:
  5486. - key
  5487. - operator
  5488. type: object
  5489. type: array
  5490. matchLabels:
  5491. additionalProperties:
  5492. type: string
  5493. 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.
  5494. type: object
  5495. type: object
  5496. x-kubernetes-map-type: atomic
  5497. namespaceSelector:
  5498. 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.
  5499. properties:
  5500. matchExpressions:
  5501. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5502. items:
  5503. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5504. properties:
  5505. key:
  5506. description: key is the label key that the selector applies to.
  5507. type: string
  5508. operator:
  5509. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5510. type: string
  5511. values:
  5512. 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.
  5513. items:
  5514. type: string
  5515. type: array
  5516. required:
  5517. - key
  5518. - operator
  5519. type: object
  5520. type: array
  5521. matchLabels:
  5522. additionalProperties:
  5523. type: string
  5524. 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.
  5525. type: object
  5526. type: object
  5527. x-kubernetes-map-type: atomic
  5528. namespaces:
  5529. 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".
  5530. items:
  5531. type: string
  5532. type: array
  5533. topologyKey:
  5534. 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.
  5535. type: string
  5536. required:
  5537. - topologyKey
  5538. type: object
  5539. weight:
  5540. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5541. format: int32
  5542. type: integer
  5543. required:
  5544. - podAffinityTerm
  5545. - weight
  5546. type: object
  5547. type: array
  5548. requiredDuringSchedulingIgnoredDuringExecution:
  5549. 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.
  5550. items:
  5551. 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
  5552. properties:
  5553. labelSelector:
  5554. description: A label query over a set of resources, in this case pods.
  5555. properties:
  5556. matchExpressions:
  5557. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5558. items:
  5559. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5560. properties:
  5561. key:
  5562. description: key is the label key that the selector applies to.
  5563. type: string
  5564. operator:
  5565. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5566. type: string
  5567. values:
  5568. 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.
  5569. items:
  5570. type: string
  5571. type: array
  5572. required:
  5573. - key
  5574. - operator
  5575. type: object
  5576. type: array
  5577. matchLabels:
  5578. additionalProperties:
  5579. type: string
  5580. 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.
  5581. type: object
  5582. type: object
  5583. x-kubernetes-map-type: atomic
  5584. namespaceSelector:
  5585. 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.
  5586. properties:
  5587. matchExpressions:
  5588. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5589. items:
  5590. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5591. properties:
  5592. key:
  5593. description: key is the label key that the selector applies to.
  5594. type: string
  5595. operator:
  5596. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5597. type: string
  5598. values:
  5599. 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.
  5600. items:
  5601. type: string
  5602. type: array
  5603. required:
  5604. - key
  5605. - operator
  5606. type: object
  5607. type: array
  5608. matchLabels:
  5609. additionalProperties:
  5610. type: string
  5611. 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.
  5612. type: object
  5613. type: object
  5614. x-kubernetes-map-type: atomic
  5615. namespaces:
  5616. 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".
  5617. items:
  5618. type: string
  5619. type: array
  5620. topologyKey:
  5621. 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.
  5622. type: string
  5623. required:
  5624. - topologyKey
  5625. type: object
  5626. type: array
  5627. type: object
  5628. podAntiAffinity:
  5629. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  5630. properties:
  5631. preferredDuringSchedulingIgnoredDuringExecution:
  5632. 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.
  5633. items:
  5634. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5635. properties:
  5636. podAffinityTerm:
  5637. description: Required. A pod affinity term, associated with the corresponding weight.
  5638. properties:
  5639. labelSelector:
  5640. description: A label query over a set of resources, in this case pods.
  5641. properties:
  5642. matchExpressions:
  5643. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5644. items:
  5645. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5646. properties:
  5647. key:
  5648. description: key is the label key that the selector applies to.
  5649. type: string
  5650. operator:
  5651. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5652. type: string
  5653. values:
  5654. 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.
  5655. items:
  5656. type: string
  5657. type: array
  5658. required:
  5659. - key
  5660. - operator
  5661. type: object
  5662. type: array
  5663. matchLabels:
  5664. additionalProperties:
  5665. type: string
  5666. 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.
  5667. type: object
  5668. type: object
  5669. x-kubernetes-map-type: atomic
  5670. namespaceSelector:
  5671. 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.
  5672. properties:
  5673. matchExpressions:
  5674. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5675. items:
  5676. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5677. properties:
  5678. key:
  5679. description: key is the label key that the selector applies to.
  5680. type: string
  5681. operator:
  5682. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5683. type: string
  5684. values:
  5685. 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.
  5686. items:
  5687. type: string
  5688. type: array
  5689. required:
  5690. - key
  5691. - operator
  5692. type: object
  5693. type: array
  5694. matchLabels:
  5695. additionalProperties:
  5696. type: string
  5697. 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.
  5698. type: object
  5699. type: object
  5700. x-kubernetes-map-type: atomic
  5701. namespaces:
  5702. 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".
  5703. items:
  5704. type: string
  5705. type: array
  5706. topologyKey:
  5707. 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.
  5708. type: string
  5709. required:
  5710. - topologyKey
  5711. type: object
  5712. weight:
  5713. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5714. format: int32
  5715. type: integer
  5716. required:
  5717. - podAffinityTerm
  5718. - weight
  5719. type: object
  5720. type: array
  5721. requiredDuringSchedulingIgnoredDuringExecution:
  5722. 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.
  5723. items:
  5724. 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
  5725. properties:
  5726. labelSelector:
  5727. description: A label query over a set of resources, in this case pods.
  5728. properties:
  5729. matchExpressions:
  5730. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5731. items:
  5732. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5733. properties:
  5734. key:
  5735. description: key is the label key that the selector applies to.
  5736. type: string
  5737. operator:
  5738. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5739. type: string
  5740. values:
  5741. 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.
  5742. items:
  5743. type: string
  5744. type: array
  5745. required:
  5746. - key
  5747. - operator
  5748. type: object
  5749. type: array
  5750. matchLabels:
  5751. additionalProperties:
  5752. type: string
  5753. 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.
  5754. type: object
  5755. type: object
  5756. x-kubernetes-map-type: atomic
  5757. namespaceSelector:
  5758. 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.
  5759. properties:
  5760. matchExpressions:
  5761. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5762. items:
  5763. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5764. properties:
  5765. key:
  5766. description: key is the label key that the selector applies to.
  5767. type: string
  5768. operator:
  5769. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5770. type: string
  5771. values:
  5772. 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.
  5773. items:
  5774. type: string
  5775. type: array
  5776. required:
  5777. - key
  5778. - operator
  5779. type: object
  5780. type: array
  5781. matchLabels:
  5782. additionalProperties:
  5783. type: string
  5784. 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.
  5785. type: object
  5786. type: object
  5787. x-kubernetes-map-type: atomic
  5788. namespaces:
  5789. 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".
  5790. items:
  5791. type: string
  5792. type: array
  5793. topologyKey:
  5794. 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.
  5795. type: string
  5796. required:
  5797. - topologyKey
  5798. type: object
  5799. type: array
  5800. type: object
  5801. tolerations:
  5802. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  5803. items:
  5804. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  5805. properties:
  5806. effect:
  5807. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  5808. type: string
  5809. key:
  5810. 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.
  5811. type: string
  5812. operator:
  5813. 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.
  5814. type: string
  5815. tolerationSeconds:
  5816. 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.
  5817. format: int64
  5818. type: integer
  5819. value:
  5820. 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.
  5821. type: string
  5822. type: object
  5823. type: array
  5824. topologySpreadConstraints:
  5825. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  5826. items:
  5827. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  5828. properties:
  5829. labelSelector:
  5830. 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.
  5831. properties:
  5832. matchExpressions:
  5833. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5834. items:
  5835. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5836. properties:
  5837. key:
  5838. description: key is the label key that the selector applies to.
  5839. type: string
  5840. operator:
  5841. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5842. type: string
  5843. values:
  5844. 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.
  5845. items:
  5846. type: string
  5847. type: array
  5848. required:
  5849. - key
  5850. - operator
  5851. type: object
  5852. type: array
  5853. matchLabels:
  5854. additionalProperties:
  5855. type: string
  5856. 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.
  5857. type: object
  5858. type: object
  5859. x-kubernetes-map-type: atomic
  5860. matchLabelKeys:
  5861. 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)."
  5862. items:
  5863. type: string
  5864. type: array
  5865. x-kubernetes-list-type: atomic
  5866. maxSkew:
  5867. 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.'
  5868. format: int32
  5869. type: integer
  5870. minDomains:
  5871. 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)."
  5872. format: int32
  5873. type: integer
  5874. nodeAffinityPolicy:
  5875. 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."
  5876. type: string
  5877. nodeTaintsPolicy:
  5878. 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."
  5879. type: string
  5880. topologyKey:
  5881. 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.
  5882. type: string
  5883. whenUnsatisfiable:
  5884. 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.'
  5885. type: string
  5886. required:
  5887. - maxSkew
  5888. - topologyKey
  5889. - whenUnsatisfiable
  5890. type: object
  5891. type: array
  5892. type: object
  5893. resources:
  5894. description: Resources is the resource requirements for the COSI driver
  5895. properties:
  5896. claims:
  5897. 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."
  5898. items:
  5899. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  5900. properties:
  5901. name:
  5902. 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.
  5903. type: string
  5904. required:
  5905. - name
  5906. type: object
  5907. type: array
  5908. x-kubernetes-list-map-keys:
  5909. - name
  5910. x-kubernetes-list-type: map
  5911. limits:
  5912. additionalProperties:
  5913. anyOf:
  5914. - type: integer
  5915. - type: string
  5916. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5917. x-kubernetes-int-or-string: true
  5918. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  5919. type: object
  5920. requests:
  5921. additionalProperties:
  5922. anyOf:
  5923. - type: integer
  5924. - type: string
  5925. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5926. x-kubernetes-int-or-string: true
  5927. 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/'
  5928. type: object
  5929. type: object
  5930. type: object
  5931. required:
  5932. - metadata
  5933. - spec
  5934. type: object
  5935. served: true
  5936. storage: true
  5937. ---
  5938. # Source: rook-ceph/templates/resources.yaml
  5939. apiVersion: apiextensions.k8s.io/v1
  5940. kind: CustomResourceDefinition
  5941. metadata:
  5942. annotations:
  5943. controller-gen.kubebuilder.io/version: v0.11.3
  5944. helm.sh/resource-policy: keep
  5945. creationTimestamp: null
  5946. name: cephfilesystemmirrors.ceph.rook.io
  5947. spec:
  5948. group: ceph.rook.io
  5949. names:
  5950. kind: CephFilesystemMirror
  5951. listKind: CephFilesystemMirrorList
  5952. plural: cephfilesystemmirrors
  5953. singular: cephfilesystemmirror
  5954. scope: Namespaced
  5955. versions:
  5956. - additionalPrinterColumns:
  5957. - jsonPath: .status.phase
  5958. name: Phase
  5959. type: string
  5960. name: v1
  5961. schema:
  5962. openAPIV3Schema:
  5963. description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
  5964. properties:
  5965. apiVersion:
  5966. 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'
  5967. type: string
  5968. kind:
  5969. 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'
  5970. type: string
  5971. metadata:
  5972. type: object
  5973. spec:
  5974. description: FilesystemMirroringSpec is the filesystem mirroring specification
  5975. properties:
  5976. annotations:
  5977. additionalProperties:
  5978. type: string
  5979. description: The annotations-related configuration to add/set on each Pod related object.
  5980. nullable: true
  5981. type: object
  5982. labels:
  5983. additionalProperties:
  5984. type: string
  5985. description: The labels-related configuration to add/set on each Pod related object.
  5986. nullable: true
  5987. type: object
  5988. placement:
  5989. description: The affinity to place the rgw pods (default is to place on any available node)
  5990. nullable: true
  5991. properties:
  5992. nodeAffinity:
  5993. description: NodeAffinity is a group of node affinity scheduling rules
  5994. properties:
  5995. preferredDuringSchedulingIgnoredDuringExecution:
  5996. 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.
  5997. items:
  5998. 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).
  5999. properties:
  6000. preference:
  6001. description: A node selector term, associated with the corresponding weight.
  6002. properties:
  6003. matchExpressions:
  6004. description: A list of node selector requirements by node's labels.
  6005. items:
  6006. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6007. properties:
  6008. key:
  6009. description: The label key that the selector applies to.
  6010. type: string
  6011. operator:
  6012. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6013. type: string
  6014. values:
  6015. 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.
  6016. items:
  6017. type: string
  6018. type: array
  6019. required:
  6020. - key
  6021. - operator
  6022. type: object
  6023. type: array
  6024. matchFields:
  6025. description: A list of node selector requirements by node's fields.
  6026. items:
  6027. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6028. properties:
  6029. key:
  6030. description: The label key that the selector applies to.
  6031. type: string
  6032. operator:
  6033. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6034. type: string
  6035. values:
  6036. 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.
  6037. items:
  6038. type: string
  6039. type: array
  6040. required:
  6041. - key
  6042. - operator
  6043. type: object
  6044. type: array
  6045. type: object
  6046. x-kubernetes-map-type: atomic
  6047. weight:
  6048. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  6049. format: int32
  6050. type: integer
  6051. required:
  6052. - preference
  6053. - weight
  6054. type: object
  6055. type: array
  6056. requiredDuringSchedulingIgnoredDuringExecution:
  6057. 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.
  6058. properties:
  6059. nodeSelectorTerms:
  6060. description: Required. A list of node selector terms. The terms are ORed.
  6061. items:
  6062. 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.
  6063. properties:
  6064. matchExpressions:
  6065. description: A list of node selector requirements by node's labels.
  6066. items:
  6067. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6068. properties:
  6069. key:
  6070. description: The label key that the selector applies to.
  6071. type: string
  6072. operator:
  6073. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6074. type: string
  6075. values:
  6076. 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.
  6077. items:
  6078. type: string
  6079. type: array
  6080. required:
  6081. - key
  6082. - operator
  6083. type: object
  6084. type: array
  6085. matchFields:
  6086. description: A list of node selector requirements by node's fields.
  6087. items:
  6088. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6089. properties:
  6090. key:
  6091. description: The label key that the selector applies to.
  6092. type: string
  6093. operator:
  6094. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6095. type: string
  6096. values:
  6097. 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.
  6098. items:
  6099. type: string
  6100. type: array
  6101. required:
  6102. - key
  6103. - operator
  6104. type: object
  6105. type: array
  6106. type: object
  6107. x-kubernetes-map-type: atomic
  6108. type: array
  6109. required:
  6110. - nodeSelectorTerms
  6111. type: object
  6112. x-kubernetes-map-type: atomic
  6113. type: object
  6114. podAffinity:
  6115. description: PodAffinity is a group of inter pod affinity scheduling rules
  6116. properties:
  6117. preferredDuringSchedulingIgnoredDuringExecution:
  6118. 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.
  6119. items:
  6120. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6121. properties:
  6122. podAffinityTerm:
  6123. description: Required. A pod affinity term, associated with the corresponding weight.
  6124. properties:
  6125. labelSelector:
  6126. description: A label query over a set of resources, in this case pods.
  6127. properties:
  6128. matchExpressions:
  6129. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6130. items:
  6131. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6132. properties:
  6133. key:
  6134. description: key is the label key that the selector applies to.
  6135. type: string
  6136. operator:
  6137. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6138. type: string
  6139. values:
  6140. 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.
  6141. items:
  6142. type: string
  6143. type: array
  6144. required:
  6145. - key
  6146. - operator
  6147. type: object
  6148. type: array
  6149. matchLabels:
  6150. additionalProperties:
  6151. type: string
  6152. 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.
  6153. type: object
  6154. type: object
  6155. x-kubernetes-map-type: atomic
  6156. namespaceSelector:
  6157. 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.
  6158. properties:
  6159. matchExpressions:
  6160. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6161. items:
  6162. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6163. properties:
  6164. key:
  6165. description: key is the label key that the selector applies to.
  6166. type: string
  6167. operator:
  6168. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6169. type: string
  6170. values:
  6171. 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.
  6172. items:
  6173. type: string
  6174. type: array
  6175. required:
  6176. - key
  6177. - operator
  6178. type: object
  6179. type: array
  6180. matchLabels:
  6181. additionalProperties:
  6182. type: string
  6183. 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.
  6184. type: object
  6185. type: object
  6186. x-kubernetes-map-type: atomic
  6187. namespaces:
  6188. 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".
  6189. items:
  6190. type: string
  6191. type: array
  6192. topologyKey:
  6193. 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.
  6194. type: string
  6195. required:
  6196. - topologyKey
  6197. type: object
  6198. weight:
  6199. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6200. format: int32
  6201. type: integer
  6202. required:
  6203. - podAffinityTerm
  6204. - weight
  6205. type: object
  6206. type: array
  6207. requiredDuringSchedulingIgnoredDuringExecution:
  6208. 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.
  6209. items:
  6210. 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
  6211. properties:
  6212. labelSelector:
  6213. description: A label query over a set of resources, in this case pods.
  6214. properties:
  6215. matchExpressions:
  6216. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6217. items:
  6218. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6219. properties:
  6220. key:
  6221. description: key is the label key that the selector applies to.
  6222. type: string
  6223. operator:
  6224. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6225. type: string
  6226. values:
  6227. 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.
  6228. items:
  6229. type: string
  6230. type: array
  6231. required:
  6232. - key
  6233. - operator
  6234. type: object
  6235. type: array
  6236. matchLabels:
  6237. additionalProperties:
  6238. type: string
  6239. 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.
  6240. type: object
  6241. type: object
  6242. x-kubernetes-map-type: atomic
  6243. namespaceSelector:
  6244. 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.
  6245. properties:
  6246. matchExpressions:
  6247. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6248. items:
  6249. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6250. properties:
  6251. key:
  6252. description: key is the label key that the selector applies to.
  6253. type: string
  6254. operator:
  6255. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6256. type: string
  6257. values:
  6258. 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.
  6259. items:
  6260. type: string
  6261. type: array
  6262. required:
  6263. - key
  6264. - operator
  6265. type: object
  6266. type: array
  6267. matchLabels:
  6268. additionalProperties:
  6269. type: string
  6270. 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.
  6271. type: object
  6272. type: object
  6273. x-kubernetes-map-type: atomic
  6274. namespaces:
  6275. 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".
  6276. items:
  6277. type: string
  6278. type: array
  6279. topologyKey:
  6280. 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.
  6281. type: string
  6282. required:
  6283. - topologyKey
  6284. type: object
  6285. type: array
  6286. type: object
  6287. podAntiAffinity:
  6288. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  6289. properties:
  6290. preferredDuringSchedulingIgnoredDuringExecution:
  6291. 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.
  6292. items:
  6293. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6294. properties:
  6295. podAffinityTerm:
  6296. description: Required. A pod affinity term, associated with the corresponding weight.
  6297. properties:
  6298. labelSelector:
  6299. description: A label query over a set of resources, in this case pods.
  6300. properties:
  6301. matchExpressions:
  6302. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6303. items:
  6304. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6305. properties:
  6306. key:
  6307. description: key is the label key that the selector applies to.
  6308. type: string
  6309. operator:
  6310. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6311. type: string
  6312. values:
  6313. 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.
  6314. items:
  6315. type: string
  6316. type: array
  6317. required:
  6318. - key
  6319. - operator
  6320. type: object
  6321. type: array
  6322. matchLabels:
  6323. additionalProperties:
  6324. type: string
  6325. 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.
  6326. type: object
  6327. type: object
  6328. x-kubernetes-map-type: atomic
  6329. namespaceSelector:
  6330. 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.
  6331. properties:
  6332. matchExpressions:
  6333. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6334. items:
  6335. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6336. properties:
  6337. key:
  6338. description: key is the label key that the selector applies to.
  6339. type: string
  6340. operator:
  6341. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6342. type: string
  6343. values:
  6344. 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.
  6345. items:
  6346. type: string
  6347. type: array
  6348. required:
  6349. - key
  6350. - operator
  6351. type: object
  6352. type: array
  6353. matchLabels:
  6354. additionalProperties:
  6355. type: string
  6356. 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.
  6357. type: object
  6358. type: object
  6359. x-kubernetes-map-type: atomic
  6360. namespaces:
  6361. 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".
  6362. items:
  6363. type: string
  6364. type: array
  6365. topologyKey:
  6366. 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.
  6367. type: string
  6368. required:
  6369. - topologyKey
  6370. type: object
  6371. weight:
  6372. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6373. format: int32
  6374. type: integer
  6375. required:
  6376. - podAffinityTerm
  6377. - weight
  6378. type: object
  6379. type: array
  6380. requiredDuringSchedulingIgnoredDuringExecution:
  6381. 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.
  6382. items:
  6383. 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
  6384. properties:
  6385. labelSelector:
  6386. description: A label query over a set of resources, in this case pods.
  6387. properties:
  6388. matchExpressions:
  6389. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6390. items:
  6391. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6392. properties:
  6393. key:
  6394. description: key is the label key that the selector applies to.
  6395. type: string
  6396. operator:
  6397. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6398. type: string
  6399. values:
  6400. 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.
  6401. items:
  6402. type: string
  6403. type: array
  6404. required:
  6405. - key
  6406. - operator
  6407. type: object
  6408. type: array
  6409. matchLabels:
  6410. additionalProperties:
  6411. type: string
  6412. 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.
  6413. type: object
  6414. type: object
  6415. x-kubernetes-map-type: atomic
  6416. namespaceSelector:
  6417. 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.
  6418. properties:
  6419. matchExpressions:
  6420. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6421. items:
  6422. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6423. properties:
  6424. key:
  6425. description: key is the label key that the selector applies to.
  6426. type: string
  6427. operator:
  6428. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6429. type: string
  6430. values:
  6431. 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.
  6432. items:
  6433. type: string
  6434. type: array
  6435. required:
  6436. - key
  6437. - operator
  6438. type: object
  6439. type: array
  6440. matchLabels:
  6441. additionalProperties:
  6442. type: string
  6443. 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.
  6444. type: object
  6445. type: object
  6446. x-kubernetes-map-type: atomic
  6447. namespaces:
  6448. 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".
  6449. items:
  6450. type: string
  6451. type: array
  6452. topologyKey:
  6453. 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.
  6454. type: string
  6455. required:
  6456. - topologyKey
  6457. type: object
  6458. type: array
  6459. type: object
  6460. tolerations:
  6461. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  6462. items:
  6463. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  6464. properties:
  6465. effect:
  6466. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  6467. type: string
  6468. key:
  6469. 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.
  6470. type: string
  6471. operator:
  6472. 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.
  6473. type: string
  6474. tolerationSeconds:
  6475. 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.
  6476. format: int64
  6477. type: integer
  6478. value:
  6479. 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.
  6480. type: string
  6481. type: object
  6482. type: array
  6483. topologySpreadConstraints:
  6484. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  6485. items:
  6486. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  6487. properties:
  6488. labelSelector:
  6489. 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.
  6490. properties:
  6491. matchExpressions:
  6492. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6493. items:
  6494. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6495. properties:
  6496. key:
  6497. description: key is the label key that the selector applies to.
  6498. type: string
  6499. operator:
  6500. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6501. type: string
  6502. values:
  6503. 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.
  6504. items:
  6505. type: string
  6506. type: array
  6507. required:
  6508. - key
  6509. - operator
  6510. type: object
  6511. type: array
  6512. matchLabels:
  6513. additionalProperties:
  6514. type: string
  6515. 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.
  6516. type: object
  6517. type: object
  6518. x-kubernetes-map-type: atomic
  6519. matchLabelKeys:
  6520. 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)."
  6521. items:
  6522. type: string
  6523. type: array
  6524. x-kubernetes-list-type: atomic
  6525. maxSkew:
  6526. 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.'
  6527. format: int32
  6528. type: integer
  6529. minDomains:
  6530. 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)."
  6531. format: int32
  6532. type: integer
  6533. nodeAffinityPolicy:
  6534. 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."
  6535. type: string
  6536. nodeTaintsPolicy:
  6537. 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."
  6538. type: string
  6539. topologyKey:
  6540. 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.
  6541. type: string
  6542. whenUnsatisfiable:
  6543. 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.'
  6544. type: string
  6545. required:
  6546. - maxSkew
  6547. - topologyKey
  6548. - whenUnsatisfiable
  6549. type: object
  6550. type: array
  6551. type: object
  6552. priorityClassName:
  6553. description: PriorityClassName sets priority class on the cephfs-mirror pods
  6554. type: string
  6555. resources:
  6556. description: The resource requirements for the cephfs-mirror pods
  6557. nullable: true
  6558. properties:
  6559. claims:
  6560. 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."
  6561. items:
  6562. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  6563. properties:
  6564. name:
  6565. 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.
  6566. type: string
  6567. required:
  6568. - name
  6569. type: object
  6570. type: array
  6571. x-kubernetes-list-map-keys:
  6572. - name
  6573. x-kubernetes-list-type: map
  6574. limits:
  6575. additionalProperties:
  6576. anyOf:
  6577. - type: integer
  6578. - type: string
  6579. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6580. x-kubernetes-int-or-string: true
  6581. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  6582. type: object
  6583. requests:
  6584. additionalProperties:
  6585. anyOf:
  6586. - type: integer
  6587. - type: string
  6588. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6589. x-kubernetes-int-or-string: true
  6590. 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/'
  6591. type: object
  6592. type: object
  6593. type: object
  6594. status:
  6595. description: Status represents the status of an object
  6596. properties:
  6597. conditions:
  6598. items:
  6599. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  6600. properties:
  6601. lastHeartbeatTime:
  6602. format: date-time
  6603. type: string
  6604. lastTransitionTime:
  6605. format: date-time
  6606. type: string
  6607. message:
  6608. type: string
  6609. reason:
  6610. description: ConditionReason is a reason for a condition
  6611. type: string
  6612. status:
  6613. type: string
  6614. type:
  6615. description: ConditionType represent a resource's status
  6616. type: string
  6617. type: object
  6618. type: array
  6619. observedGeneration:
  6620. description: ObservedGeneration is the latest generation observed by the controller.
  6621. format: int64
  6622. type: integer
  6623. phase:
  6624. type: string
  6625. type: object
  6626. required:
  6627. - metadata
  6628. - spec
  6629. type: object
  6630. served: true
  6631. storage: true
  6632. subresources:
  6633. status: {}
  6634. ---
  6635. # Source: rook-ceph/templates/resources.yaml
  6636. apiVersion: apiextensions.k8s.io/v1
  6637. kind: CustomResourceDefinition
  6638. metadata:
  6639. annotations:
  6640. controller-gen.kubebuilder.io/version: v0.11.3
  6641. helm.sh/resource-policy: keep
  6642. creationTimestamp: null
  6643. name: cephfilesystems.ceph.rook.io
  6644. spec:
  6645. group: ceph.rook.io
  6646. names:
  6647. kind: CephFilesystem
  6648. listKind: CephFilesystemList
  6649. plural: cephfilesystems
  6650. singular: cephfilesystem
  6651. scope: Namespaced
  6652. versions:
  6653. - additionalPrinterColumns:
  6654. - description: Number of desired active MDS daemons
  6655. jsonPath: .spec.metadataServer.activeCount
  6656. name: ActiveMDS
  6657. type: string
  6658. - jsonPath: .metadata.creationTimestamp
  6659. name: Age
  6660. type: date
  6661. - jsonPath: .status.phase
  6662. name: Phase
  6663. type: string
  6664. name: v1
  6665. schema:
  6666. openAPIV3Schema:
  6667. description: CephFilesystem represents a Ceph Filesystem
  6668. properties:
  6669. apiVersion:
  6670. 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'
  6671. type: string
  6672. kind:
  6673. 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'
  6674. type: string
  6675. metadata:
  6676. type: object
  6677. spec:
  6678. description: FilesystemSpec represents the spec of a file system
  6679. properties:
  6680. dataPools:
  6681. description: The data pool settings, with optional predefined pool name.
  6682. items:
  6683. description: NamedPoolSpec represents the named ceph pool spec
  6684. properties:
  6685. compressionMode:
  6686. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6687. enum:
  6688. - none
  6689. - passive
  6690. - aggressive
  6691. - force
  6692. - ""
  6693. nullable: true
  6694. type: string
  6695. crushRoot:
  6696. description: The root of the crush hierarchy utilized by the pool
  6697. nullable: true
  6698. type: string
  6699. deviceClass:
  6700. description: The device class the OSD should set to for use in the pool
  6701. nullable: true
  6702. type: string
  6703. enableRBDStats:
  6704. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6705. type: boolean
  6706. erasureCoded:
  6707. description: The erasure code settings
  6708. properties:
  6709. algorithm:
  6710. description: The algorithm for erasure coding
  6711. type: string
  6712. codingChunks:
  6713. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6714. minimum: 0
  6715. type: integer
  6716. dataChunks:
  6717. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6718. minimum: 0
  6719. type: integer
  6720. required:
  6721. - codingChunks
  6722. - dataChunks
  6723. type: object
  6724. failureDomain:
  6725. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6726. type: string
  6727. mirroring:
  6728. description: The mirroring settings
  6729. properties:
  6730. enabled:
  6731. description: Enabled whether this pool is mirrored or not
  6732. type: boolean
  6733. mode:
  6734. description: 'Mode is the mirroring mode: either pool or image'
  6735. type: string
  6736. peers:
  6737. description: Peers represents the peers spec
  6738. nullable: true
  6739. properties:
  6740. secretNames:
  6741. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6742. items:
  6743. type: string
  6744. type: array
  6745. type: object
  6746. snapshotSchedules:
  6747. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6748. items:
  6749. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6750. properties:
  6751. interval:
  6752. description: Interval represent the periodicity of the snapshot.
  6753. type: string
  6754. path:
  6755. description: Path is the path to snapshot, only valid for CephFS
  6756. type: string
  6757. startTime:
  6758. description: StartTime indicates when to start the snapshot
  6759. type: string
  6760. type: object
  6761. type: array
  6762. type: object
  6763. name:
  6764. description: Name of the pool
  6765. type: string
  6766. parameters:
  6767. additionalProperties:
  6768. type: string
  6769. description: Parameters is a list of properties to enable on a given pool
  6770. nullable: true
  6771. type: object
  6772. x-kubernetes-preserve-unknown-fields: true
  6773. quotas:
  6774. description: The quota settings
  6775. nullable: true
  6776. properties:
  6777. maxBytes:
  6778. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6779. format: int64
  6780. type: integer
  6781. maxObjects:
  6782. description: MaxObjects represents the quota in objects
  6783. format: int64
  6784. type: integer
  6785. maxSize:
  6786. description: MaxSize represents the quota in bytes as a string
  6787. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6788. type: string
  6789. type: object
  6790. replicated:
  6791. description: The replication settings
  6792. properties:
  6793. hybridStorage:
  6794. description: HybridStorage represents hybrid storage tier settings
  6795. nullable: true
  6796. properties:
  6797. primaryDeviceClass:
  6798. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6799. minLength: 1
  6800. type: string
  6801. secondaryDeviceClass:
  6802. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6803. minLength: 1
  6804. type: string
  6805. required:
  6806. - primaryDeviceClass
  6807. - secondaryDeviceClass
  6808. type: object
  6809. replicasPerFailureDomain:
  6810. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6811. minimum: 1
  6812. type: integer
  6813. requireSafeReplicaSize:
  6814. description: RequireSafeReplicaSize if false allows you to set replica 1
  6815. type: boolean
  6816. size:
  6817. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6818. minimum: 0
  6819. type: integer
  6820. subFailureDomain:
  6821. description: SubFailureDomain the name of the sub-failure domain
  6822. type: string
  6823. targetSizeRatio:
  6824. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6825. type: number
  6826. required:
  6827. - size
  6828. type: object
  6829. statusCheck:
  6830. description: The mirroring statusCheck
  6831. properties:
  6832. mirror:
  6833. description: HealthCheckSpec represents the health check of an object store bucket
  6834. nullable: true
  6835. properties:
  6836. disabled:
  6837. type: boolean
  6838. interval:
  6839. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  6840. type: string
  6841. timeout:
  6842. type: string
  6843. type: object
  6844. type: object
  6845. x-kubernetes-preserve-unknown-fields: true
  6846. type: object
  6847. nullable: true
  6848. type: array
  6849. metadataPool:
  6850. description: The metadata pool settings
  6851. nullable: true
  6852. properties:
  6853. compressionMode:
  6854. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6855. enum:
  6856. - none
  6857. - passive
  6858. - aggressive
  6859. - force
  6860. - ""
  6861. nullable: true
  6862. type: string
  6863. crushRoot:
  6864. description: The root of the crush hierarchy utilized by the pool
  6865. nullable: true
  6866. type: string
  6867. deviceClass:
  6868. description: The device class the OSD should set to for use in the pool
  6869. nullable: true
  6870. type: string
  6871. enableRBDStats:
  6872. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6873. type: boolean
  6874. erasureCoded:
  6875. description: The erasure code settings
  6876. properties:
  6877. algorithm:
  6878. description: The algorithm for erasure coding
  6879. type: string
  6880. codingChunks:
  6881. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6882. minimum: 0
  6883. type: integer
  6884. dataChunks:
  6885. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6886. minimum: 0
  6887. type: integer
  6888. required:
  6889. - codingChunks
  6890. - dataChunks
  6891. type: object
  6892. failureDomain:
  6893. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6894. type: string
  6895. mirroring:
  6896. description: The mirroring settings
  6897. properties:
  6898. enabled:
  6899. description: Enabled whether this pool is mirrored or not
  6900. type: boolean
  6901. mode:
  6902. description: 'Mode is the mirroring mode: either pool or image'
  6903. type: string
  6904. peers:
  6905. description: Peers represents the peers spec
  6906. nullable: true
  6907. properties:
  6908. secretNames:
  6909. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6910. items:
  6911. type: string
  6912. type: array
  6913. type: object
  6914. snapshotSchedules:
  6915. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6916. items:
  6917. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6918. properties:
  6919. interval:
  6920. description: Interval represent the periodicity of the snapshot.
  6921. type: string
  6922. path:
  6923. description: Path is the path to snapshot, only valid for CephFS
  6924. type: string
  6925. startTime:
  6926. description: StartTime indicates when to start the snapshot
  6927. type: string
  6928. type: object
  6929. type: array
  6930. type: object
  6931. parameters:
  6932. additionalProperties:
  6933. type: string
  6934. description: Parameters is a list of properties to enable on a given pool
  6935. nullable: true
  6936. type: object
  6937. x-kubernetes-preserve-unknown-fields: true
  6938. quotas:
  6939. description: The quota settings
  6940. nullable: true
  6941. properties:
  6942. maxBytes:
  6943. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6944. format: int64
  6945. type: integer
  6946. maxObjects:
  6947. description: MaxObjects represents the quota in objects
  6948. format: int64
  6949. type: integer
  6950. maxSize:
  6951. description: MaxSize represents the quota in bytes as a string
  6952. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6953. type: string
  6954. type: object
  6955. replicated:
  6956. description: The replication settings
  6957. properties:
  6958. hybridStorage:
  6959. description: HybridStorage represents hybrid storage tier settings
  6960. nullable: true
  6961. properties:
  6962. primaryDeviceClass:
  6963. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6964. minLength: 1
  6965. type: string
  6966. secondaryDeviceClass:
  6967. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6968. minLength: 1
  6969. type: string
  6970. required:
  6971. - primaryDeviceClass
  6972. - secondaryDeviceClass
  6973. type: object
  6974. replicasPerFailureDomain:
  6975. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6976. minimum: 1
  6977. type: integer
  6978. requireSafeReplicaSize:
  6979. description: RequireSafeReplicaSize if false allows you to set replica 1
  6980. type: boolean
  6981. size:
  6982. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6983. minimum: 0
  6984. type: integer
  6985. subFailureDomain:
  6986. description: SubFailureDomain the name of the sub-failure domain
  6987. type: string
  6988. targetSizeRatio:
  6989. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6990. type: number
  6991. required:
  6992. - size
  6993. type: object
  6994. statusCheck:
  6995. description: The mirroring statusCheck
  6996. properties:
  6997. mirror:
  6998. description: HealthCheckSpec represents the health check of an object store bucket
  6999. nullable: true
  7000. properties:
  7001. disabled:
  7002. type: boolean
  7003. interval:
  7004. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7005. type: string
  7006. timeout:
  7007. type: string
  7008. type: object
  7009. type: object
  7010. x-kubernetes-preserve-unknown-fields: true
  7011. type: object
  7012. metadataServer:
  7013. description: The mds pod info
  7014. properties:
  7015. activeCount:
  7016. description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
  7017. format: int32
  7018. maximum: 10
  7019. minimum: 1
  7020. type: integer
  7021. activeStandby:
  7022. description: Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover. If false, standbys will still be available, but will not have a warm metadata cache.
  7023. type: boolean
  7024. annotations:
  7025. additionalProperties:
  7026. type: string
  7027. description: The annotations-related configuration to add/set on each Pod related object.
  7028. nullable: true
  7029. type: object
  7030. x-kubernetes-preserve-unknown-fields: true
  7031. labels:
  7032. additionalProperties:
  7033. type: string
  7034. description: The labels-related configuration to add/set on each Pod related object.
  7035. nullable: true
  7036. type: object
  7037. x-kubernetes-preserve-unknown-fields: true
  7038. livenessProbe:
  7039. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  7040. properties:
  7041. disabled:
  7042. description: Disabled determines whether probe is disable or not
  7043. type: boolean
  7044. probe:
  7045. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  7046. properties:
  7047. exec:
  7048. description: Exec specifies the action to take.
  7049. properties:
  7050. command:
  7051. 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.
  7052. items:
  7053. type: string
  7054. type: array
  7055. type: object
  7056. failureThreshold:
  7057. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  7058. format: int32
  7059. type: integer
  7060. grpc:
  7061. description: GRPC specifies an action involving a GRPC port.
  7062. properties:
  7063. port:
  7064. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7065. format: int32
  7066. type: integer
  7067. service:
  7068. 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."
  7069. type: string
  7070. required:
  7071. - port
  7072. type: object
  7073. httpGet:
  7074. description: HTTPGet specifies the http request to perform.
  7075. properties:
  7076. host:
  7077. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  7078. type: string
  7079. httpHeaders:
  7080. description: Custom headers to set in the request. HTTP allows repeated headers.
  7081. items:
  7082. description: HTTPHeader describes a custom header to be used in HTTP probes
  7083. properties:
  7084. name:
  7085. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7086. type: string
  7087. value:
  7088. description: The header field value
  7089. type: string
  7090. required:
  7091. - name
  7092. - value
  7093. type: object
  7094. type: array
  7095. path:
  7096. description: Path to access on the HTTP server.
  7097. type: string
  7098. port:
  7099. anyOf:
  7100. - type: integer
  7101. - type: string
  7102. 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.
  7103. x-kubernetes-int-or-string: true
  7104. scheme:
  7105. description: Scheme to use for connecting to the host. Defaults to HTTP.
  7106. type: string
  7107. required:
  7108. - port
  7109. type: object
  7110. initialDelaySeconds:
  7111. 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'
  7112. format: int32
  7113. type: integer
  7114. periodSeconds:
  7115. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  7116. format: int32
  7117. type: integer
  7118. successThreshold:
  7119. 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.
  7120. format: int32
  7121. type: integer
  7122. tcpSocket:
  7123. description: TCPSocket specifies an action involving a TCP port.
  7124. properties:
  7125. host:
  7126. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7127. type: string
  7128. port:
  7129. anyOf:
  7130. - type: integer
  7131. - type: string
  7132. 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.
  7133. x-kubernetes-int-or-string: true
  7134. required:
  7135. - port
  7136. type: object
  7137. terminationGracePeriodSeconds:
  7138. 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.
  7139. format: int64
  7140. type: integer
  7141. timeoutSeconds:
  7142. 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'
  7143. format: int32
  7144. type: integer
  7145. type: object
  7146. type: object
  7147. placement:
  7148. description: The affinity to place the mds pods (default is to place on all available node) with a daemonset
  7149. nullable: true
  7150. properties:
  7151. nodeAffinity:
  7152. description: NodeAffinity is a group of node affinity scheduling rules
  7153. properties:
  7154. preferredDuringSchedulingIgnoredDuringExecution:
  7155. 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.
  7156. items:
  7157. 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).
  7158. properties:
  7159. preference:
  7160. description: A node selector term, associated with the corresponding weight.
  7161. properties:
  7162. matchExpressions:
  7163. description: A list of node selector requirements by node's labels.
  7164. items:
  7165. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7166. properties:
  7167. key:
  7168. description: The label key that the selector applies to.
  7169. type: string
  7170. operator:
  7171. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7172. type: string
  7173. values:
  7174. 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.
  7175. items:
  7176. type: string
  7177. type: array
  7178. required:
  7179. - key
  7180. - operator
  7181. type: object
  7182. type: array
  7183. matchFields:
  7184. description: A list of node selector requirements by node's fields.
  7185. items:
  7186. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7187. properties:
  7188. key:
  7189. description: The label key that the selector applies to.
  7190. type: string
  7191. operator:
  7192. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7193. type: string
  7194. values:
  7195. 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.
  7196. items:
  7197. type: string
  7198. type: array
  7199. required:
  7200. - key
  7201. - operator
  7202. type: object
  7203. type: array
  7204. type: object
  7205. x-kubernetes-map-type: atomic
  7206. weight:
  7207. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  7208. format: int32
  7209. type: integer
  7210. required:
  7211. - preference
  7212. - weight
  7213. type: object
  7214. type: array
  7215. requiredDuringSchedulingIgnoredDuringExecution:
  7216. 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.
  7217. properties:
  7218. nodeSelectorTerms:
  7219. description: Required. A list of node selector terms. The terms are ORed.
  7220. items:
  7221. 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.
  7222. properties:
  7223. matchExpressions:
  7224. description: A list of node selector requirements by node's labels.
  7225. items:
  7226. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7227. properties:
  7228. key:
  7229. description: The label key that the selector applies to.
  7230. type: string
  7231. operator:
  7232. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7233. type: string
  7234. values:
  7235. 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.
  7236. items:
  7237. type: string
  7238. type: array
  7239. required:
  7240. - key
  7241. - operator
  7242. type: object
  7243. type: array
  7244. matchFields:
  7245. description: A list of node selector requirements by node's fields.
  7246. items:
  7247. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7248. properties:
  7249. key:
  7250. description: The label key that the selector applies to.
  7251. type: string
  7252. operator:
  7253. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7254. type: string
  7255. values:
  7256. 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.
  7257. items:
  7258. type: string
  7259. type: array
  7260. required:
  7261. - key
  7262. - operator
  7263. type: object
  7264. type: array
  7265. type: object
  7266. x-kubernetes-map-type: atomic
  7267. type: array
  7268. required:
  7269. - nodeSelectorTerms
  7270. type: object
  7271. x-kubernetes-map-type: atomic
  7272. type: object
  7273. podAffinity:
  7274. description: PodAffinity is a group of inter pod affinity scheduling rules
  7275. properties:
  7276. preferredDuringSchedulingIgnoredDuringExecution:
  7277. 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.
  7278. items:
  7279. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7280. properties:
  7281. podAffinityTerm:
  7282. description: Required. A pod affinity term, associated with the corresponding weight.
  7283. properties:
  7284. labelSelector:
  7285. description: A label query over a set of resources, in this case pods.
  7286. properties:
  7287. matchExpressions:
  7288. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7289. items:
  7290. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7291. properties:
  7292. key:
  7293. description: key is the label key that the selector applies to.
  7294. type: string
  7295. operator:
  7296. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7297. type: string
  7298. values:
  7299. 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.
  7300. items:
  7301. type: string
  7302. type: array
  7303. required:
  7304. - key
  7305. - operator
  7306. type: object
  7307. type: array
  7308. matchLabels:
  7309. additionalProperties:
  7310. type: string
  7311. 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.
  7312. type: object
  7313. type: object
  7314. x-kubernetes-map-type: atomic
  7315. namespaceSelector:
  7316. 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.
  7317. properties:
  7318. matchExpressions:
  7319. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7320. items:
  7321. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7322. properties:
  7323. key:
  7324. description: key is the label key that the selector applies to.
  7325. type: string
  7326. operator:
  7327. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7328. type: string
  7329. values:
  7330. 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.
  7331. items:
  7332. type: string
  7333. type: array
  7334. required:
  7335. - key
  7336. - operator
  7337. type: object
  7338. type: array
  7339. matchLabels:
  7340. additionalProperties:
  7341. type: string
  7342. 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.
  7343. type: object
  7344. type: object
  7345. x-kubernetes-map-type: atomic
  7346. namespaces:
  7347. 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".
  7348. items:
  7349. type: string
  7350. type: array
  7351. topologyKey:
  7352. 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.
  7353. type: string
  7354. required:
  7355. - topologyKey
  7356. type: object
  7357. weight:
  7358. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7359. format: int32
  7360. type: integer
  7361. required:
  7362. - podAffinityTerm
  7363. - weight
  7364. type: object
  7365. type: array
  7366. requiredDuringSchedulingIgnoredDuringExecution:
  7367. 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.
  7368. items:
  7369. 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
  7370. properties:
  7371. labelSelector:
  7372. description: A label query over a set of resources, in this case pods.
  7373. properties:
  7374. matchExpressions:
  7375. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7376. items:
  7377. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7378. properties:
  7379. key:
  7380. description: key is the label key that the selector applies to.
  7381. type: string
  7382. operator:
  7383. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7384. type: string
  7385. values:
  7386. 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.
  7387. items:
  7388. type: string
  7389. type: array
  7390. required:
  7391. - key
  7392. - operator
  7393. type: object
  7394. type: array
  7395. matchLabels:
  7396. additionalProperties:
  7397. type: string
  7398. 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.
  7399. type: object
  7400. type: object
  7401. x-kubernetes-map-type: atomic
  7402. namespaceSelector:
  7403. 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.
  7404. properties:
  7405. matchExpressions:
  7406. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7407. items:
  7408. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7409. properties:
  7410. key:
  7411. description: key is the label key that the selector applies to.
  7412. type: string
  7413. operator:
  7414. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7415. type: string
  7416. values:
  7417. 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.
  7418. items:
  7419. type: string
  7420. type: array
  7421. required:
  7422. - key
  7423. - operator
  7424. type: object
  7425. type: array
  7426. matchLabels:
  7427. additionalProperties:
  7428. type: string
  7429. 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.
  7430. type: object
  7431. type: object
  7432. x-kubernetes-map-type: atomic
  7433. namespaces:
  7434. 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".
  7435. items:
  7436. type: string
  7437. type: array
  7438. topologyKey:
  7439. 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.
  7440. type: string
  7441. required:
  7442. - topologyKey
  7443. type: object
  7444. type: array
  7445. type: object
  7446. podAntiAffinity:
  7447. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  7448. properties:
  7449. preferredDuringSchedulingIgnoredDuringExecution:
  7450. 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.
  7451. items:
  7452. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7453. properties:
  7454. podAffinityTerm:
  7455. description: Required. A pod affinity term, associated with the corresponding weight.
  7456. properties:
  7457. labelSelector:
  7458. description: A label query over a set of resources, in this case pods.
  7459. properties:
  7460. matchExpressions:
  7461. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7462. items:
  7463. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7464. properties:
  7465. key:
  7466. description: key is the label key that the selector applies to.
  7467. type: string
  7468. operator:
  7469. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7470. type: string
  7471. values:
  7472. 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.
  7473. items:
  7474. type: string
  7475. type: array
  7476. required:
  7477. - key
  7478. - operator
  7479. type: object
  7480. type: array
  7481. matchLabels:
  7482. additionalProperties:
  7483. type: string
  7484. 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.
  7485. type: object
  7486. type: object
  7487. x-kubernetes-map-type: atomic
  7488. namespaceSelector:
  7489. 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.
  7490. properties:
  7491. matchExpressions:
  7492. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7493. items:
  7494. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7495. properties:
  7496. key:
  7497. description: key is the label key that the selector applies to.
  7498. type: string
  7499. operator:
  7500. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7501. type: string
  7502. values:
  7503. 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.
  7504. items:
  7505. type: string
  7506. type: array
  7507. required:
  7508. - key
  7509. - operator
  7510. type: object
  7511. type: array
  7512. matchLabels:
  7513. additionalProperties:
  7514. type: string
  7515. 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.
  7516. type: object
  7517. type: object
  7518. x-kubernetes-map-type: atomic
  7519. namespaces:
  7520. 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".
  7521. items:
  7522. type: string
  7523. type: array
  7524. topologyKey:
  7525. 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.
  7526. type: string
  7527. required:
  7528. - topologyKey
  7529. type: object
  7530. weight:
  7531. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7532. format: int32
  7533. type: integer
  7534. required:
  7535. - podAffinityTerm
  7536. - weight
  7537. type: object
  7538. type: array
  7539. requiredDuringSchedulingIgnoredDuringExecution:
  7540. 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.
  7541. items:
  7542. 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
  7543. properties:
  7544. labelSelector:
  7545. description: A label query over a set of resources, in this case pods.
  7546. properties:
  7547. matchExpressions:
  7548. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7549. items:
  7550. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7551. properties:
  7552. key:
  7553. description: key is the label key that the selector applies to.
  7554. type: string
  7555. operator:
  7556. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7557. type: string
  7558. values:
  7559. 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.
  7560. items:
  7561. type: string
  7562. type: array
  7563. required:
  7564. - key
  7565. - operator
  7566. type: object
  7567. type: array
  7568. matchLabels:
  7569. additionalProperties:
  7570. type: string
  7571. 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.
  7572. type: object
  7573. type: object
  7574. x-kubernetes-map-type: atomic
  7575. namespaceSelector:
  7576. 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.
  7577. properties:
  7578. matchExpressions:
  7579. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7580. items:
  7581. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7582. properties:
  7583. key:
  7584. description: key is the label key that the selector applies to.
  7585. type: string
  7586. operator:
  7587. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7588. type: string
  7589. values:
  7590. 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.
  7591. items:
  7592. type: string
  7593. type: array
  7594. required:
  7595. - key
  7596. - operator
  7597. type: object
  7598. type: array
  7599. matchLabels:
  7600. additionalProperties:
  7601. type: string
  7602. 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.
  7603. type: object
  7604. type: object
  7605. x-kubernetes-map-type: atomic
  7606. namespaces:
  7607. 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".
  7608. items:
  7609. type: string
  7610. type: array
  7611. topologyKey:
  7612. 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.
  7613. type: string
  7614. required:
  7615. - topologyKey
  7616. type: object
  7617. type: array
  7618. type: object
  7619. tolerations:
  7620. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  7621. items:
  7622. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  7623. properties:
  7624. effect:
  7625. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  7626. type: string
  7627. key:
  7628. 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.
  7629. type: string
  7630. operator:
  7631. 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.
  7632. type: string
  7633. tolerationSeconds:
  7634. 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.
  7635. format: int64
  7636. type: integer
  7637. value:
  7638. 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.
  7639. type: string
  7640. type: object
  7641. type: array
  7642. topologySpreadConstraints:
  7643. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  7644. items:
  7645. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  7646. properties:
  7647. labelSelector:
  7648. 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.
  7649. properties:
  7650. matchExpressions:
  7651. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7652. items:
  7653. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7654. properties:
  7655. key:
  7656. description: key is the label key that the selector applies to.
  7657. type: string
  7658. operator:
  7659. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7660. type: string
  7661. values:
  7662. 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.
  7663. items:
  7664. type: string
  7665. type: array
  7666. required:
  7667. - key
  7668. - operator
  7669. type: object
  7670. type: array
  7671. matchLabels:
  7672. additionalProperties:
  7673. type: string
  7674. 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.
  7675. type: object
  7676. type: object
  7677. x-kubernetes-map-type: atomic
  7678. matchLabelKeys:
  7679. 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)."
  7680. items:
  7681. type: string
  7682. type: array
  7683. x-kubernetes-list-type: atomic
  7684. maxSkew:
  7685. 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.'
  7686. format: int32
  7687. type: integer
  7688. minDomains:
  7689. 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)."
  7690. format: int32
  7691. type: integer
  7692. nodeAffinityPolicy:
  7693. 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."
  7694. type: string
  7695. nodeTaintsPolicy:
  7696. 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."
  7697. type: string
  7698. topologyKey:
  7699. 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.
  7700. type: string
  7701. whenUnsatisfiable:
  7702. 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.'
  7703. type: string
  7704. required:
  7705. - maxSkew
  7706. - topologyKey
  7707. - whenUnsatisfiable
  7708. type: object
  7709. type: array
  7710. type: object
  7711. x-kubernetes-preserve-unknown-fields: true
  7712. priorityClassName:
  7713. description: PriorityClassName sets priority classes on components
  7714. type: string
  7715. resources:
  7716. description: The resource requirements for the rgw pods
  7717. nullable: true
  7718. properties:
  7719. claims:
  7720. 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."
  7721. items:
  7722. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  7723. properties:
  7724. name:
  7725. 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.
  7726. type: string
  7727. required:
  7728. - name
  7729. type: object
  7730. type: array
  7731. x-kubernetes-list-map-keys:
  7732. - name
  7733. x-kubernetes-list-type: map
  7734. limits:
  7735. additionalProperties:
  7736. anyOf:
  7737. - type: integer
  7738. - type: string
  7739. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7740. x-kubernetes-int-or-string: true
  7741. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  7742. type: object
  7743. requests:
  7744. additionalProperties:
  7745. anyOf:
  7746. - type: integer
  7747. - type: string
  7748. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7749. x-kubernetes-int-or-string: true
  7750. 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/'
  7751. type: object
  7752. type: object
  7753. x-kubernetes-preserve-unknown-fields: true
  7754. startupProbe:
  7755. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  7756. properties:
  7757. disabled:
  7758. description: Disabled determines whether probe is disable or not
  7759. type: boolean
  7760. probe:
  7761. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  7762. properties:
  7763. exec:
  7764. description: Exec specifies the action to take.
  7765. properties:
  7766. command:
  7767. 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.
  7768. items:
  7769. type: string
  7770. type: array
  7771. type: object
  7772. failureThreshold:
  7773. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  7774. format: int32
  7775. type: integer
  7776. grpc:
  7777. description: GRPC specifies an action involving a GRPC port.
  7778. properties:
  7779. port:
  7780. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7781. format: int32
  7782. type: integer
  7783. service:
  7784. 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."
  7785. type: string
  7786. required:
  7787. - port
  7788. type: object
  7789. httpGet:
  7790. description: HTTPGet specifies the http request to perform.
  7791. properties:
  7792. host:
  7793. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  7794. type: string
  7795. httpHeaders:
  7796. description: Custom headers to set in the request. HTTP allows repeated headers.
  7797. items:
  7798. description: HTTPHeader describes a custom header to be used in HTTP probes
  7799. properties:
  7800. name:
  7801. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7802. type: string
  7803. value:
  7804. description: The header field value
  7805. type: string
  7806. required:
  7807. - name
  7808. - value
  7809. type: object
  7810. type: array
  7811. path:
  7812. description: Path to access on the HTTP server.
  7813. type: string
  7814. port:
  7815. anyOf:
  7816. - type: integer
  7817. - type: string
  7818. 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.
  7819. x-kubernetes-int-or-string: true
  7820. scheme:
  7821. description: Scheme to use for connecting to the host. Defaults to HTTP.
  7822. type: string
  7823. required:
  7824. - port
  7825. type: object
  7826. initialDelaySeconds:
  7827. 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'
  7828. format: int32
  7829. type: integer
  7830. periodSeconds:
  7831. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  7832. format: int32
  7833. type: integer
  7834. successThreshold:
  7835. 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.
  7836. format: int32
  7837. type: integer
  7838. tcpSocket:
  7839. description: TCPSocket specifies an action involving a TCP port.
  7840. properties:
  7841. host:
  7842. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7843. type: string
  7844. port:
  7845. anyOf:
  7846. - type: integer
  7847. - type: string
  7848. 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.
  7849. x-kubernetes-int-or-string: true
  7850. required:
  7851. - port
  7852. type: object
  7853. terminationGracePeriodSeconds:
  7854. 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.
  7855. format: int64
  7856. type: integer
  7857. timeoutSeconds:
  7858. 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'
  7859. format: int32
  7860. type: integer
  7861. type: object
  7862. type: object
  7863. required:
  7864. - activeCount
  7865. type: object
  7866. mirroring:
  7867. description: The mirroring settings
  7868. nullable: true
  7869. properties:
  7870. enabled:
  7871. description: Enabled whether this filesystem is mirrored or not
  7872. type: boolean
  7873. peers:
  7874. description: Peers represents the peers spec
  7875. nullable: true
  7876. properties:
  7877. secretNames:
  7878. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  7879. items:
  7880. type: string
  7881. type: array
  7882. type: object
  7883. snapshotRetention:
  7884. description: Retention is the retention policy for a snapshot schedule One path has exactly one retention policy. A policy can however contain multiple count-time period pairs in order to specify complex retention policies
  7885. items:
  7886. description: SnapshotScheduleRetentionSpec is a retention policy
  7887. properties:
  7888. duration:
  7889. description: Duration represents the retention duration for a snapshot
  7890. type: string
  7891. path:
  7892. description: Path is the path to snapshot
  7893. type: string
  7894. type: object
  7895. type: array
  7896. snapshotSchedules:
  7897. description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
  7898. items:
  7899. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  7900. properties:
  7901. interval:
  7902. description: Interval represent the periodicity of the snapshot.
  7903. type: string
  7904. path:
  7905. description: Path is the path to snapshot, only valid for CephFS
  7906. type: string
  7907. startTime:
  7908. description: StartTime indicates when to start the snapshot
  7909. type: string
  7910. type: object
  7911. type: array
  7912. type: object
  7913. preserveFilesystemOnDelete:
  7914. description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
  7915. type: boolean
  7916. preservePoolsOnDelete:
  7917. description: Preserve pools on filesystem deletion
  7918. type: boolean
  7919. statusCheck:
  7920. description: The mirroring statusCheck
  7921. properties:
  7922. mirror:
  7923. description: HealthCheckSpec represents the health check of an object store bucket
  7924. nullable: true
  7925. properties:
  7926. disabled:
  7927. type: boolean
  7928. interval:
  7929. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7930. type: string
  7931. timeout:
  7932. type: string
  7933. type: object
  7934. type: object
  7935. x-kubernetes-preserve-unknown-fields: true
  7936. required:
  7937. - dataPools
  7938. - metadataPool
  7939. - metadataServer
  7940. type: object
  7941. status:
  7942. description: CephFilesystemStatus represents the status of a Ceph Filesystem
  7943. properties:
  7944. conditions:
  7945. items:
  7946. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  7947. properties:
  7948. lastHeartbeatTime:
  7949. format: date-time
  7950. type: string
  7951. lastTransitionTime:
  7952. format: date-time
  7953. type: string
  7954. message:
  7955. type: string
  7956. reason:
  7957. description: ConditionReason is a reason for a condition
  7958. type: string
  7959. status:
  7960. type: string
  7961. type:
  7962. description: ConditionType represent a resource's status
  7963. type: string
  7964. type: object
  7965. type: array
  7966. info:
  7967. additionalProperties:
  7968. type: string
  7969. description: Use only info and put mirroringStatus in it?
  7970. nullable: true
  7971. type: object
  7972. mirroringStatus:
  7973. description: MirroringStatus is the filesystem mirroring status
  7974. properties:
  7975. daemonsStatus:
  7976. description: PoolMirroringStatus is the mirroring status of a filesystem
  7977. items:
  7978. description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem
  7979. properties:
  7980. daemon_id:
  7981. description: DaemonID is the cephfs-mirror name
  7982. type: integer
  7983. filesystems:
  7984. description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
  7985. items:
  7986. description: FilesystemsSpec is spec for the mirrored filesystem
  7987. properties:
  7988. directory_count:
  7989. description: DirectoryCount is the number of directories in the filesystem
  7990. type: integer
  7991. filesystem_id:
  7992. description: FilesystemID is the filesystem identifier
  7993. type: integer
  7994. name:
  7995. description: Name is name of the filesystem
  7996. type: string
  7997. peers:
  7998. description: Peers represents the mirroring peers
  7999. items:
  8000. description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror
  8001. properties:
  8002. remote:
  8003. description: Remote are the remote cluster information
  8004. properties:
  8005. client_name:
  8006. description: ClientName is cephx name
  8007. type: string
  8008. cluster_name:
  8009. description: ClusterName is the name of the cluster
  8010. type: string
  8011. fs_name:
  8012. description: FsName is the filesystem name
  8013. type: string
  8014. type: object
  8015. stats:
  8016. description: Stats are the stat a peer mirror
  8017. properties:
  8018. failure_count:
  8019. description: FailureCount is the number of mirroring failure
  8020. type: integer
  8021. recovery_count:
  8022. description: RecoveryCount is the number of recovery attempted after failures
  8023. type: integer
  8024. type: object
  8025. uuid:
  8026. description: UUID is the peer unique identifier
  8027. type: string
  8028. type: object
  8029. type: array
  8030. type: object
  8031. type: array
  8032. type: object
  8033. nullable: true
  8034. type: array
  8035. details:
  8036. description: Details contains potential status errors
  8037. type: string
  8038. lastChanged:
  8039. description: LastChanged is the last time time the status last changed
  8040. type: string
  8041. lastChecked:
  8042. description: LastChecked is the last time time the status was checked
  8043. type: string
  8044. type: object
  8045. observedGeneration:
  8046. description: ObservedGeneration is the latest generation observed by the controller.
  8047. format: int64
  8048. type: integer
  8049. phase:
  8050. description: ConditionType represent a resource's status
  8051. type: string
  8052. snapshotScheduleStatus:
  8053. description: FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
  8054. properties:
  8055. details:
  8056. description: Details contains potential status errors
  8057. type: string
  8058. lastChanged:
  8059. description: LastChanged is the last time time the status last changed
  8060. type: string
  8061. lastChecked:
  8062. description: LastChecked is the last time time the status was checked
  8063. type: string
  8064. snapshotSchedules:
  8065. description: SnapshotSchedules is the list of snapshots scheduled
  8066. items:
  8067. description: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  8068. properties:
  8069. fs:
  8070. description: Fs is the name of the Ceph Filesystem
  8071. type: string
  8072. path:
  8073. description: Path is the path on the filesystem
  8074. type: string
  8075. rel_path:
  8076. type: string
  8077. retention:
  8078. description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
  8079. properties:
  8080. active:
  8081. description: Active is whether the scheduled is active or not
  8082. type: boolean
  8083. created:
  8084. description: Created is when the snapshot schedule was created
  8085. type: string
  8086. created_count:
  8087. description: CreatedCount is total amount of snapshots
  8088. type: integer
  8089. first:
  8090. description: First is when the first snapshot schedule was taken
  8091. type: string
  8092. last:
  8093. description: Last is when the last snapshot schedule was taken
  8094. type: string
  8095. last_pruned:
  8096. description: LastPruned is when the last snapshot schedule was pruned
  8097. type: string
  8098. pruned_count:
  8099. description: PrunedCount is total amount of pruned snapshots
  8100. type: integer
  8101. start:
  8102. description: Start is when the snapshot schedule starts
  8103. type: string
  8104. type: object
  8105. schedule:
  8106. type: string
  8107. subvol:
  8108. description: Subvol is the name of the sub volume
  8109. type: string
  8110. type: object
  8111. nullable: true
  8112. type: array
  8113. type: object
  8114. type: object
  8115. x-kubernetes-preserve-unknown-fields: true
  8116. required:
  8117. - metadata
  8118. - spec
  8119. type: object
  8120. served: true
  8121. storage: true
  8122. subresources:
  8123. status: {}
  8124. ---
  8125. # Source: rook-ceph/templates/resources.yaml
  8126. apiVersion: apiextensions.k8s.io/v1
  8127. kind: CustomResourceDefinition
  8128. metadata:
  8129. annotations:
  8130. controller-gen.kubebuilder.io/version: v0.11.3
  8131. helm.sh/resource-policy: keep
  8132. creationTimestamp: null
  8133. name: cephfilesystemsubvolumegroups.ceph.rook.io
  8134. spec:
  8135. group: ceph.rook.io
  8136. names:
  8137. kind: CephFilesystemSubVolumeGroup
  8138. listKind: CephFilesystemSubVolumeGroupList
  8139. plural: cephfilesystemsubvolumegroups
  8140. singular: cephfilesystemsubvolumegroup
  8141. scope: Namespaced
  8142. versions:
  8143. - additionalPrinterColumns:
  8144. - jsonPath: .status.phase
  8145. name: Phase
  8146. type: string
  8147. name: v1
  8148. schema:
  8149. openAPIV3Schema:
  8150. description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
  8151. properties:
  8152. apiVersion:
  8153. 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'
  8154. type: string
  8155. kind:
  8156. 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'
  8157. type: string
  8158. metadata:
  8159. type: object
  8160. spec:
  8161. description: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
  8162. properties:
  8163. filesystemName:
  8164. description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
  8165. type: string
  8166. required:
  8167. - filesystemName
  8168. type: object
  8169. status:
  8170. description: Status represents the status of a CephFilesystem SubvolumeGroup
  8171. properties:
  8172. info:
  8173. additionalProperties:
  8174. type: string
  8175. nullable: true
  8176. type: object
  8177. observedGeneration:
  8178. description: ObservedGeneration is the latest generation observed by the controller.
  8179. format: int64
  8180. type: integer
  8181. phase:
  8182. description: ConditionType represent a resource's status
  8183. type: string
  8184. type: object
  8185. x-kubernetes-preserve-unknown-fields: true
  8186. required:
  8187. - metadata
  8188. - spec
  8189. type: object
  8190. served: true
  8191. storage: true
  8192. subresources:
  8193. status: {}
  8194. ---
  8195. # Source: rook-ceph/templates/resources.yaml
  8196. apiVersion: apiextensions.k8s.io/v1
  8197. kind: CustomResourceDefinition
  8198. metadata:
  8199. annotations:
  8200. controller-gen.kubebuilder.io/version: v0.11.3
  8201. helm.sh/resource-policy: keep
  8202. creationTimestamp: null
  8203. name: cephnfses.ceph.rook.io
  8204. spec:
  8205. group: ceph.rook.io
  8206. names:
  8207. kind: CephNFS
  8208. listKind: CephNFSList
  8209. plural: cephnfses
  8210. shortNames:
  8211. - nfs
  8212. singular: cephnfs
  8213. scope: Namespaced
  8214. versions:
  8215. - name: v1
  8216. schema:
  8217. openAPIV3Schema:
  8218. description: CephNFS represents a Ceph NFS
  8219. properties:
  8220. apiVersion:
  8221. 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'
  8222. type: string
  8223. kind:
  8224. 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'
  8225. type: string
  8226. metadata:
  8227. type: object
  8228. spec:
  8229. description: NFSGaneshaSpec represents the spec of an nfs ganesha server
  8230. properties:
  8231. rados:
  8232. description: RADOS is the Ganesha RADOS specification
  8233. nullable: true
  8234. properties:
  8235. namespace:
  8236. description: The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific v16+, this is internally set to the name of the CephNFS.
  8237. type: string
  8238. pool:
  8239. description: The Ceph pool used store the shared configuration for NFS-Ganesha daemons. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific 16.2.7+, this is internally hardcoded to ".nfs".
  8240. type: string
  8241. type: object
  8242. security:
  8243. description: Security allows specifying security configurations for the NFS cluster
  8244. nullable: true
  8245. properties:
  8246. kerberos:
  8247. description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
  8248. nullable: true
  8249. properties:
  8250. configFiles:
  8251. description: "ConfigFiles defines where the Kerberos configuration should be sourced from. Config files will be placed into the `/etc/krb5.conf.rook/` directory. \n If this is left empty, Rook will not add any files. This allows you to manage the files yourself however you wish. For example, you may build them into your custom Ceph container image or use the Vault agent injector to securely add the files via annotations on the CephNFS spec (passed to the NFS server pods). \n Rook configures Kerberos to log to stderr. We suggest removing logging sections from config files to avoid consuming unnecessary disk space from logging to files."
  8252. properties:
  8253. volumeSource:
  8254. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for Kerberos configuration files like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. The volume may contain multiple files, all of which will be loaded.
  8255. properties:
  8256. configMap:
  8257. description: configMap represents a configMap that should populate this volume
  8258. properties:
  8259. defaultMode:
  8260. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8261. format: int32
  8262. type: integer
  8263. items:
  8264. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8265. items:
  8266. description: Maps a string key to a path within a volume.
  8267. properties:
  8268. key:
  8269. description: key is the key to project.
  8270. type: string
  8271. mode:
  8272. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8273. format: int32
  8274. type: integer
  8275. path:
  8276. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8277. type: string
  8278. required:
  8279. - key
  8280. - path
  8281. type: object
  8282. type: array
  8283. name:
  8284. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8285. type: string
  8286. optional:
  8287. description: optional specify whether the ConfigMap or its keys must be defined
  8288. type: boolean
  8289. type: object
  8290. x-kubernetes-map-type: atomic
  8291. emptyDir:
  8292. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8293. properties:
  8294. medium:
  8295. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8296. type: string
  8297. sizeLimit:
  8298. anyOf:
  8299. - type: integer
  8300. - type: string
  8301. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8302. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8303. x-kubernetes-int-or-string: true
  8304. type: object
  8305. hostPath:
  8306. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8307. properties:
  8308. path:
  8309. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8310. type: string
  8311. type:
  8312. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8313. type: string
  8314. required:
  8315. - path
  8316. type: object
  8317. persistentVolumeClaim:
  8318. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8319. properties:
  8320. claimName:
  8321. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8322. type: string
  8323. readOnly:
  8324. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8325. type: boolean
  8326. required:
  8327. - claimName
  8328. type: object
  8329. projected:
  8330. description: projected items for all in one resources secrets, configmaps, and downward API
  8331. properties:
  8332. defaultMode:
  8333. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8334. format: int32
  8335. type: integer
  8336. sources:
  8337. description: sources is the list of volume projections
  8338. items:
  8339. description: Projection that may be projected along with other supported volume types
  8340. properties:
  8341. configMap:
  8342. description: configMap information about the configMap data to project
  8343. properties:
  8344. items:
  8345. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8346. items:
  8347. description: Maps a string key to a path within a volume.
  8348. properties:
  8349. key:
  8350. description: key is the key to project.
  8351. type: string
  8352. mode:
  8353. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8354. format: int32
  8355. type: integer
  8356. path:
  8357. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8358. type: string
  8359. required:
  8360. - key
  8361. - path
  8362. type: object
  8363. type: array
  8364. name:
  8365. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8366. type: string
  8367. optional:
  8368. description: optional specify whether the ConfigMap or its keys must be defined
  8369. type: boolean
  8370. type: object
  8371. x-kubernetes-map-type: atomic
  8372. downwardAPI:
  8373. description: downwardAPI information about the downwardAPI data to project
  8374. properties:
  8375. items:
  8376. description: Items is a list of DownwardAPIVolume file
  8377. items:
  8378. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8379. properties:
  8380. fieldRef:
  8381. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8382. properties:
  8383. apiVersion:
  8384. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8385. type: string
  8386. fieldPath:
  8387. description: Path of the field to select in the specified API version.
  8388. type: string
  8389. required:
  8390. - fieldPath
  8391. type: object
  8392. x-kubernetes-map-type: atomic
  8393. mode:
  8394. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8395. format: int32
  8396. type: integer
  8397. path:
  8398. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8399. type: string
  8400. resourceFieldRef:
  8401. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8402. properties:
  8403. containerName:
  8404. description: 'Container name: required for volumes, optional for env vars'
  8405. type: string
  8406. divisor:
  8407. anyOf:
  8408. - type: integer
  8409. - type: string
  8410. description: Specifies the output format of the exposed resources, defaults to "1"
  8411. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8412. x-kubernetes-int-or-string: true
  8413. resource:
  8414. description: 'Required: resource to select'
  8415. type: string
  8416. required:
  8417. - resource
  8418. type: object
  8419. x-kubernetes-map-type: atomic
  8420. required:
  8421. - path
  8422. type: object
  8423. type: array
  8424. type: object
  8425. secret:
  8426. description: secret information about the secret data to project
  8427. properties:
  8428. items:
  8429. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8430. items:
  8431. description: Maps a string key to a path within a volume.
  8432. properties:
  8433. key:
  8434. description: key is the key to project.
  8435. type: string
  8436. mode:
  8437. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8438. format: int32
  8439. type: integer
  8440. path:
  8441. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8442. type: string
  8443. required:
  8444. - key
  8445. - path
  8446. type: object
  8447. type: array
  8448. name:
  8449. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8450. type: string
  8451. optional:
  8452. description: optional field specify whether the Secret or its key must be defined
  8453. type: boolean
  8454. type: object
  8455. x-kubernetes-map-type: atomic
  8456. serviceAccountToken:
  8457. description: serviceAccountToken is information about the serviceAccountToken data to project
  8458. properties:
  8459. audience:
  8460. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8461. type: string
  8462. expirationSeconds:
  8463. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8464. format: int64
  8465. type: integer
  8466. path:
  8467. description: path is the path relative to the mount point of the file to project the token into.
  8468. type: string
  8469. required:
  8470. - path
  8471. type: object
  8472. type: object
  8473. type: array
  8474. type: object
  8475. secret:
  8476. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8477. properties:
  8478. defaultMode:
  8479. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8480. format: int32
  8481. type: integer
  8482. items:
  8483. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8484. items:
  8485. description: Maps a string key to a path within a volume.
  8486. properties:
  8487. key:
  8488. description: key is the key to project.
  8489. type: string
  8490. mode:
  8491. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8492. format: int32
  8493. type: integer
  8494. path:
  8495. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8496. type: string
  8497. required:
  8498. - key
  8499. - path
  8500. type: object
  8501. type: array
  8502. optional:
  8503. description: optional field specify whether the Secret or its keys must be defined
  8504. type: boolean
  8505. secretName:
  8506. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8507. type: string
  8508. type: object
  8509. type: object
  8510. type: object
  8511. domainName:
  8512. description: DomainName should be set to the Kerberos Realm.
  8513. type: string
  8514. keytabFile:
  8515. description: KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file. This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  8516. properties:
  8517. volumeSource:
  8518. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the Kerberos keytab file like what is normally used to configure Volumes for a Pod. For example, a Secret or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: krb5.keytab`. For example, in a Secret, the data item must be named `krb5.keytab`, or `items` must be defined to select the key and give it path `krb5.keytab`. A HostPath directory must have the `krb5.keytab` file. 2. The volume or config file must have mode 0600.'
  8519. properties:
  8520. configMap:
  8521. description: configMap represents a configMap that should populate this volume
  8522. properties:
  8523. defaultMode:
  8524. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8525. format: int32
  8526. type: integer
  8527. items:
  8528. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8529. items:
  8530. description: Maps a string key to a path within a volume.
  8531. properties:
  8532. key:
  8533. description: key is the key to project.
  8534. type: string
  8535. mode:
  8536. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8537. format: int32
  8538. type: integer
  8539. path:
  8540. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8541. type: string
  8542. required:
  8543. - key
  8544. - path
  8545. type: object
  8546. type: array
  8547. name:
  8548. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8549. type: string
  8550. optional:
  8551. description: optional specify whether the ConfigMap or its keys must be defined
  8552. type: boolean
  8553. type: object
  8554. x-kubernetes-map-type: atomic
  8555. emptyDir:
  8556. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8557. properties:
  8558. medium:
  8559. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8560. type: string
  8561. sizeLimit:
  8562. anyOf:
  8563. - type: integer
  8564. - type: string
  8565. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8566. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8567. x-kubernetes-int-or-string: true
  8568. type: object
  8569. hostPath:
  8570. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8571. properties:
  8572. path:
  8573. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8574. type: string
  8575. type:
  8576. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8577. type: string
  8578. required:
  8579. - path
  8580. type: object
  8581. persistentVolumeClaim:
  8582. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8583. properties:
  8584. claimName:
  8585. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8586. type: string
  8587. readOnly:
  8588. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8589. type: boolean
  8590. required:
  8591. - claimName
  8592. type: object
  8593. projected:
  8594. description: projected items for all in one resources secrets, configmaps, and downward API
  8595. properties:
  8596. defaultMode:
  8597. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8598. format: int32
  8599. type: integer
  8600. sources:
  8601. description: sources is the list of volume projections
  8602. items:
  8603. description: Projection that may be projected along with other supported volume types
  8604. properties:
  8605. configMap:
  8606. description: configMap information about the configMap data to project
  8607. properties:
  8608. items:
  8609. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8610. items:
  8611. description: Maps a string key to a path within a volume.
  8612. properties:
  8613. key:
  8614. description: key is the key to project.
  8615. type: string
  8616. mode:
  8617. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8618. format: int32
  8619. type: integer
  8620. path:
  8621. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8622. type: string
  8623. required:
  8624. - key
  8625. - path
  8626. type: object
  8627. type: array
  8628. name:
  8629. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8630. type: string
  8631. optional:
  8632. description: optional specify whether the ConfigMap or its keys must be defined
  8633. type: boolean
  8634. type: object
  8635. x-kubernetes-map-type: atomic
  8636. downwardAPI:
  8637. description: downwardAPI information about the downwardAPI data to project
  8638. properties:
  8639. items:
  8640. description: Items is a list of DownwardAPIVolume file
  8641. items:
  8642. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8643. properties:
  8644. fieldRef:
  8645. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8646. properties:
  8647. apiVersion:
  8648. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8649. type: string
  8650. fieldPath:
  8651. description: Path of the field to select in the specified API version.
  8652. type: string
  8653. required:
  8654. - fieldPath
  8655. type: object
  8656. x-kubernetes-map-type: atomic
  8657. mode:
  8658. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8659. format: int32
  8660. type: integer
  8661. path:
  8662. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8663. type: string
  8664. resourceFieldRef:
  8665. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8666. properties:
  8667. containerName:
  8668. description: 'Container name: required for volumes, optional for env vars'
  8669. type: string
  8670. divisor:
  8671. anyOf:
  8672. - type: integer
  8673. - type: string
  8674. description: Specifies the output format of the exposed resources, defaults to "1"
  8675. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8676. x-kubernetes-int-or-string: true
  8677. resource:
  8678. description: 'Required: resource to select'
  8679. type: string
  8680. required:
  8681. - resource
  8682. type: object
  8683. x-kubernetes-map-type: atomic
  8684. required:
  8685. - path
  8686. type: object
  8687. type: array
  8688. type: object
  8689. secret:
  8690. description: secret information about the secret data to project
  8691. properties:
  8692. items:
  8693. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8694. items:
  8695. description: Maps a string key to a path within a volume.
  8696. properties:
  8697. key:
  8698. description: key is the key to project.
  8699. type: string
  8700. mode:
  8701. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8702. format: int32
  8703. type: integer
  8704. path:
  8705. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8706. type: string
  8707. required:
  8708. - key
  8709. - path
  8710. type: object
  8711. type: array
  8712. name:
  8713. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8714. type: string
  8715. optional:
  8716. description: optional field specify whether the Secret or its key must be defined
  8717. type: boolean
  8718. type: object
  8719. x-kubernetes-map-type: atomic
  8720. serviceAccountToken:
  8721. description: serviceAccountToken is information about the serviceAccountToken data to project
  8722. properties:
  8723. audience:
  8724. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8725. type: string
  8726. expirationSeconds:
  8727. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8728. format: int64
  8729. type: integer
  8730. path:
  8731. description: path is the path relative to the mount point of the file to project the token into.
  8732. type: string
  8733. required:
  8734. - path
  8735. type: object
  8736. type: object
  8737. type: array
  8738. type: object
  8739. secret:
  8740. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8741. properties:
  8742. defaultMode:
  8743. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8744. format: int32
  8745. type: integer
  8746. items:
  8747. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8748. items:
  8749. description: Maps a string key to a path within a volume.
  8750. properties:
  8751. key:
  8752. description: key is the key to project.
  8753. type: string
  8754. mode:
  8755. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8756. format: int32
  8757. type: integer
  8758. path:
  8759. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8760. type: string
  8761. required:
  8762. - key
  8763. - path
  8764. type: object
  8765. type: array
  8766. optional:
  8767. description: optional field specify whether the Secret or its keys must be defined
  8768. type: boolean
  8769. secretName:
  8770. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8771. type: string
  8772. type: object
  8773. type: object
  8774. type: object
  8775. principalName:
  8776. default: nfs
  8777. description: 'PrincipalName corresponds directly to NFS-Ganesha''s NFS_KRB5:PrincipalName config. In practice, this is the service prefix of the principal name. The default is "nfs". This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between) and (b) the Realm configured in the user-provided krb5.conf to determine the full principal name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net. See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.'
  8778. type: string
  8779. type: object
  8780. sssd:
  8781. description: SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to provide user ID mapping from a number of sources. See https://sssd.io for more information about the SSSD project.
  8782. nullable: true
  8783. properties:
  8784. sidecar:
  8785. description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
  8786. properties:
  8787. additionalFiles:
  8788. description: AdditionalFiles defines any number of additional files that should be mounted into the SSSD sidecar. These files may be referenced by the sssd.conf config file.
  8789. items:
  8790. description: SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD configuration should come from and are made available.
  8791. properties:
  8792. subPath:
  8793. description: SubPath defines the sub-path in `/etc/sssd/rook-additional/` where the additional file(s) will be placed. Each subPath definition must be unique and must not contain ':'.
  8794. minLength: 1
  8795. pattern: ^[^:]+$
  8796. type: string
  8797. volumeSource:
  8798. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the additional file(s) like what is normally used to configure Volumes for a Pod. Fore example, a ConfigMap, Secret, or HostPath. Each VolumeSource adds one or more additional files to the SSSD sidecar container in the `/etc/sssd/rook-additional/<subPath>` directory. Be aware that some files may need to have a specific file mode like 0600 due to requirements by SSSD for some files. For example, CA or TLS certificates.
  8799. properties:
  8800. configMap:
  8801. description: configMap represents a configMap that should populate this volume
  8802. properties:
  8803. defaultMode:
  8804. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8805. format: int32
  8806. type: integer
  8807. items:
  8808. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8809. items:
  8810. description: Maps a string key to a path within a volume.
  8811. properties:
  8812. key:
  8813. description: key is the key to project.
  8814. type: string
  8815. mode:
  8816. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8817. format: int32
  8818. type: integer
  8819. path:
  8820. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8821. type: string
  8822. required:
  8823. - key
  8824. - path
  8825. type: object
  8826. type: array
  8827. name:
  8828. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8829. type: string
  8830. optional:
  8831. description: optional specify whether the ConfigMap or its keys must be defined
  8832. type: boolean
  8833. type: object
  8834. x-kubernetes-map-type: atomic
  8835. emptyDir:
  8836. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8837. properties:
  8838. medium:
  8839. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8840. type: string
  8841. sizeLimit:
  8842. anyOf:
  8843. - type: integer
  8844. - type: string
  8845. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8846. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8847. x-kubernetes-int-or-string: true
  8848. type: object
  8849. hostPath:
  8850. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8851. properties:
  8852. path:
  8853. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8854. type: string
  8855. type:
  8856. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8857. type: string
  8858. required:
  8859. - path
  8860. type: object
  8861. persistentVolumeClaim:
  8862. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8863. properties:
  8864. claimName:
  8865. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8866. type: string
  8867. readOnly:
  8868. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8869. type: boolean
  8870. required:
  8871. - claimName
  8872. type: object
  8873. projected:
  8874. description: projected items for all in one resources secrets, configmaps, and downward API
  8875. properties:
  8876. defaultMode:
  8877. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8878. format: int32
  8879. type: integer
  8880. sources:
  8881. description: sources is the list of volume projections
  8882. items:
  8883. description: Projection that may be projected along with other supported volume types
  8884. properties:
  8885. configMap:
  8886. description: configMap information about the configMap data to project
  8887. properties:
  8888. items:
  8889. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8890. items:
  8891. description: Maps a string key to a path within a volume.
  8892. properties:
  8893. key:
  8894. description: key is the key to project.
  8895. type: string
  8896. mode:
  8897. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8898. format: int32
  8899. type: integer
  8900. path:
  8901. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8902. type: string
  8903. required:
  8904. - key
  8905. - path
  8906. type: object
  8907. type: array
  8908. name:
  8909. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8910. type: string
  8911. optional:
  8912. description: optional specify whether the ConfigMap or its keys must be defined
  8913. type: boolean
  8914. type: object
  8915. x-kubernetes-map-type: atomic
  8916. downwardAPI:
  8917. description: downwardAPI information about the downwardAPI data to project
  8918. properties:
  8919. items:
  8920. description: Items is a list of DownwardAPIVolume file
  8921. items:
  8922. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8923. properties:
  8924. fieldRef:
  8925. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8926. properties:
  8927. apiVersion:
  8928. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8929. type: string
  8930. fieldPath:
  8931. description: Path of the field to select in the specified API version.
  8932. type: string
  8933. required:
  8934. - fieldPath
  8935. type: object
  8936. x-kubernetes-map-type: atomic
  8937. mode:
  8938. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8939. format: int32
  8940. type: integer
  8941. path:
  8942. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8943. type: string
  8944. resourceFieldRef:
  8945. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8946. properties:
  8947. containerName:
  8948. description: 'Container name: required for volumes, optional for env vars'
  8949. type: string
  8950. divisor:
  8951. anyOf:
  8952. - type: integer
  8953. - type: string
  8954. description: Specifies the output format of the exposed resources, defaults to "1"
  8955. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8956. x-kubernetes-int-or-string: true
  8957. resource:
  8958. description: 'Required: resource to select'
  8959. type: string
  8960. required:
  8961. - resource
  8962. type: object
  8963. x-kubernetes-map-type: atomic
  8964. required:
  8965. - path
  8966. type: object
  8967. type: array
  8968. type: object
  8969. secret:
  8970. description: secret information about the secret data to project
  8971. properties:
  8972. items:
  8973. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8974. items:
  8975. description: Maps a string key to a path within a volume.
  8976. properties:
  8977. key:
  8978. description: key is the key to project.
  8979. type: string
  8980. mode:
  8981. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8982. format: int32
  8983. type: integer
  8984. path:
  8985. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8986. type: string
  8987. required:
  8988. - key
  8989. - path
  8990. type: object
  8991. type: array
  8992. name:
  8993. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8994. type: string
  8995. optional:
  8996. description: optional field specify whether the Secret or its key must be defined
  8997. type: boolean
  8998. type: object
  8999. x-kubernetes-map-type: atomic
  9000. serviceAccountToken:
  9001. description: serviceAccountToken is information about the serviceAccountToken data to project
  9002. properties:
  9003. audience:
  9004. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  9005. type: string
  9006. expirationSeconds:
  9007. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  9008. format: int64
  9009. type: integer
  9010. path:
  9011. description: path is the path relative to the mount point of the file to project the token into.
  9012. type: string
  9013. required:
  9014. - path
  9015. type: object
  9016. type: object
  9017. type: array
  9018. type: object
  9019. secret:
  9020. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9021. properties:
  9022. defaultMode:
  9023. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9024. format: int32
  9025. type: integer
  9026. items:
  9027. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9028. items:
  9029. description: Maps a string key to a path within a volume.
  9030. properties:
  9031. key:
  9032. description: key is the key to project.
  9033. type: string
  9034. mode:
  9035. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9036. format: int32
  9037. type: integer
  9038. path:
  9039. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9040. type: string
  9041. required:
  9042. - key
  9043. - path
  9044. type: object
  9045. type: array
  9046. optional:
  9047. description: optional field specify whether the Secret or its keys must be defined
  9048. type: boolean
  9049. secretName:
  9050. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9051. type: string
  9052. type: object
  9053. type: object
  9054. required:
  9055. - subPath
  9056. - volumeSource
  9057. type: object
  9058. type: array
  9059. debugLevel:
  9060. description: 'DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise, this may be a value between 1 and 10. See SSSD docs for more info: https://sssd.io/troubleshooting/basics.html#sssd-debug-logs'
  9061. maximum: 10
  9062. minimum: 0
  9063. type: integer
  9064. image:
  9065. description: Image defines the container image that should be used for the SSSD sidecar.
  9066. minLength: 1
  9067. type: string
  9068. resources:
  9069. description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
  9070. properties:
  9071. claims:
  9072. 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."
  9073. items:
  9074. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9075. properties:
  9076. name:
  9077. 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.
  9078. type: string
  9079. required:
  9080. - name
  9081. type: object
  9082. type: array
  9083. x-kubernetes-list-map-keys:
  9084. - name
  9085. x-kubernetes-list-type: map
  9086. limits:
  9087. additionalProperties:
  9088. anyOf:
  9089. - type: integer
  9090. - type: string
  9091. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9092. x-kubernetes-int-or-string: true
  9093. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9094. type: object
  9095. requests:
  9096. additionalProperties:
  9097. anyOf:
  9098. - type: integer
  9099. - type: string
  9100. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9101. x-kubernetes-int-or-string: true
  9102. 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/'
  9103. type: object
  9104. type: object
  9105. sssdConfigFile:
  9106. description: SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file. This allows you to manage the `sssd.conf` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  9107. properties:
  9108. volumeSource:
  9109. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the SSSD configuration file like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: sssd.conf`. For example, in a ConfigMap, the data item must be named `sssd.conf`, or `items` must be defined to select the key and give it path `sssd.conf`. A HostPath directory must have the `sssd.conf` file. 2. The volume or config file must have mode 0600.'
  9110. properties:
  9111. configMap:
  9112. description: configMap represents a configMap that should populate this volume
  9113. properties:
  9114. defaultMode:
  9115. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9116. format: int32
  9117. type: integer
  9118. items:
  9119. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9120. items:
  9121. description: Maps a string key to a path within a volume.
  9122. properties:
  9123. key:
  9124. description: key is the key to project.
  9125. type: string
  9126. mode:
  9127. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9128. format: int32
  9129. type: integer
  9130. path:
  9131. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9132. type: string
  9133. required:
  9134. - key
  9135. - path
  9136. type: object
  9137. type: array
  9138. name:
  9139. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9140. type: string
  9141. optional:
  9142. description: optional specify whether the ConfigMap or its keys must be defined
  9143. type: boolean
  9144. type: object
  9145. x-kubernetes-map-type: atomic
  9146. emptyDir:
  9147. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9148. properties:
  9149. medium:
  9150. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9151. type: string
  9152. sizeLimit:
  9153. anyOf:
  9154. - type: integer
  9155. - type: string
  9156. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9157. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9158. x-kubernetes-int-or-string: true
  9159. type: object
  9160. hostPath:
  9161. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  9162. properties:
  9163. path:
  9164. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9165. type: string
  9166. type:
  9167. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9168. type: string
  9169. required:
  9170. - path
  9171. type: object
  9172. persistentVolumeClaim:
  9173. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9174. properties:
  9175. claimName:
  9176. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9177. type: string
  9178. readOnly:
  9179. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  9180. type: boolean
  9181. required:
  9182. - claimName
  9183. type: object
  9184. projected:
  9185. description: projected items for all in one resources secrets, configmaps, and downward API
  9186. properties:
  9187. defaultMode:
  9188. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  9189. format: int32
  9190. type: integer
  9191. sources:
  9192. description: sources is the list of volume projections
  9193. items:
  9194. description: Projection that may be projected along with other supported volume types
  9195. properties:
  9196. configMap:
  9197. description: configMap information about the configMap data to project
  9198. properties:
  9199. items:
  9200. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9201. items:
  9202. description: Maps a string key to a path within a volume.
  9203. properties:
  9204. key:
  9205. description: key is the key to project.
  9206. type: string
  9207. mode:
  9208. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9209. format: int32
  9210. type: integer
  9211. path:
  9212. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9213. type: string
  9214. required:
  9215. - key
  9216. - path
  9217. type: object
  9218. type: array
  9219. name:
  9220. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9221. type: string
  9222. optional:
  9223. description: optional specify whether the ConfigMap or its keys must be defined
  9224. type: boolean
  9225. type: object
  9226. x-kubernetes-map-type: atomic
  9227. downwardAPI:
  9228. description: downwardAPI information about the downwardAPI data to project
  9229. properties:
  9230. items:
  9231. description: Items is a list of DownwardAPIVolume file
  9232. items:
  9233. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  9234. properties:
  9235. fieldRef:
  9236. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  9237. properties:
  9238. apiVersion:
  9239. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  9240. type: string
  9241. fieldPath:
  9242. description: Path of the field to select in the specified API version.
  9243. type: string
  9244. required:
  9245. - fieldPath
  9246. type: object
  9247. x-kubernetes-map-type: atomic
  9248. mode:
  9249. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9250. format: int32
  9251. type: integer
  9252. path:
  9253. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  9254. type: string
  9255. resourceFieldRef:
  9256. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  9257. properties:
  9258. containerName:
  9259. description: 'Container name: required for volumes, optional for env vars'
  9260. type: string
  9261. divisor:
  9262. anyOf:
  9263. - type: integer
  9264. - type: string
  9265. description: Specifies the output format of the exposed resources, defaults to "1"
  9266. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9267. x-kubernetes-int-or-string: true
  9268. resource:
  9269. description: 'Required: resource to select'
  9270. type: string
  9271. required:
  9272. - resource
  9273. type: object
  9274. x-kubernetes-map-type: atomic
  9275. required:
  9276. - path
  9277. type: object
  9278. type: array
  9279. type: object
  9280. secret:
  9281. description: secret information about the secret data to project
  9282. properties:
  9283. items:
  9284. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9285. items:
  9286. description: Maps a string key to a path within a volume.
  9287. properties:
  9288. key:
  9289. description: key is the key to project.
  9290. type: string
  9291. mode:
  9292. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9293. format: int32
  9294. type: integer
  9295. path:
  9296. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9297. type: string
  9298. required:
  9299. - key
  9300. - path
  9301. type: object
  9302. type: array
  9303. name:
  9304. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9305. type: string
  9306. optional:
  9307. description: optional field specify whether the Secret or its key must be defined
  9308. type: boolean
  9309. type: object
  9310. x-kubernetes-map-type: atomic
  9311. serviceAccountToken:
  9312. description: serviceAccountToken is information about the serviceAccountToken data to project
  9313. properties:
  9314. audience:
  9315. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  9316. type: string
  9317. expirationSeconds:
  9318. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  9319. format: int64
  9320. type: integer
  9321. path:
  9322. description: path is the path relative to the mount point of the file to project the token into.
  9323. type: string
  9324. required:
  9325. - path
  9326. type: object
  9327. type: object
  9328. type: array
  9329. type: object
  9330. secret:
  9331. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9332. properties:
  9333. defaultMode:
  9334. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9335. format: int32
  9336. type: integer
  9337. items:
  9338. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9339. items:
  9340. description: Maps a string key to a path within a volume.
  9341. properties:
  9342. key:
  9343. description: key is the key to project.
  9344. type: string
  9345. mode:
  9346. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9347. format: int32
  9348. type: integer
  9349. path:
  9350. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9351. type: string
  9352. required:
  9353. - key
  9354. - path
  9355. type: object
  9356. type: array
  9357. optional:
  9358. description: optional field specify whether the Secret or its keys must be defined
  9359. type: boolean
  9360. secretName:
  9361. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9362. type: string
  9363. type: object
  9364. type: object
  9365. type: object
  9366. required:
  9367. - image
  9368. type: object
  9369. type: object
  9370. type: object
  9371. server:
  9372. description: Server is the Ganesha Server specification
  9373. properties:
  9374. active:
  9375. description: The number of active Ganesha servers
  9376. type: integer
  9377. annotations:
  9378. additionalProperties:
  9379. type: string
  9380. description: The annotations-related configuration to add/set on each Pod related object.
  9381. nullable: true
  9382. type: object
  9383. x-kubernetes-preserve-unknown-fields: true
  9384. hostNetwork:
  9385. description: Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
  9386. nullable: true
  9387. type: boolean
  9388. labels:
  9389. additionalProperties:
  9390. type: string
  9391. description: The labels-related configuration to add/set on each Pod related object.
  9392. nullable: true
  9393. type: object
  9394. x-kubernetes-preserve-unknown-fields: true
  9395. logLevel:
  9396. description: LogLevel set logging level
  9397. type: string
  9398. placement:
  9399. description: The affinity to place the ganesha pods
  9400. nullable: true
  9401. properties:
  9402. nodeAffinity:
  9403. description: NodeAffinity is a group of node affinity scheduling rules
  9404. properties:
  9405. preferredDuringSchedulingIgnoredDuringExecution:
  9406. 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.
  9407. items:
  9408. 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).
  9409. properties:
  9410. preference:
  9411. description: A node selector term, associated with the corresponding weight.
  9412. properties:
  9413. matchExpressions:
  9414. description: A list of node selector requirements by node's labels.
  9415. items:
  9416. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9417. properties:
  9418. key:
  9419. description: The label key that the selector applies to.
  9420. type: string
  9421. operator:
  9422. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9423. type: string
  9424. values:
  9425. 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.
  9426. items:
  9427. type: string
  9428. type: array
  9429. required:
  9430. - key
  9431. - operator
  9432. type: object
  9433. type: array
  9434. matchFields:
  9435. description: A list of node selector requirements by node's fields.
  9436. items:
  9437. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9438. properties:
  9439. key:
  9440. description: The label key that the selector applies to.
  9441. type: string
  9442. operator:
  9443. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9444. type: string
  9445. values:
  9446. 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.
  9447. items:
  9448. type: string
  9449. type: array
  9450. required:
  9451. - key
  9452. - operator
  9453. type: object
  9454. type: array
  9455. type: object
  9456. x-kubernetes-map-type: atomic
  9457. weight:
  9458. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  9459. format: int32
  9460. type: integer
  9461. required:
  9462. - preference
  9463. - weight
  9464. type: object
  9465. type: array
  9466. requiredDuringSchedulingIgnoredDuringExecution:
  9467. 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.
  9468. properties:
  9469. nodeSelectorTerms:
  9470. description: Required. A list of node selector terms. The terms are ORed.
  9471. items:
  9472. 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.
  9473. properties:
  9474. matchExpressions:
  9475. description: A list of node selector requirements by node's labels.
  9476. items:
  9477. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9478. properties:
  9479. key:
  9480. description: The label key that the selector applies to.
  9481. type: string
  9482. operator:
  9483. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9484. type: string
  9485. values:
  9486. 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.
  9487. items:
  9488. type: string
  9489. type: array
  9490. required:
  9491. - key
  9492. - operator
  9493. type: object
  9494. type: array
  9495. matchFields:
  9496. description: A list of node selector requirements by node's fields.
  9497. items:
  9498. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9499. properties:
  9500. key:
  9501. description: The label key that the selector applies to.
  9502. type: string
  9503. operator:
  9504. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9505. type: string
  9506. values:
  9507. 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.
  9508. items:
  9509. type: string
  9510. type: array
  9511. required:
  9512. - key
  9513. - operator
  9514. type: object
  9515. type: array
  9516. type: object
  9517. x-kubernetes-map-type: atomic
  9518. type: array
  9519. required:
  9520. - nodeSelectorTerms
  9521. type: object
  9522. x-kubernetes-map-type: atomic
  9523. type: object
  9524. podAffinity:
  9525. description: PodAffinity is a group of inter pod affinity scheduling rules
  9526. properties:
  9527. preferredDuringSchedulingIgnoredDuringExecution:
  9528. 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.
  9529. items:
  9530. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9531. properties:
  9532. podAffinityTerm:
  9533. description: Required. A pod affinity term, associated with the corresponding weight.
  9534. properties:
  9535. labelSelector:
  9536. description: A label query over a set of resources, in this case pods.
  9537. properties:
  9538. matchExpressions:
  9539. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9540. items:
  9541. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9542. properties:
  9543. key:
  9544. description: key is the label key that the selector applies to.
  9545. type: string
  9546. operator:
  9547. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9548. type: string
  9549. values:
  9550. 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.
  9551. items:
  9552. type: string
  9553. type: array
  9554. required:
  9555. - key
  9556. - operator
  9557. type: object
  9558. type: array
  9559. matchLabels:
  9560. additionalProperties:
  9561. type: string
  9562. 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.
  9563. type: object
  9564. type: object
  9565. x-kubernetes-map-type: atomic
  9566. namespaceSelector:
  9567. 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.
  9568. properties:
  9569. matchExpressions:
  9570. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9571. items:
  9572. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9573. properties:
  9574. key:
  9575. description: key is the label key that the selector applies to.
  9576. type: string
  9577. operator:
  9578. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9579. type: string
  9580. values:
  9581. 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.
  9582. items:
  9583. type: string
  9584. type: array
  9585. required:
  9586. - key
  9587. - operator
  9588. type: object
  9589. type: array
  9590. matchLabels:
  9591. additionalProperties:
  9592. type: string
  9593. 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.
  9594. type: object
  9595. type: object
  9596. x-kubernetes-map-type: atomic
  9597. namespaces:
  9598. 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".
  9599. items:
  9600. type: string
  9601. type: array
  9602. topologyKey:
  9603. 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.
  9604. type: string
  9605. required:
  9606. - topologyKey
  9607. type: object
  9608. weight:
  9609. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9610. format: int32
  9611. type: integer
  9612. required:
  9613. - podAffinityTerm
  9614. - weight
  9615. type: object
  9616. type: array
  9617. requiredDuringSchedulingIgnoredDuringExecution:
  9618. 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.
  9619. items:
  9620. 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
  9621. properties:
  9622. labelSelector:
  9623. description: A label query over a set of resources, in this case pods.
  9624. properties:
  9625. matchExpressions:
  9626. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9627. items:
  9628. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9629. properties:
  9630. key:
  9631. description: key is the label key that the selector applies to.
  9632. type: string
  9633. operator:
  9634. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9635. type: string
  9636. values:
  9637. 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.
  9638. items:
  9639. type: string
  9640. type: array
  9641. required:
  9642. - key
  9643. - operator
  9644. type: object
  9645. type: array
  9646. matchLabels:
  9647. additionalProperties:
  9648. type: string
  9649. 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.
  9650. type: object
  9651. type: object
  9652. x-kubernetes-map-type: atomic
  9653. namespaceSelector:
  9654. 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.
  9655. properties:
  9656. matchExpressions:
  9657. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9658. items:
  9659. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9660. properties:
  9661. key:
  9662. description: key is the label key that the selector applies to.
  9663. type: string
  9664. operator:
  9665. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9666. type: string
  9667. values:
  9668. 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.
  9669. items:
  9670. type: string
  9671. type: array
  9672. required:
  9673. - key
  9674. - operator
  9675. type: object
  9676. type: array
  9677. matchLabels:
  9678. additionalProperties:
  9679. type: string
  9680. 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.
  9681. type: object
  9682. type: object
  9683. x-kubernetes-map-type: atomic
  9684. namespaces:
  9685. 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".
  9686. items:
  9687. type: string
  9688. type: array
  9689. topologyKey:
  9690. 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.
  9691. type: string
  9692. required:
  9693. - topologyKey
  9694. type: object
  9695. type: array
  9696. type: object
  9697. podAntiAffinity:
  9698. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  9699. properties:
  9700. preferredDuringSchedulingIgnoredDuringExecution:
  9701. 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.
  9702. items:
  9703. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9704. properties:
  9705. podAffinityTerm:
  9706. description: Required. A pod affinity term, associated with the corresponding weight.
  9707. properties:
  9708. labelSelector:
  9709. description: A label query over a set of resources, in this case pods.
  9710. properties:
  9711. matchExpressions:
  9712. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9713. items:
  9714. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9715. properties:
  9716. key:
  9717. description: key is the label key that the selector applies to.
  9718. type: string
  9719. operator:
  9720. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9721. type: string
  9722. values:
  9723. 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.
  9724. items:
  9725. type: string
  9726. type: array
  9727. required:
  9728. - key
  9729. - operator
  9730. type: object
  9731. type: array
  9732. matchLabels:
  9733. additionalProperties:
  9734. type: string
  9735. 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.
  9736. type: object
  9737. type: object
  9738. x-kubernetes-map-type: atomic
  9739. namespaceSelector:
  9740. 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.
  9741. properties:
  9742. matchExpressions:
  9743. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9744. items:
  9745. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9746. properties:
  9747. key:
  9748. description: key is the label key that the selector applies to.
  9749. type: string
  9750. operator:
  9751. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9752. type: string
  9753. values:
  9754. 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.
  9755. items:
  9756. type: string
  9757. type: array
  9758. required:
  9759. - key
  9760. - operator
  9761. type: object
  9762. type: array
  9763. matchLabels:
  9764. additionalProperties:
  9765. type: string
  9766. 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.
  9767. type: object
  9768. type: object
  9769. x-kubernetes-map-type: atomic
  9770. namespaces:
  9771. 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".
  9772. items:
  9773. type: string
  9774. type: array
  9775. topologyKey:
  9776. 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.
  9777. type: string
  9778. required:
  9779. - topologyKey
  9780. type: object
  9781. weight:
  9782. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9783. format: int32
  9784. type: integer
  9785. required:
  9786. - podAffinityTerm
  9787. - weight
  9788. type: object
  9789. type: array
  9790. requiredDuringSchedulingIgnoredDuringExecution:
  9791. 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.
  9792. items:
  9793. 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
  9794. properties:
  9795. labelSelector:
  9796. description: A label query over a set of resources, in this case pods.
  9797. properties:
  9798. matchExpressions:
  9799. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9800. items:
  9801. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9802. properties:
  9803. key:
  9804. description: key is the label key that the selector applies to.
  9805. type: string
  9806. operator:
  9807. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9808. type: string
  9809. values:
  9810. 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.
  9811. items:
  9812. type: string
  9813. type: array
  9814. required:
  9815. - key
  9816. - operator
  9817. type: object
  9818. type: array
  9819. matchLabels:
  9820. additionalProperties:
  9821. type: string
  9822. 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.
  9823. type: object
  9824. type: object
  9825. x-kubernetes-map-type: atomic
  9826. namespaceSelector:
  9827. 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.
  9828. properties:
  9829. matchExpressions:
  9830. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9831. items:
  9832. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9833. properties:
  9834. key:
  9835. description: key is the label key that the selector applies to.
  9836. type: string
  9837. operator:
  9838. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9839. type: string
  9840. values:
  9841. 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.
  9842. items:
  9843. type: string
  9844. type: array
  9845. required:
  9846. - key
  9847. - operator
  9848. type: object
  9849. type: array
  9850. matchLabels:
  9851. additionalProperties:
  9852. type: string
  9853. 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.
  9854. type: object
  9855. type: object
  9856. x-kubernetes-map-type: atomic
  9857. namespaces:
  9858. 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".
  9859. items:
  9860. type: string
  9861. type: array
  9862. topologyKey:
  9863. 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.
  9864. type: string
  9865. required:
  9866. - topologyKey
  9867. type: object
  9868. type: array
  9869. type: object
  9870. tolerations:
  9871. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  9872. items:
  9873. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  9874. properties:
  9875. effect:
  9876. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  9877. type: string
  9878. key:
  9879. 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.
  9880. type: string
  9881. operator:
  9882. 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.
  9883. type: string
  9884. tolerationSeconds:
  9885. 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.
  9886. format: int64
  9887. type: integer
  9888. value:
  9889. 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.
  9890. type: string
  9891. type: object
  9892. type: array
  9893. topologySpreadConstraints:
  9894. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  9895. items:
  9896. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  9897. properties:
  9898. labelSelector:
  9899. 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.
  9900. properties:
  9901. matchExpressions:
  9902. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9903. items:
  9904. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9905. properties:
  9906. key:
  9907. description: key is the label key that the selector applies to.
  9908. type: string
  9909. operator:
  9910. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9911. type: string
  9912. values:
  9913. 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.
  9914. items:
  9915. type: string
  9916. type: array
  9917. required:
  9918. - key
  9919. - operator
  9920. type: object
  9921. type: array
  9922. matchLabels:
  9923. additionalProperties:
  9924. type: string
  9925. 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.
  9926. type: object
  9927. type: object
  9928. x-kubernetes-map-type: atomic
  9929. matchLabelKeys:
  9930. 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)."
  9931. items:
  9932. type: string
  9933. type: array
  9934. x-kubernetes-list-type: atomic
  9935. maxSkew:
  9936. 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.'
  9937. format: int32
  9938. type: integer
  9939. minDomains:
  9940. 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)."
  9941. format: int32
  9942. type: integer
  9943. nodeAffinityPolicy:
  9944. 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."
  9945. type: string
  9946. nodeTaintsPolicy:
  9947. 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."
  9948. type: string
  9949. topologyKey:
  9950. 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.
  9951. type: string
  9952. whenUnsatisfiable:
  9953. 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.'
  9954. type: string
  9955. required:
  9956. - maxSkew
  9957. - topologyKey
  9958. - whenUnsatisfiable
  9959. type: object
  9960. type: array
  9961. type: object
  9962. x-kubernetes-preserve-unknown-fields: true
  9963. priorityClassName:
  9964. description: PriorityClassName sets the priority class on the pods
  9965. type: string
  9966. resources:
  9967. description: Resources set resource requests and limits
  9968. nullable: true
  9969. properties:
  9970. claims:
  9971. 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."
  9972. items:
  9973. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9974. properties:
  9975. name:
  9976. 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.
  9977. type: string
  9978. required:
  9979. - name
  9980. type: object
  9981. type: array
  9982. x-kubernetes-list-map-keys:
  9983. - name
  9984. x-kubernetes-list-type: map
  9985. limits:
  9986. additionalProperties:
  9987. anyOf:
  9988. - type: integer
  9989. - type: string
  9990. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9991. x-kubernetes-int-or-string: true
  9992. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9993. type: object
  9994. requests:
  9995. additionalProperties:
  9996. anyOf:
  9997. - type: integer
  9998. - type: string
  9999. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10000. x-kubernetes-int-or-string: true
  10001. 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/'
  10002. type: object
  10003. type: object
  10004. x-kubernetes-preserve-unknown-fields: true
  10005. required:
  10006. - active
  10007. type: object
  10008. required:
  10009. - server
  10010. type: object
  10011. status:
  10012. description: Status represents the status of an object
  10013. properties:
  10014. conditions:
  10015. items:
  10016. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10017. properties:
  10018. lastHeartbeatTime:
  10019. format: date-time
  10020. type: string
  10021. lastTransitionTime:
  10022. format: date-time
  10023. type: string
  10024. message:
  10025. type: string
  10026. reason:
  10027. description: ConditionReason is a reason for a condition
  10028. type: string
  10029. status:
  10030. type: string
  10031. type:
  10032. description: ConditionType represent a resource's status
  10033. type: string
  10034. type: object
  10035. type: array
  10036. observedGeneration:
  10037. description: ObservedGeneration is the latest generation observed by the controller.
  10038. format: int64
  10039. type: integer
  10040. phase:
  10041. type: string
  10042. type: object
  10043. x-kubernetes-preserve-unknown-fields: true
  10044. required:
  10045. - metadata
  10046. - spec
  10047. type: object
  10048. served: true
  10049. storage: true
  10050. subresources:
  10051. status: {}
  10052. ---
  10053. # Source: rook-ceph/templates/resources.yaml
  10054. apiVersion: apiextensions.k8s.io/v1
  10055. kind: CustomResourceDefinition
  10056. metadata:
  10057. annotations:
  10058. controller-gen.kubebuilder.io/version: v0.11.3
  10059. helm.sh/resource-policy: keep
  10060. creationTimestamp: null
  10061. name: cephobjectrealms.ceph.rook.io
  10062. spec:
  10063. group: ceph.rook.io
  10064. names:
  10065. kind: CephObjectRealm
  10066. listKind: CephObjectRealmList
  10067. plural: cephobjectrealms
  10068. singular: cephobjectrealm
  10069. scope: Namespaced
  10070. versions:
  10071. - name: v1
  10072. schema:
  10073. openAPIV3Schema:
  10074. description: CephObjectRealm represents a Ceph Object Store Gateway Realm
  10075. properties:
  10076. apiVersion:
  10077. 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'
  10078. type: string
  10079. kind:
  10080. 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'
  10081. type: string
  10082. metadata:
  10083. type: object
  10084. spec:
  10085. description: ObjectRealmSpec represent the spec of an ObjectRealm
  10086. nullable: true
  10087. properties:
  10088. pull:
  10089. description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
  10090. properties:
  10091. endpoint:
  10092. pattern: ^https*://
  10093. type: string
  10094. type: object
  10095. type: object
  10096. status:
  10097. description: Status represents the status of an object
  10098. properties:
  10099. conditions:
  10100. items:
  10101. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10102. properties:
  10103. lastHeartbeatTime:
  10104. format: date-time
  10105. type: string
  10106. lastTransitionTime:
  10107. format: date-time
  10108. type: string
  10109. message:
  10110. type: string
  10111. reason:
  10112. description: ConditionReason is a reason for a condition
  10113. type: string
  10114. status:
  10115. type: string
  10116. type:
  10117. description: ConditionType represent a resource's status
  10118. type: string
  10119. type: object
  10120. type: array
  10121. observedGeneration:
  10122. description: ObservedGeneration is the latest generation observed by the controller.
  10123. format: int64
  10124. type: integer
  10125. phase:
  10126. type: string
  10127. type: object
  10128. x-kubernetes-preserve-unknown-fields: true
  10129. required:
  10130. - metadata
  10131. type: object
  10132. served: true
  10133. storage: true
  10134. subresources:
  10135. status: {}
  10136. ---
  10137. # Source: rook-ceph/templates/resources.yaml
  10138. apiVersion: apiextensions.k8s.io/v1
  10139. kind: CustomResourceDefinition
  10140. metadata:
  10141. annotations:
  10142. controller-gen.kubebuilder.io/version: v0.11.3
  10143. helm.sh/resource-policy: keep
  10144. creationTimestamp: null
  10145. name: cephobjectstores.ceph.rook.io
  10146. spec:
  10147. group: ceph.rook.io
  10148. names:
  10149. kind: CephObjectStore
  10150. listKind: CephObjectStoreList
  10151. plural: cephobjectstores
  10152. singular: cephobjectstore
  10153. scope: Namespaced
  10154. versions:
  10155. - additionalPrinterColumns:
  10156. - jsonPath: .status.phase
  10157. name: Phase
  10158. type: string
  10159. name: v1
  10160. schema:
  10161. openAPIV3Schema:
  10162. description: CephObjectStore represents a Ceph Object Store Gateway
  10163. properties:
  10164. apiVersion:
  10165. 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'
  10166. type: string
  10167. kind:
  10168. 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'
  10169. type: string
  10170. metadata:
  10171. type: object
  10172. spec:
  10173. description: ObjectStoreSpec represent the spec of a pool
  10174. properties:
  10175. allowUsersInNamespaces:
  10176. description: The list of allowed namespaces in addition to the object store namespace where ceph object store users may be created. Specify "*" to allow all namespaces, otherwise list individual namespaces that are to be allowed. This is useful for applications that need object store credentials to be created in their own namespace, where neither OBCs nor COSI is being used to create buckets. The default is empty.
  10177. items:
  10178. type: string
  10179. type: array
  10180. dataPool:
  10181. description: The data pool settings
  10182. nullable: true
  10183. properties:
  10184. compressionMode:
  10185. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  10186. enum:
  10187. - none
  10188. - passive
  10189. - aggressive
  10190. - force
  10191. - ""
  10192. nullable: true
  10193. type: string
  10194. crushRoot:
  10195. description: The root of the crush hierarchy utilized by the pool
  10196. nullable: true
  10197. type: string
  10198. deviceClass:
  10199. description: The device class the OSD should set to for use in the pool
  10200. nullable: true
  10201. type: string
  10202. enableRBDStats:
  10203. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  10204. type: boolean
  10205. erasureCoded:
  10206. description: The erasure code settings
  10207. properties:
  10208. algorithm:
  10209. description: The algorithm for erasure coding
  10210. type: string
  10211. codingChunks:
  10212. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  10213. minimum: 0
  10214. type: integer
  10215. dataChunks:
  10216. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  10217. minimum: 0
  10218. type: integer
  10219. required:
  10220. - codingChunks
  10221. - dataChunks
  10222. type: object
  10223. failureDomain:
  10224. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  10225. type: string
  10226. mirroring:
  10227. description: The mirroring settings
  10228. properties:
  10229. enabled:
  10230. description: Enabled whether this pool is mirrored or not
  10231. type: boolean
  10232. mode:
  10233. description: 'Mode is the mirroring mode: either pool or image'
  10234. type: string
  10235. peers:
  10236. description: Peers represents the peers spec
  10237. nullable: true
  10238. properties:
  10239. secretNames:
  10240. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  10241. items:
  10242. type: string
  10243. type: array
  10244. type: object
  10245. snapshotSchedules:
  10246. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  10247. items:
  10248. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  10249. properties:
  10250. interval:
  10251. description: Interval represent the periodicity of the snapshot.
  10252. type: string
  10253. path:
  10254. description: Path is the path to snapshot, only valid for CephFS
  10255. type: string
  10256. startTime:
  10257. description: StartTime indicates when to start the snapshot
  10258. type: string
  10259. type: object
  10260. type: array
  10261. type: object
  10262. parameters:
  10263. additionalProperties:
  10264. type: string
  10265. description: Parameters is a list of properties to enable on a given pool
  10266. nullable: true
  10267. type: object
  10268. x-kubernetes-preserve-unknown-fields: true
  10269. quotas:
  10270. description: The quota settings
  10271. nullable: true
  10272. properties:
  10273. maxBytes:
  10274. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  10275. format: int64
  10276. type: integer
  10277. maxObjects:
  10278. description: MaxObjects represents the quota in objects
  10279. format: int64
  10280. type: integer
  10281. maxSize:
  10282. description: MaxSize represents the quota in bytes as a string
  10283. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  10284. type: string
  10285. type: object
  10286. replicated:
  10287. description: The replication settings
  10288. properties:
  10289. hybridStorage:
  10290. description: HybridStorage represents hybrid storage tier settings
  10291. nullable: true
  10292. properties:
  10293. primaryDeviceClass:
  10294. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  10295. minLength: 1
  10296. type: string
  10297. secondaryDeviceClass:
  10298. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  10299. minLength: 1
  10300. type: string
  10301. required:
  10302. - primaryDeviceClass
  10303. - secondaryDeviceClass
  10304. type: object
  10305. replicasPerFailureDomain:
  10306. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  10307. minimum: 1
  10308. type: integer
  10309. requireSafeReplicaSize:
  10310. description: RequireSafeReplicaSize if false allows you to set replica 1
  10311. type: boolean
  10312. size:
  10313. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  10314. minimum: 0
  10315. type: integer
  10316. subFailureDomain:
  10317. description: SubFailureDomain the name of the sub-failure domain
  10318. type: string
  10319. targetSizeRatio:
  10320. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  10321. type: number
  10322. required:
  10323. - size
  10324. type: object
  10325. statusCheck:
  10326. description: The mirroring statusCheck
  10327. properties:
  10328. mirror:
  10329. description: HealthCheckSpec represents the health check of an object store bucket
  10330. nullable: true
  10331. properties:
  10332. disabled:
  10333. type: boolean
  10334. interval:
  10335. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  10336. type: string
  10337. timeout:
  10338. type: string
  10339. type: object
  10340. type: object
  10341. x-kubernetes-preserve-unknown-fields: true
  10342. type: object
  10343. gateway:
  10344. description: The rgw pod info
  10345. nullable: true
  10346. properties:
  10347. annotations:
  10348. additionalProperties:
  10349. type: string
  10350. description: The annotations-related configuration to add/set on each Pod related object.
  10351. nullable: true
  10352. type: object
  10353. x-kubernetes-preserve-unknown-fields: true
  10354. caBundleRef:
  10355. description: The name of the secret that stores custom ca-bundle with root and intermediate certificates.
  10356. nullable: true
  10357. type: string
  10358. dashboardEnabled:
  10359. description: Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.
  10360. nullable: true
  10361. type: boolean
  10362. x-kubernetes-preserve-unknown-fields: true
  10363. disableMultisiteSyncTraffic:
  10364. description: 'DisableMultisiteSyncTraffic, when true, prevents this object store''s gateways from transmitting multisite replication data. Note that this value does not affect whether gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that. If false or unset, this object store''s gateways will be able to transmit multisite replication data.'
  10365. type: boolean
  10366. externalRgwEndpoints:
  10367. description: ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but for stability of ObjectBucketClaims, we highly recommend that users give only a single external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
  10368. items:
  10369. description: EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress.
  10370. properties:
  10371. hostname:
  10372. description: The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given.
  10373. type: string
  10374. ip:
  10375. description: The IP of this endpoint. As a legacy behavior, this supports being given a DNS-adressable hostname as well.
  10376. type: string
  10377. type: object
  10378. x-kubernetes-map-type: atomic
  10379. nullable: true
  10380. type: array
  10381. hostNetwork:
  10382. description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
  10383. nullable: true
  10384. type: boolean
  10385. x-kubernetes-preserve-unknown-fields: true
  10386. instances:
  10387. description: The number of pods in the rgw replicaset.
  10388. format: int32
  10389. nullable: true
  10390. type: integer
  10391. labels:
  10392. additionalProperties:
  10393. type: string
  10394. description: The labels-related configuration to add/set on each Pod related object.
  10395. nullable: true
  10396. type: object
  10397. x-kubernetes-preserve-unknown-fields: true
  10398. placement:
  10399. description: The affinity to place the rgw pods (default is to place on any available node)
  10400. nullable: true
  10401. properties:
  10402. nodeAffinity:
  10403. description: NodeAffinity is a group of node affinity scheduling rules
  10404. properties:
  10405. preferredDuringSchedulingIgnoredDuringExecution:
  10406. 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.
  10407. items:
  10408. 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).
  10409. properties:
  10410. preference:
  10411. description: A node selector term, associated with the corresponding weight.
  10412. properties:
  10413. matchExpressions:
  10414. description: A list of node selector requirements by node's labels.
  10415. items:
  10416. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10417. properties:
  10418. key:
  10419. description: The label key that the selector applies to.
  10420. type: string
  10421. operator:
  10422. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10423. type: string
  10424. values:
  10425. 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.
  10426. items:
  10427. type: string
  10428. type: array
  10429. required:
  10430. - key
  10431. - operator
  10432. type: object
  10433. type: array
  10434. matchFields:
  10435. description: A list of node selector requirements by node's fields.
  10436. items:
  10437. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10438. properties:
  10439. key:
  10440. description: The label key that the selector applies to.
  10441. type: string
  10442. operator:
  10443. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10444. type: string
  10445. values:
  10446. 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.
  10447. items:
  10448. type: string
  10449. type: array
  10450. required:
  10451. - key
  10452. - operator
  10453. type: object
  10454. type: array
  10455. type: object
  10456. x-kubernetes-map-type: atomic
  10457. weight:
  10458. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  10459. format: int32
  10460. type: integer
  10461. required:
  10462. - preference
  10463. - weight
  10464. type: object
  10465. type: array
  10466. requiredDuringSchedulingIgnoredDuringExecution:
  10467. 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.
  10468. properties:
  10469. nodeSelectorTerms:
  10470. description: Required. A list of node selector terms. The terms are ORed.
  10471. items:
  10472. 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.
  10473. properties:
  10474. matchExpressions:
  10475. description: A list of node selector requirements by node's labels.
  10476. items:
  10477. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10478. properties:
  10479. key:
  10480. description: The label key that the selector applies to.
  10481. type: string
  10482. operator:
  10483. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10484. type: string
  10485. values:
  10486. 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.
  10487. items:
  10488. type: string
  10489. type: array
  10490. required:
  10491. - key
  10492. - operator
  10493. type: object
  10494. type: array
  10495. matchFields:
  10496. description: A list of node selector requirements by node's fields.
  10497. items:
  10498. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10499. properties:
  10500. key:
  10501. description: The label key that the selector applies to.
  10502. type: string
  10503. operator:
  10504. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10505. type: string
  10506. values:
  10507. 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.
  10508. items:
  10509. type: string
  10510. type: array
  10511. required:
  10512. - key
  10513. - operator
  10514. type: object
  10515. type: array
  10516. type: object
  10517. x-kubernetes-map-type: atomic
  10518. type: array
  10519. required:
  10520. - nodeSelectorTerms
  10521. type: object
  10522. x-kubernetes-map-type: atomic
  10523. type: object
  10524. podAffinity:
  10525. description: PodAffinity is a group of inter pod affinity scheduling rules
  10526. properties:
  10527. preferredDuringSchedulingIgnoredDuringExecution:
  10528. 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.
  10529. items:
  10530. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10531. properties:
  10532. podAffinityTerm:
  10533. description: Required. A pod affinity term, associated with the corresponding weight.
  10534. properties:
  10535. labelSelector:
  10536. description: A label query over a set of resources, in this case pods.
  10537. properties:
  10538. matchExpressions:
  10539. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10540. items:
  10541. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10542. properties:
  10543. key:
  10544. description: key is the label key that the selector applies to.
  10545. type: string
  10546. operator:
  10547. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10548. type: string
  10549. values:
  10550. 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.
  10551. items:
  10552. type: string
  10553. type: array
  10554. required:
  10555. - key
  10556. - operator
  10557. type: object
  10558. type: array
  10559. matchLabels:
  10560. additionalProperties:
  10561. type: string
  10562. 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.
  10563. type: object
  10564. type: object
  10565. x-kubernetes-map-type: atomic
  10566. namespaceSelector:
  10567. 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.
  10568. properties:
  10569. matchExpressions:
  10570. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10571. items:
  10572. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10573. properties:
  10574. key:
  10575. description: key is the label key that the selector applies to.
  10576. type: string
  10577. operator:
  10578. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10579. type: string
  10580. values:
  10581. 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.
  10582. items:
  10583. type: string
  10584. type: array
  10585. required:
  10586. - key
  10587. - operator
  10588. type: object
  10589. type: array
  10590. matchLabels:
  10591. additionalProperties:
  10592. type: string
  10593. 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.
  10594. type: object
  10595. type: object
  10596. x-kubernetes-map-type: atomic
  10597. namespaces:
  10598. 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".
  10599. items:
  10600. type: string
  10601. type: array
  10602. topologyKey:
  10603. 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.
  10604. type: string
  10605. required:
  10606. - topologyKey
  10607. type: object
  10608. weight:
  10609. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10610. format: int32
  10611. type: integer
  10612. required:
  10613. - podAffinityTerm
  10614. - weight
  10615. type: object
  10616. type: array
  10617. requiredDuringSchedulingIgnoredDuringExecution:
  10618. 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.
  10619. items:
  10620. 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
  10621. properties:
  10622. labelSelector:
  10623. description: A label query over a set of resources, in this case pods.
  10624. properties:
  10625. matchExpressions:
  10626. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10627. items:
  10628. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10629. properties:
  10630. key:
  10631. description: key is the label key that the selector applies to.
  10632. type: string
  10633. operator:
  10634. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10635. type: string
  10636. values:
  10637. 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.
  10638. items:
  10639. type: string
  10640. type: array
  10641. required:
  10642. - key
  10643. - operator
  10644. type: object
  10645. type: array
  10646. matchLabels:
  10647. additionalProperties:
  10648. type: string
  10649. 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.
  10650. type: object
  10651. type: object
  10652. x-kubernetes-map-type: atomic
  10653. namespaceSelector:
  10654. 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.
  10655. properties:
  10656. matchExpressions:
  10657. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10658. items:
  10659. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10660. properties:
  10661. key:
  10662. description: key is the label key that the selector applies to.
  10663. type: string
  10664. operator:
  10665. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10666. type: string
  10667. values:
  10668. 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.
  10669. items:
  10670. type: string
  10671. type: array
  10672. required:
  10673. - key
  10674. - operator
  10675. type: object
  10676. type: array
  10677. matchLabels:
  10678. additionalProperties:
  10679. type: string
  10680. 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.
  10681. type: object
  10682. type: object
  10683. x-kubernetes-map-type: atomic
  10684. namespaces:
  10685. 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".
  10686. items:
  10687. type: string
  10688. type: array
  10689. topologyKey:
  10690. 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.
  10691. type: string
  10692. required:
  10693. - topologyKey
  10694. type: object
  10695. type: array
  10696. type: object
  10697. podAntiAffinity:
  10698. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  10699. properties:
  10700. preferredDuringSchedulingIgnoredDuringExecution:
  10701. 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.
  10702. items:
  10703. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10704. properties:
  10705. podAffinityTerm:
  10706. description: Required. A pod affinity term, associated with the corresponding weight.
  10707. properties:
  10708. labelSelector:
  10709. description: A label query over a set of resources, in this case pods.
  10710. properties:
  10711. matchExpressions:
  10712. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10713. items:
  10714. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10715. properties:
  10716. key:
  10717. description: key is the label key that the selector applies to.
  10718. type: string
  10719. operator:
  10720. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10721. type: string
  10722. values:
  10723. 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.
  10724. items:
  10725. type: string
  10726. type: array
  10727. required:
  10728. - key
  10729. - operator
  10730. type: object
  10731. type: array
  10732. matchLabels:
  10733. additionalProperties:
  10734. type: string
  10735. 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.
  10736. type: object
  10737. type: object
  10738. x-kubernetes-map-type: atomic
  10739. namespaceSelector:
  10740. 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.
  10741. properties:
  10742. matchExpressions:
  10743. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10744. items:
  10745. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10746. properties:
  10747. key:
  10748. description: key is the label key that the selector applies to.
  10749. type: string
  10750. operator:
  10751. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10752. type: string
  10753. values:
  10754. 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.
  10755. items:
  10756. type: string
  10757. type: array
  10758. required:
  10759. - key
  10760. - operator
  10761. type: object
  10762. type: array
  10763. matchLabels:
  10764. additionalProperties:
  10765. type: string
  10766. 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.
  10767. type: object
  10768. type: object
  10769. x-kubernetes-map-type: atomic
  10770. namespaces:
  10771. 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".
  10772. items:
  10773. type: string
  10774. type: array
  10775. topologyKey:
  10776. 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.
  10777. type: string
  10778. required:
  10779. - topologyKey
  10780. type: object
  10781. weight:
  10782. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10783. format: int32
  10784. type: integer
  10785. required:
  10786. - podAffinityTerm
  10787. - weight
  10788. type: object
  10789. type: array
  10790. requiredDuringSchedulingIgnoredDuringExecution:
  10791. 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.
  10792. items:
  10793. 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
  10794. properties:
  10795. labelSelector:
  10796. description: A label query over a set of resources, in this case pods.
  10797. properties:
  10798. matchExpressions:
  10799. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10800. items:
  10801. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10802. properties:
  10803. key:
  10804. description: key is the label key that the selector applies to.
  10805. type: string
  10806. operator:
  10807. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10808. type: string
  10809. values:
  10810. 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.
  10811. items:
  10812. type: string
  10813. type: array
  10814. required:
  10815. - key
  10816. - operator
  10817. type: object
  10818. type: array
  10819. matchLabels:
  10820. additionalProperties:
  10821. type: string
  10822. 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.
  10823. type: object
  10824. type: object
  10825. x-kubernetes-map-type: atomic
  10826. namespaceSelector:
  10827. 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.
  10828. properties:
  10829. matchExpressions:
  10830. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10831. items:
  10832. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10833. properties:
  10834. key:
  10835. description: key is the label key that the selector applies to.
  10836. type: string
  10837. operator:
  10838. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10839. type: string
  10840. values:
  10841. 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.
  10842. items:
  10843. type: string
  10844. type: array
  10845. required:
  10846. - key
  10847. - operator
  10848. type: object
  10849. type: array
  10850. matchLabels:
  10851. additionalProperties:
  10852. type: string
  10853. 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.
  10854. type: object
  10855. type: object
  10856. x-kubernetes-map-type: atomic
  10857. namespaces:
  10858. 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".
  10859. items:
  10860. type: string
  10861. type: array
  10862. topologyKey:
  10863. 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.
  10864. type: string
  10865. required:
  10866. - topologyKey
  10867. type: object
  10868. type: array
  10869. type: object
  10870. tolerations:
  10871. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  10872. items:
  10873. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  10874. properties:
  10875. effect:
  10876. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  10877. type: string
  10878. key:
  10879. 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.
  10880. type: string
  10881. operator:
  10882. 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.
  10883. type: string
  10884. tolerationSeconds:
  10885. 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.
  10886. format: int64
  10887. type: integer
  10888. value:
  10889. 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.
  10890. type: string
  10891. type: object
  10892. type: array
  10893. topologySpreadConstraints:
  10894. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  10895. items:
  10896. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  10897. properties:
  10898. labelSelector:
  10899. 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.
  10900. properties:
  10901. matchExpressions:
  10902. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10903. items:
  10904. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10905. properties:
  10906. key:
  10907. description: key is the label key that the selector applies to.
  10908. type: string
  10909. operator:
  10910. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10911. type: string
  10912. values:
  10913. 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.
  10914. items:
  10915. type: string
  10916. type: array
  10917. required:
  10918. - key
  10919. - operator
  10920. type: object
  10921. type: array
  10922. matchLabels:
  10923. additionalProperties:
  10924. type: string
  10925. 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.
  10926. type: object
  10927. type: object
  10928. x-kubernetes-map-type: atomic
  10929. matchLabelKeys:
  10930. 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)."
  10931. items:
  10932. type: string
  10933. type: array
  10934. x-kubernetes-list-type: atomic
  10935. maxSkew:
  10936. 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.'
  10937. format: int32
  10938. type: integer
  10939. minDomains:
  10940. 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)."
  10941. format: int32
  10942. type: integer
  10943. nodeAffinityPolicy:
  10944. 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."
  10945. type: string
  10946. nodeTaintsPolicy:
  10947. 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."
  10948. type: string
  10949. topologyKey:
  10950. 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.
  10951. type: string
  10952. whenUnsatisfiable:
  10953. 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.'
  10954. type: string
  10955. required:
  10956. - maxSkew
  10957. - topologyKey
  10958. - whenUnsatisfiable
  10959. type: object
  10960. type: array
  10961. type: object
  10962. x-kubernetes-preserve-unknown-fields: true
  10963. port:
  10964. description: The port the rgw service will be listening on (http)
  10965. format: int32
  10966. type: integer
  10967. priorityClassName:
  10968. description: PriorityClassName sets priority classes on the rgw pods
  10969. type: string
  10970. resources:
  10971. description: The resource requirements for the rgw pods
  10972. nullable: true
  10973. properties:
  10974. claims:
  10975. 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."
  10976. items:
  10977. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  10978. properties:
  10979. name:
  10980. 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.
  10981. type: string
  10982. required:
  10983. - name
  10984. type: object
  10985. type: array
  10986. x-kubernetes-list-map-keys:
  10987. - name
  10988. x-kubernetes-list-type: map
  10989. limits:
  10990. additionalProperties:
  10991. anyOf:
  10992. - type: integer
  10993. - type: string
  10994. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10995. x-kubernetes-int-or-string: true
  10996. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  10997. type: object
  10998. requests:
  10999. additionalProperties:
  11000. anyOf:
  11001. - type: integer
  11002. - type: string
  11003. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11004. x-kubernetes-int-or-string: true
  11005. 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/'
  11006. type: object
  11007. type: object
  11008. x-kubernetes-preserve-unknown-fields: true
  11009. securePort:
  11010. description: The port the rgw service will be listening on (https)
  11011. format: int32
  11012. maximum: 65535
  11013. minimum: 0
  11014. nullable: true
  11015. type: integer
  11016. service:
  11017. description: The configuration related to add/set on each rgw service.
  11018. nullable: true
  11019. properties:
  11020. annotations:
  11021. additionalProperties:
  11022. type: string
  11023. description: The annotations-related configuration to add/set on each rgw service. nullable optional
  11024. type: object
  11025. type: object
  11026. sslCertificateRef:
  11027. description: The name of the secret that stores the ssl certificate for secure rgw connections
  11028. nullable: true
  11029. type: string
  11030. type: object
  11031. healthCheck:
  11032. description: The RGW health probes
  11033. nullable: true
  11034. properties:
  11035. readinessProbe:
  11036. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  11037. properties:
  11038. disabled:
  11039. description: Disabled determines whether probe is disable or not
  11040. type: boolean
  11041. probe:
  11042. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  11043. properties:
  11044. exec:
  11045. description: Exec specifies the action to take.
  11046. properties:
  11047. command:
  11048. 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.
  11049. items:
  11050. type: string
  11051. type: array
  11052. type: object
  11053. failureThreshold:
  11054. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  11055. format: int32
  11056. type: integer
  11057. grpc:
  11058. description: GRPC specifies an action involving a GRPC port.
  11059. properties:
  11060. port:
  11061. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11062. format: int32
  11063. type: integer
  11064. service:
  11065. 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."
  11066. type: string
  11067. required:
  11068. - port
  11069. type: object
  11070. httpGet:
  11071. description: HTTPGet specifies the http request to perform.
  11072. properties:
  11073. host:
  11074. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11075. type: string
  11076. httpHeaders:
  11077. description: Custom headers to set in the request. HTTP allows repeated headers.
  11078. items:
  11079. description: HTTPHeader describes a custom header to be used in HTTP probes
  11080. properties:
  11081. name:
  11082. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11083. type: string
  11084. value:
  11085. description: The header field value
  11086. type: string
  11087. required:
  11088. - name
  11089. - value
  11090. type: object
  11091. type: array
  11092. path:
  11093. description: Path to access on the HTTP server.
  11094. type: string
  11095. port:
  11096. anyOf:
  11097. - type: integer
  11098. - type: string
  11099. 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.
  11100. x-kubernetes-int-or-string: true
  11101. scheme:
  11102. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11103. type: string
  11104. required:
  11105. - port
  11106. type: object
  11107. initialDelaySeconds:
  11108. 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'
  11109. format: int32
  11110. type: integer
  11111. periodSeconds:
  11112. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11113. format: int32
  11114. type: integer
  11115. successThreshold:
  11116. 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.
  11117. format: int32
  11118. type: integer
  11119. tcpSocket:
  11120. description: TCPSocket specifies an action involving a TCP port.
  11121. properties:
  11122. host:
  11123. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11124. type: string
  11125. port:
  11126. anyOf:
  11127. - type: integer
  11128. - type: string
  11129. 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.
  11130. x-kubernetes-int-or-string: true
  11131. required:
  11132. - port
  11133. type: object
  11134. terminationGracePeriodSeconds:
  11135. 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.
  11136. format: int64
  11137. type: integer
  11138. timeoutSeconds:
  11139. 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'
  11140. format: int32
  11141. type: integer
  11142. type: object
  11143. type: object
  11144. x-kubernetes-preserve-unknown-fields: true
  11145. startupProbe:
  11146. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  11147. properties:
  11148. disabled:
  11149. description: Disabled determines whether probe is disable or not
  11150. type: boolean
  11151. probe:
  11152. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  11153. properties:
  11154. exec:
  11155. description: Exec specifies the action to take.
  11156. properties:
  11157. command:
  11158. 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.
  11159. items:
  11160. type: string
  11161. type: array
  11162. type: object
  11163. failureThreshold:
  11164. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  11165. format: int32
  11166. type: integer
  11167. grpc:
  11168. description: GRPC specifies an action involving a GRPC port.
  11169. properties:
  11170. port:
  11171. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11172. format: int32
  11173. type: integer
  11174. service:
  11175. 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."
  11176. type: string
  11177. required:
  11178. - port
  11179. type: object
  11180. httpGet:
  11181. description: HTTPGet specifies the http request to perform.
  11182. properties:
  11183. host:
  11184. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11185. type: string
  11186. httpHeaders:
  11187. description: Custom headers to set in the request. HTTP allows repeated headers.
  11188. items:
  11189. description: HTTPHeader describes a custom header to be used in HTTP probes
  11190. properties:
  11191. name:
  11192. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11193. type: string
  11194. value:
  11195. description: The header field value
  11196. type: string
  11197. required:
  11198. - name
  11199. - value
  11200. type: object
  11201. type: array
  11202. path:
  11203. description: Path to access on the HTTP server.
  11204. type: string
  11205. port:
  11206. anyOf:
  11207. - type: integer
  11208. - type: string
  11209. 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.
  11210. x-kubernetes-int-or-string: true
  11211. scheme:
  11212. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11213. type: string
  11214. required:
  11215. - port
  11216. type: object
  11217. initialDelaySeconds:
  11218. 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'
  11219. format: int32
  11220. type: integer
  11221. periodSeconds:
  11222. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11223. format: int32
  11224. type: integer
  11225. successThreshold:
  11226. 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.
  11227. format: int32
  11228. type: integer
  11229. tcpSocket:
  11230. description: TCPSocket specifies an action involving a TCP port.
  11231. properties:
  11232. host:
  11233. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11234. type: string
  11235. port:
  11236. anyOf:
  11237. - type: integer
  11238. - type: string
  11239. 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.
  11240. x-kubernetes-int-or-string: true
  11241. required:
  11242. - port
  11243. type: object
  11244. terminationGracePeriodSeconds:
  11245. 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.
  11246. format: int64
  11247. type: integer
  11248. timeoutSeconds:
  11249. 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'
  11250. format: int32
  11251. type: integer
  11252. type: object
  11253. type: object
  11254. type: object
  11255. metadataPool:
  11256. description: The metadata pool settings
  11257. nullable: true
  11258. properties:
  11259. compressionMode:
  11260. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11261. enum:
  11262. - none
  11263. - passive
  11264. - aggressive
  11265. - force
  11266. - ""
  11267. nullable: true
  11268. type: string
  11269. crushRoot:
  11270. description: The root of the crush hierarchy utilized by the pool
  11271. nullable: true
  11272. type: string
  11273. deviceClass:
  11274. description: The device class the OSD should set to for use in the pool
  11275. nullable: true
  11276. type: string
  11277. enableRBDStats:
  11278. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11279. type: boolean
  11280. erasureCoded:
  11281. description: The erasure code settings
  11282. properties:
  11283. algorithm:
  11284. description: The algorithm for erasure coding
  11285. type: string
  11286. codingChunks:
  11287. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11288. minimum: 0
  11289. type: integer
  11290. dataChunks:
  11291. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11292. minimum: 0
  11293. type: integer
  11294. required:
  11295. - codingChunks
  11296. - dataChunks
  11297. type: object
  11298. failureDomain:
  11299. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11300. type: string
  11301. mirroring:
  11302. description: The mirroring settings
  11303. properties:
  11304. enabled:
  11305. description: Enabled whether this pool is mirrored or not
  11306. type: boolean
  11307. mode:
  11308. description: 'Mode is the mirroring mode: either pool or image'
  11309. type: string
  11310. peers:
  11311. description: Peers represents the peers spec
  11312. nullable: true
  11313. properties:
  11314. secretNames:
  11315. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11316. items:
  11317. type: string
  11318. type: array
  11319. type: object
  11320. snapshotSchedules:
  11321. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11322. items:
  11323. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11324. properties:
  11325. interval:
  11326. description: Interval represent the periodicity of the snapshot.
  11327. type: string
  11328. path:
  11329. description: Path is the path to snapshot, only valid for CephFS
  11330. type: string
  11331. startTime:
  11332. description: StartTime indicates when to start the snapshot
  11333. type: string
  11334. type: object
  11335. type: array
  11336. type: object
  11337. parameters:
  11338. additionalProperties:
  11339. type: string
  11340. description: Parameters is a list of properties to enable on a given pool
  11341. nullable: true
  11342. type: object
  11343. x-kubernetes-preserve-unknown-fields: true
  11344. quotas:
  11345. description: The quota settings
  11346. nullable: true
  11347. properties:
  11348. maxBytes:
  11349. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11350. format: int64
  11351. type: integer
  11352. maxObjects:
  11353. description: MaxObjects represents the quota in objects
  11354. format: int64
  11355. type: integer
  11356. maxSize:
  11357. description: MaxSize represents the quota in bytes as a string
  11358. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11359. type: string
  11360. type: object
  11361. replicated:
  11362. description: The replication settings
  11363. properties:
  11364. hybridStorage:
  11365. description: HybridStorage represents hybrid storage tier settings
  11366. nullable: true
  11367. properties:
  11368. primaryDeviceClass:
  11369. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11370. minLength: 1
  11371. type: string
  11372. secondaryDeviceClass:
  11373. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11374. minLength: 1
  11375. type: string
  11376. required:
  11377. - primaryDeviceClass
  11378. - secondaryDeviceClass
  11379. type: object
  11380. replicasPerFailureDomain:
  11381. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11382. minimum: 1
  11383. type: integer
  11384. requireSafeReplicaSize:
  11385. description: RequireSafeReplicaSize if false allows you to set replica 1
  11386. type: boolean
  11387. size:
  11388. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11389. minimum: 0
  11390. type: integer
  11391. subFailureDomain:
  11392. description: SubFailureDomain the name of the sub-failure domain
  11393. type: string
  11394. targetSizeRatio:
  11395. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11396. type: number
  11397. required:
  11398. - size
  11399. type: object
  11400. statusCheck:
  11401. description: The mirroring statusCheck
  11402. properties:
  11403. mirror:
  11404. description: HealthCheckSpec represents the health check of an object store bucket
  11405. nullable: true
  11406. properties:
  11407. disabled:
  11408. type: boolean
  11409. interval:
  11410. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  11411. type: string
  11412. timeout:
  11413. type: string
  11414. type: object
  11415. type: object
  11416. x-kubernetes-preserve-unknown-fields: true
  11417. type: object
  11418. preservePoolsOnDelete:
  11419. description: Preserve pools on object store deletion
  11420. type: boolean
  11421. security:
  11422. description: Security represents security settings
  11423. nullable: true
  11424. properties:
  11425. keyRotation:
  11426. description: KeyRotation defines options for Key Rotation.
  11427. nullable: true
  11428. properties:
  11429. enabled:
  11430. default: false
  11431. description: Enabled represents whether the key rotation is enabled.
  11432. type: boolean
  11433. schedule:
  11434. description: Schedule represents the cron schedule for key rotation.
  11435. type: string
  11436. type: object
  11437. kms:
  11438. description: KeyManagementService is the main Key Management option
  11439. nullable: true
  11440. properties:
  11441. connectionDetails:
  11442. additionalProperties:
  11443. type: string
  11444. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11445. nullable: true
  11446. type: object
  11447. x-kubernetes-preserve-unknown-fields: true
  11448. tokenSecretName:
  11449. description: TokenSecretName is the kubernetes secret containing the KMS token
  11450. type: string
  11451. type: object
  11452. s3:
  11453. description: The settings for supporting AWS-SSE:S3 with RGW
  11454. nullable: true
  11455. properties:
  11456. connectionDetails:
  11457. additionalProperties:
  11458. type: string
  11459. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11460. nullable: true
  11461. type: object
  11462. x-kubernetes-preserve-unknown-fields: true
  11463. tokenSecretName:
  11464. description: TokenSecretName is the kubernetes secret containing the KMS token
  11465. type: string
  11466. type: object
  11467. type: object
  11468. zone:
  11469. description: The multisite info
  11470. nullable: true
  11471. properties:
  11472. name:
  11473. description: RGW Zone the Object Store is in
  11474. type: string
  11475. required:
  11476. - name
  11477. type: object
  11478. type: object
  11479. status:
  11480. description: ObjectStoreStatus represents the status of a Ceph Object Store resource
  11481. properties:
  11482. conditions:
  11483. items:
  11484. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11485. properties:
  11486. lastHeartbeatTime:
  11487. format: date-time
  11488. type: string
  11489. lastTransitionTime:
  11490. format: date-time
  11491. type: string
  11492. message:
  11493. type: string
  11494. reason:
  11495. description: ConditionReason is a reason for a condition
  11496. type: string
  11497. status:
  11498. type: string
  11499. type:
  11500. description: ConditionType represent a resource's status
  11501. type: string
  11502. type: object
  11503. type: array
  11504. endpoints:
  11505. properties:
  11506. insecure:
  11507. items:
  11508. type: string
  11509. nullable: true
  11510. type: array
  11511. secure:
  11512. items:
  11513. type: string
  11514. nullable: true
  11515. type: array
  11516. type: object
  11517. info:
  11518. additionalProperties:
  11519. type: string
  11520. nullable: true
  11521. type: object
  11522. message:
  11523. type: string
  11524. observedGeneration:
  11525. description: ObservedGeneration is the latest generation observed by the controller.
  11526. format: int64
  11527. type: integer
  11528. phase:
  11529. description: ConditionType represent a resource's status
  11530. type: string
  11531. type: object
  11532. x-kubernetes-preserve-unknown-fields: true
  11533. required:
  11534. - metadata
  11535. - spec
  11536. type: object
  11537. served: true
  11538. storage: true
  11539. subresources:
  11540. status: {}
  11541. ---
  11542. # Source: rook-ceph/templates/resources.yaml
  11543. apiVersion: apiextensions.k8s.io/v1
  11544. kind: CustomResourceDefinition
  11545. metadata:
  11546. annotations:
  11547. controller-gen.kubebuilder.io/version: v0.11.3
  11548. helm.sh/resource-policy: keep
  11549. creationTimestamp: null
  11550. name: cephobjectstoreusers.ceph.rook.io
  11551. spec:
  11552. group: ceph.rook.io
  11553. names:
  11554. kind: CephObjectStoreUser
  11555. listKind: CephObjectStoreUserList
  11556. plural: cephobjectstoreusers
  11557. shortNames:
  11558. - rcou
  11559. - objectuser
  11560. singular: cephobjectstoreuser
  11561. scope: Namespaced
  11562. versions:
  11563. - additionalPrinterColumns:
  11564. - jsonPath: .status.phase
  11565. name: Phase
  11566. type: string
  11567. name: v1
  11568. schema:
  11569. openAPIV3Schema:
  11570. description: CephObjectStoreUser represents a Ceph Object Store Gateway User
  11571. properties:
  11572. apiVersion:
  11573. 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'
  11574. type: string
  11575. kind:
  11576. 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'
  11577. type: string
  11578. metadata:
  11579. type: object
  11580. spec:
  11581. description: ObjectStoreUserSpec represent the spec of an Objectstoreuser
  11582. properties:
  11583. capabilities:
  11584. description: Additional admin-level capabilities for the Ceph object store user
  11585. nullable: true
  11586. properties:
  11587. amz-cache:
  11588. description: Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/quincy/radosgw/rgw-cache/#cache-api
  11589. enum:
  11590. - '*'
  11591. - read
  11592. - write
  11593. - read, write
  11594. type: string
  11595. bilog:
  11596. description: Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11597. enum:
  11598. - '*'
  11599. - read
  11600. - write
  11601. - read, write
  11602. type: string
  11603. bucket:
  11604. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11605. enum:
  11606. - '*'
  11607. - read
  11608. - write
  11609. - read, write
  11610. type: string
  11611. buckets:
  11612. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11613. enum:
  11614. - '*'
  11615. - read
  11616. - write
  11617. - read, write
  11618. type: string
  11619. datalog:
  11620. description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11621. enum:
  11622. - '*'
  11623. - read
  11624. - write
  11625. - read, write
  11626. type: string
  11627. info:
  11628. description: Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11629. enum:
  11630. - '*'
  11631. - read
  11632. - write
  11633. - read, write
  11634. type: string
  11635. mdlog:
  11636. description: Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11637. enum:
  11638. - '*'
  11639. - read
  11640. - write
  11641. - read, write
  11642. type: string
  11643. metadata:
  11644. description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11645. enum:
  11646. - '*'
  11647. - read
  11648. - write
  11649. - read, write
  11650. type: string
  11651. oidc-provider:
  11652. description: Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11653. enum:
  11654. - '*'
  11655. - read
  11656. - write
  11657. - read, write
  11658. type: string
  11659. ratelimit:
  11660. description: Add capabilities for user to set rate limiter for user and bucket. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11661. enum:
  11662. - '*'
  11663. - read
  11664. - write
  11665. - read, write
  11666. type: string
  11667. roles:
  11668. description: Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11669. enum:
  11670. - '*'
  11671. - read
  11672. - write
  11673. - read, write
  11674. type: string
  11675. usage:
  11676. description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11677. enum:
  11678. - '*'
  11679. - read
  11680. - write
  11681. - read, write
  11682. type: string
  11683. user:
  11684. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11685. enum:
  11686. - '*'
  11687. - read
  11688. - write
  11689. - read, write
  11690. type: string
  11691. user-policy:
  11692. description: Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11693. enum:
  11694. - '*'
  11695. - read
  11696. - write
  11697. - read, write
  11698. type: string
  11699. users:
  11700. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11701. enum:
  11702. - '*'
  11703. - read
  11704. - write
  11705. - read, write
  11706. type: string
  11707. zone:
  11708. description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11709. enum:
  11710. - '*'
  11711. - read
  11712. - write
  11713. - read, write
  11714. type: string
  11715. type: object
  11716. clusterNamespace:
  11717. description: The namespace where the parent CephCluster and CephObjectStore are found
  11718. type: string
  11719. displayName:
  11720. description: The display name for the ceph users
  11721. type: string
  11722. quotas:
  11723. description: ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more
  11724. nullable: true
  11725. properties:
  11726. maxBuckets:
  11727. description: Maximum bucket limit for the ceph user
  11728. nullable: true
  11729. type: integer
  11730. maxObjects:
  11731. description: Maximum number of objects across all the user's buckets
  11732. format: int64
  11733. nullable: true
  11734. type: integer
  11735. maxSize:
  11736. anyOf:
  11737. - type: integer
  11738. - type: string
  11739. description: Maximum size limit of all objects across all the user's buckets See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
  11740. nullable: true
  11741. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11742. x-kubernetes-int-or-string: true
  11743. type: object
  11744. store:
  11745. description: The store the user will be created in
  11746. type: string
  11747. type: object
  11748. status:
  11749. description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
  11750. properties:
  11751. info:
  11752. additionalProperties:
  11753. type: string
  11754. nullable: true
  11755. type: object
  11756. observedGeneration:
  11757. description: ObservedGeneration is the latest generation observed by the controller.
  11758. format: int64
  11759. type: integer
  11760. phase:
  11761. type: string
  11762. type: object
  11763. x-kubernetes-preserve-unknown-fields: true
  11764. required:
  11765. - metadata
  11766. - spec
  11767. type: object
  11768. served: true
  11769. storage: true
  11770. subresources:
  11771. status: {}
  11772. ---
  11773. # Source: rook-ceph/templates/resources.yaml
  11774. apiVersion: apiextensions.k8s.io/v1
  11775. kind: CustomResourceDefinition
  11776. metadata:
  11777. annotations:
  11778. controller-gen.kubebuilder.io/version: v0.11.3
  11779. helm.sh/resource-policy: keep
  11780. creationTimestamp: null
  11781. name: cephobjectzonegroups.ceph.rook.io
  11782. spec:
  11783. group: ceph.rook.io
  11784. names:
  11785. kind: CephObjectZoneGroup
  11786. listKind: CephObjectZoneGroupList
  11787. plural: cephobjectzonegroups
  11788. singular: cephobjectzonegroup
  11789. scope: Namespaced
  11790. versions:
  11791. - additionalPrinterColumns:
  11792. - jsonPath: .status.phase
  11793. name: Phase
  11794. type: string
  11795. name: v1
  11796. schema:
  11797. openAPIV3Schema:
  11798. description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
  11799. properties:
  11800. apiVersion:
  11801. 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'
  11802. type: string
  11803. kind:
  11804. 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'
  11805. type: string
  11806. metadata:
  11807. type: object
  11808. spec:
  11809. description: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
  11810. properties:
  11811. realm:
  11812. description: The display name for the ceph users
  11813. type: string
  11814. required:
  11815. - realm
  11816. type: object
  11817. status:
  11818. description: Status represents the status of an object
  11819. properties:
  11820. conditions:
  11821. items:
  11822. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11823. properties:
  11824. lastHeartbeatTime:
  11825. format: date-time
  11826. type: string
  11827. lastTransitionTime:
  11828. format: date-time
  11829. type: string
  11830. message:
  11831. type: string
  11832. reason:
  11833. description: ConditionReason is a reason for a condition
  11834. type: string
  11835. status:
  11836. type: string
  11837. type:
  11838. description: ConditionType represent a resource's status
  11839. type: string
  11840. type: object
  11841. type: array
  11842. observedGeneration:
  11843. description: ObservedGeneration is the latest generation observed by the controller.
  11844. format: int64
  11845. type: integer
  11846. phase:
  11847. type: string
  11848. type: object
  11849. x-kubernetes-preserve-unknown-fields: true
  11850. required:
  11851. - metadata
  11852. - spec
  11853. type: object
  11854. served: true
  11855. storage: true
  11856. subresources:
  11857. status: {}
  11858. ---
  11859. # Source: rook-ceph/templates/resources.yaml
  11860. apiVersion: apiextensions.k8s.io/v1
  11861. kind: CustomResourceDefinition
  11862. metadata:
  11863. annotations:
  11864. controller-gen.kubebuilder.io/version: v0.11.3
  11865. helm.sh/resource-policy: keep
  11866. creationTimestamp: null
  11867. name: cephobjectzones.ceph.rook.io
  11868. spec:
  11869. group: ceph.rook.io
  11870. names:
  11871. kind: CephObjectZone
  11872. listKind: CephObjectZoneList
  11873. plural: cephobjectzones
  11874. singular: cephobjectzone
  11875. scope: Namespaced
  11876. versions:
  11877. - additionalPrinterColumns:
  11878. - jsonPath: .status.phase
  11879. name: Phase
  11880. type: string
  11881. name: v1
  11882. schema:
  11883. openAPIV3Schema:
  11884. description: CephObjectZone represents a Ceph Object Store Gateway Zone
  11885. properties:
  11886. apiVersion:
  11887. 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'
  11888. type: string
  11889. kind:
  11890. 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'
  11891. type: string
  11892. metadata:
  11893. type: object
  11894. spec:
  11895. description: ObjectZoneSpec represent the spec of an ObjectZone
  11896. properties:
  11897. customEndpoints:
  11898. description: "If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may include the port in the definition. For example: \"https://my-object-store.my-domain.net:443\". In many cases, you should set this to the endpoint of the ingress resource that makes the CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters. The list can have one or more endpoints pointing to different RGW servers in the zone. \n If a CephObjectStore endpoint is omitted from this list, that object store's gateways will not receive multisite replication data (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic)."
  11899. items:
  11900. type: string
  11901. nullable: true
  11902. type: array
  11903. dataPool:
  11904. description: The data pool settings
  11905. nullable: true
  11906. properties:
  11907. compressionMode:
  11908. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11909. enum:
  11910. - none
  11911. - passive
  11912. - aggressive
  11913. - force
  11914. - ""
  11915. nullable: true
  11916. type: string
  11917. crushRoot:
  11918. description: The root of the crush hierarchy utilized by the pool
  11919. nullable: true
  11920. type: string
  11921. deviceClass:
  11922. description: The device class the OSD should set to for use in the pool
  11923. nullable: true
  11924. type: string
  11925. enableRBDStats:
  11926. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11927. type: boolean
  11928. erasureCoded:
  11929. description: The erasure code settings
  11930. properties:
  11931. algorithm:
  11932. description: The algorithm for erasure coding
  11933. type: string
  11934. codingChunks:
  11935. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11936. minimum: 0
  11937. type: integer
  11938. dataChunks:
  11939. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11940. minimum: 0
  11941. type: integer
  11942. required:
  11943. - codingChunks
  11944. - dataChunks
  11945. type: object
  11946. failureDomain:
  11947. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11948. type: string
  11949. mirroring:
  11950. description: The mirroring settings
  11951. properties:
  11952. enabled:
  11953. description: Enabled whether this pool is mirrored or not
  11954. type: boolean
  11955. mode:
  11956. description: 'Mode is the mirroring mode: either pool or image'
  11957. type: string
  11958. peers:
  11959. description: Peers represents the peers spec
  11960. nullable: true
  11961. properties:
  11962. secretNames:
  11963. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11964. items:
  11965. type: string
  11966. type: array
  11967. type: object
  11968. snapshotSchedules:
  11969. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11970. items:
  11971. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11972. properties:
  11973. interval:
  11974. description: Interval represent the periodicity of the snapshot.
  11975. type: string
  11976. path:
  11977. description: Path is the path to snapshot, only valid for CephFS
  11978. type: string
  11979. startTime:
  11980. description: StartTime indicates when to start the snapshot
  11981. type: string
  11982. type: object
  11983. type: array
  11984. type: object
  11985. parameters:
  11986. additionalProperties:
  11987. type: string
  11988. description: Parameters is a list of properties to enable on a given pool
  11989. nullable: true
  11990. type: object
  11991. x-kubernetes-preserve-unknown-fields: true
  11992. quotas:
  11993. description: The quota settings
  11994. nullable: true
  11995. properties:
  11996. maxBytes:
  11997. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11998. format: int64
  11999. type: integer
  12000. maxObjects:
  12001. description: MaxObjects represents the quota in objects
  12002. format: int64
  12003. type: integer
  12004. maxSize:
  12005. description: MaxSize represents the quota in bytes as a string
  12006. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  12007. type: string
  12008. type: object
  12009. replicated:
  12010. description: The replication settings
  12011. properties:
  12012. hybridStorage:
  12013. description: HybridStorage represents hybrid storage tier settings
  12014. nullable: true
  12015. properties:
  12016. primaryDeviceClass:
  12017. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  12018. minLength: 1
  12019. type: string
  12020. secondaryDeviceClass:
  12021. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  12022. minLength: 1
  12023. type: string
  12024. required:
  12025. - primaryDeviceClass
  12026. - secondaryDeviceClass
  12027. type: object
  12028. replicasPerFailureDomain:
  12029. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  12030. minimum: 1
  12031. type: integer
  12032. requireSafeReplicaSize:
  12033. description: RequireSafeReplicaSize if false allows you to set replica 1
  12034. type: boolean
  12035. size:
  12036. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  12037. minimum: 0
  12038. type: integer
  12039. subFailureDomain:
  12040. description: SubFailureDomain the name of the sub-failure domain
  12041. type: string
  12042. targetSizeRatio:
  12043. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  12044. type: number
  12045. required:
  12046. - size
  12047. type: object
  12048. statusCheck:
  12049. description: The mirroring statusCheck
  12050. properties:
  12051. mirror:
  12052. description: HealthCheckSpec represents the health check of an object store bucket
  12053. nullable: true
  12054. properties:
  12055. disabled:
  12056. type: boolean
  12057. interval:
  12058. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12059. type: string
  12060. timeout:
  12061. type: string
  12062. type: object
  12063. type: object
  12064. x-kubernetes-preserve-unknown-fields: true
  12065. type: object
  12066. metadataPool:
  12067. description: The metadata pool settings
  12068. nullable: true
  12069. properties:
  12070. compressionMode:
  12071. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  12072. enum:
  12073. - none
  12074. - passive
  12075. - aggressive
  12076. - force
  12077. - ""
  12078. nullable: true
  12079. type: string
  12080. crushRoot:
  12081. description: The root of the crush hierarchy utilized by the pool
  12082. nullable: true
  12083. type: string
  12084. deviceClass:
  12085. description: The device class the OSD should set to for use in the pool
  12086. nullable: true
  12087. type: string
  12088. enableRBDStats:
  12089. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  12090. type: boolean
  12091. erasureCoded:
  12092. description: The erasure code settings
  12093. properties:
  12094. algorithm:
  12095. description: The algorithm for erasure coding
  12096. type: string
  12097. codingChunks:
  12098. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  12099. minimum: 0
  12100. type: integer
  12101. dataChunks:
  12102. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  12103. minimum: 0
  12104. type: integer
  12105. required:
  12106. - codingChunks
  12107. - dataChunks
  12108. type: object
  12109. failureDomain:
  12110. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  12111. type: string
  12112. mirroring:
  12113. description: The mirroring settings
  12114. properties:
  12115. enabled:
  12116. description: Enabled whether this pool is mirrored or not
  12117. type: boolean
  12118. mode:
  12119. description: 'Mode is the mirroring mode: either pool or image'
  12120. type: string
  12121. peers:
  12122. description: Peers represents the peers spec
  12123. nullable: true
  12124. properties:
  12125. secretNames:
  12126. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12127. items:
  12128. type: string
  12129. type: array
  12130. type: object
  12131. snapshotSchedules:
  12132. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  12133. items:
  12134. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  12135. properties:
  12136. interval:
  12137. description: Interval represent the periodicity of the snapshot.
  12138. type: string
  12139. path:
  12140. description: Path is the path to snapshot, only valid for CephFS
  12141. type: string
  12142. startTime:
  12143. description: StartTime indicates when to start the snapshot
  12144. type: string
  12145. type: object
  12146. type: array
  12147. type: object
  12148. parameters:
  12149. additionalProperties:
  12150. type: string
  12151. description: Parameters is a list of properties to enable on a given pool
  12152. nullable: true
  12153. type: object
  12154. x-kubernetes-preserve-unknown-fields: true
  12155. quotas:
  12156. description: The quota settings
  12157. nullable: true
  12158. properties:
  12159. maxBytes:
  12160. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  12161. format: int64
  12162. type: integer
  12163. maxObjects:
  12164. description: MaxObjects represents the quota in objects
  12165. format: int64
  12166. type: integer
  12167. maxSize:
  12168. description: MaxSize represents the quota in bytes as a string
  12169. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  12170. type: string
  12171. type: object
  12172. replicated:
  12173. description: The replication settings
  12174. properties:
  12175. hybridStorage:
  12176. description: HybridStorage represents hybrid storage tier settings
  12177. nullable: true
  12178. properties:
  12179. primaryDeviceClass:
  12180. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  12181. minLength: 1
  12182. type: string
  12183. secondaryDeviceClass:
  12184. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  12185. minLength: 1
  12186. type: string
  12187. required:
  12188. - primaryDeviceClass
  12189. - secondaryDeviceClass
  12190. type: object
  12191. replicasPerFailureDomain:
  12192. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  12193. minimum: 1
  12194. type: integer
  12195. requireSafeReplicaSize:
  12196. description: RequireSafeReplicaSize if false allows you to set replica 1
  12197. type: boolean
  12198. size:
  12199. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  12200. minimum: 0
  12201. type: integer
  12202. subFailureDomain:
  12203. description: SubFailureDomain the name of the sub-failure domain
  12204. type: string
  12205. targetSizeRatio:
  12206. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  12207. type: number
  12208. required:
  12209. - size
  12210. type: object
  12211. statusCheck:
  12212. description: The mirroring statusCheck
  12213. properties:
  12214. mirror:
  12215. description: HealthCheckSpec represents the health check of an object store bucket
  12216. nullable: true
  12217. properties:
  12218. disabled:
  12219. type: boolean
  12220. interval:
  12221. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12222. type: string
  12223. timeout:
  12224. type: string
  12225. type: object
  12226. type: object
  12227. x-kubernetes-preserve-unknown-fields: true
  12228. type: object
  12229. preservePoolsOnDelete:
  12230. default: true
  12231. description: Preserve pools on object zone deletion
  12232. type: boolean
  12233. zoneGroup:
  12234. description: The display name for the ceph users
  12235. type: string
  12236. required:
  12237. - dataPool
  12238. - metadataPool
  12239. - zoneGroup
  12240. type: object
  12241. status:
  12242. description: Status represents the status of an object
  12243. properties:
  12244. conditions:
  12245. items:
  12246. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12247. properties:
  12248. lastHeartbeatTime:
  12249. format: date-time
  12250. type: string
  12251. lastTransitionTime:
  12252. format: date-time
  12253. type: string
  12254. message:
  12255. type: string
  12256. reason:
  12257. description: ConditionReason is a reason for a condition
  12258. type: string
  12259. status:
  12260. type: string
  12261. type:
  12262. description: ConditionType represent a resource's status
  12263. type: string
  12264. type: object
  12265. type: array
  12266. observedGeneration:
  12267. description: ObservedGeneration is the latest generation observed by the controller.
  12268. format: int64
  12269. type: integer
  12270. phase:
  12271. type: string
  12272. type: object
  12273. x-kubernetes-preserve-unknown-fields: true
  12274. required:
  12275. - metadata
  12276. - spec
  12277. type: object
  12278. served: true
  12279. storage: true
  12280. subresources:
  12281. status: {}
  12282. ---
  12283. # Source: rook-ceph/templates/resources.yaml
  12284. apiVersion: apiextensions.k8s.io/v1
  12285. kind: CustomResourceDefinition
  12286. metadata:
  12287. annotations:
  12288. controller-gen.kubebuilder.io/version: v0.11.3
  12289. helm.sh/resource-policy: keep
  12290. creationTimestamp: null
  12291. name: cephrbdmirrors.ceph.rook.io
  12292. spec:
  12293. group: ceph.rook.io
  12294. names:
  12295. kind: CephRBDMirror
  12296. listKind: CephRBDMirrorList
  12297. plural: cephrbdmirrors
  12298. singular: cephrbdmirror
  12299. scope: Namespaced
  12300. versions:
  12301. - additionalPrinterColumns:
  12302. - jsonPath: .status.phase
  12303. name: Phase
  12304. type: string
  12305. name: v1
  12306. schema:
  12307. openAPIV3Schema:
  12308. description: CephRBDMirror represents a Ceph RBD Mirror
  12309. properties:
  12310. apiVersion:
  12311. 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'
  12312. type: string
  12313. kind:
  12314. 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'
  12315. type: string
  12316. metadata:
  12317. type: object
  12318. spec:
  12319. description: RBDMirroringSpec represents the specification of an RBD mirror daemon
  12320. properties:
  12321. annotations:
  12322. additionalProperties:
  12323. type: string
  12324. description: The annotations-related configuration to add/set on each Pod related object.
  12325. nullable: true
  12326. type: object
  12327. x-kubernetes-preserve-unknown-fields: true
  12328. count:
  12329. description: Count represents the number of rbd mirror instance to run
  12330. minimum: 1
  12331. type: integer
  12332. labels:
  12333. additionalProperties:
  12334. type: string
  12335. description: The labels-related configuration to add/set on each Pod related object.
  12336. nullable: true
  12337. type: object
  12338. x-kubernetes-preserve-unknown-fields: true
  12339. peers:
  12340. description: Peers represents the peers spec
  12341. nullable: true
  12342. properties:
  12343. secretNames:
  12344. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12345. items:
  12346. type: string
  12347. type: array
  12348. type: object
  12349. placement:
  12350. description: The affinity to place the rgw pods (default is to place on any available node)
  12351. nullable: true
  12352. properties:
  12353. nodeAffinity:
  12354. description: NodeAffinity is a group of node affinity scheduling rules
  12355. properties:
  12356. preferredDuringSchedulingIgnoredDuringExecution:
  12357. 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.
  12358. items:
  12359. 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).
  12360. properties:
  12361. preference:
  12362. description: A node selector term, associated with the corresponding weight.
  12363. properties:
  12364. matchExpressions:
  12365. description: A list of node selector requirements by node's labels.
  12366. items:
  12367. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12368. properties:
  12369. key:
  12370. description: The label key that the selector applies to.
  12371. type: string
  12372. operator:
  12373. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12374. type: string
  12375. values:
  12376. 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.
  12377. items:
  12378. type: string
  12379. type: array
  12380. required:
  12381. - key
  12382. - operator
  12383. type: object
  12384. type: array
  12385. matchFields:
  12386. description: A list of node selector requirements by node's fields.
  12387. items:
  12388. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12389. properties:
  12390. key:
  12391. description: The label key that the selector applies to.
  12392. type: string
  12393. operator:
  12394. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12395. type: string
  12396. values:
  12397. 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.
  12398. items:
  12399. type: string
  12400. type: array
  12401. required:
  12402. - key
  12403. - operator
  12404. type: object
  12405. type: array
  12406. type: object
  12407. x-kubernetes-map-type: atomic
  12408. weight:
  12409. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  12410. format: int32
  12411. type: integer
  12412. required:
  12413. - preference
  12414. - weight
  12415. type: object
  12416. type: array
  12417. requiredDuringSchedulingIgnoredDuringExecution:
  12418. 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.
  12419. properties:
  12420. nodeSelectorTerms:
  12421. description: Required. A list of node selector terms. The terms are ORed.
  12422. items:
  12423. 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.
  12424. properties:
  12425. matchExpressions:
  12426. description: A list of node selector requirements by node's labels.
  12427. items:
  12428. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12429. properties:
  12430. key:
  12431. description: The label key that the selector applies to.
  12432. type: string
  12433. operator:
  12434. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12435. type: string
  12436. values:
  12437. 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.
  12438. items:
  12439. type: string
  12440. type: array
  12441. required:
  12442. - key
  12443. - operator
  12444. type: object
  12445. type: array
  12446. matchFields:
  12447. description: A list of node selector requirements by node's fields.
  12448. items:
  12449. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12450. properties:
  12451. key:
  12452. description: The label key that the selector applies to.
  12453. type: string
  12454. operator:
  12455. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12456. type: string
  12457. values:
  12458. 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.
  12459. items:
  12460. type: string
  12461. type: array
  12462. required:
  12463. - key
  12464. - operator
  12465. type: object
  12466. type: array
  12467. type: object
  12468. x-kubernetes-map-type: atomic
  12469. type: array
  12470. required:
  12471. - nodeSelectorTerms
  12472. type: object
  12473. x-kubernetes-map-type: atomic
  12474. type: object
  12475. podAffinity:
  12476. description: PodAffinity is a group of inter pod affinity scheduling rules
  12477. properties:
  12478. preferredDuringSchedulingIgnoredDuringExecution:
  12479. 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.
  12480. items:
  12481. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12482. properties:
  12483. podAffinityTerm:
  12484. description: Required. A pod affinity term, associated with the corresponding weight.
  12485. properties:
  12486. labelSelector:
  12487. description: A label query over a set of resources, in this case pods.
  12488. properties:
  12489. matchExpressions:
  12490. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12491. items:
  12492. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12493. properties:
  12494. key:
  12495. description: key is the label key that the selector applies to.
  12496. type: string
  12497. operator:
  12498. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12499. type: string
  12500. values:
  12501. 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.
  12502. items:
  12503. type: string
  12504. type: array
  12505. required:
  12506. - key
  12507. - operator
  12508. type: object
  12509. type: array
  12510. matchLabels:
  12511. additionalProperties:
  12512. type: string
  12513. 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.
  12514. type: object
  12515. type: object
  12516. x-kubernetes-map-type: atomic
  12517. namespaceSelector:
  12518. 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.
  12519. properties:
  12520. matchExpressions:
  12521. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12522. items:
  12523. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12524. properties:
  12525. key:
  12526. description: key is the label key that the selector applies to.
  12527. type: string
  12528. operator:
  12529. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12530. type: string
  12531. values:
  12532. 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.
  12533. items:
  12534. type: string
  12535. type: array
  12536. required:
  12537. - key
  12538. - operator
  12539. type: object
  12540. type: array
  12541. matchLabels:
  12542. additionalProperties:
  12543. type: string
  12544. 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.
  12545. type: object
  12546. type: object
  12547. x-kubernetes-map-type: atomic
  12548. namespaces:
  12549. 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".
  12550. items:
  12551. type: string
  12552. type: array
  12553. topologyKey:
  12554. 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.
  12555. type: string
  12556. required:
  12557. - topologyKey
  12558. type: object
  12559. weight:
  12560. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12561. format: int32
  12562. type: integer
  12563. required:
  12564. - podAffinityTerm
  12565. - weight
  12566. type: object
  12567. type: array
  12568. requiredDuringSchedulingIgnoredDuringExecution:
  12569. 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.
  12570. items:
  12571. 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
  12572. properties:
  12573. labelSelector:
  12574. description: A label query over a set of resources, in this case pods.
  12575. properties:
  12576. matchExpressions:
  12577. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12578. items:
  12579. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12580. properties:
  12581. key:
  12582. description: key is the label key that the selector applies to.
  12583. type: string
  12584. operator:
  12585. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12586. type: string
  12587. values:
  12588. 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.
  12589. items:
  12590. type: string
  12591. type: array
  12592. required:
  12593. - key
  12594. - operator
  12595. type: object
  12596. type: array
  12597. matchLabels:
  12598. additionalProperties:
  12599. type: string
  12600. 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.
  12601. type: object
  12602. type: object
  12603. x-kubernetes-map-type: atomic
  12604. namespaceSelector:
  12605. 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.
  12606. properties:
  12607. matchExpressions:
  12608. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12609. items:
  12610. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12611. properties:
  12612. key:
  12613. description: key is the label key that the selector applies to.
  12614. type: string
  12615. operator:
  12616. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12617. type: string
  12618. values:
  12619. 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.
  12620. items:
  12621. type: string
  12622. type: array
  12623. required:
  12624. - key
  12625. - operator
  12626. type: object
  12627. type: array
  12628. matchLabels:
  12629. additionalProperties:
  12630. type: string
  12631. 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.
  12632. type: object
  12633. type: object
  12634. x-kubernetes-map-type: atomic
  12635. namespaces:
  12636. 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".
  12637. items:
  12638. type: string
  12639. type: array
  12640. topologyKey:
  12641. 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.
  12642. type: string
  12643. required:
  12644. - topologyKey
  12645. type: object
  12646. type: array
  12647. type: object
  12648. podAntiAffinity:
  12649. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  12650. properties:
  12651. preferredDuringSchedulingIgnoredDuringExecution:
  12652. 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.
  12653. items:
  12654. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12655. properties:
  12656. podAffinityTerm:
  12657. description: Required. A pod affinity term, associated with the corresponding weight.
  12658. properties:
  12659. labelSelector:
  12660. description: A label query over a set of resources, in this case pods.
  12661. properties:
  12662. matchExpressions:
  12663. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12664. items:
  12665. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12666. properties:
  12667. key:
  12668. description: key is the label key that the selector applies to.
  12669. type: string
  12670. operator:
  12671. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12672. type: string
  12673. values:
  12674. 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.
  12675. items:
  12676. type: string
  12677. type: array
  12678. required:
  12679. - key
  12680. - operator
  12681. type: object
  12682. type: array
  12683. matchLabels:
  12684. additionalProperties:
  12685. type: string
  12686. 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.
  12687. type: object
  12688. type: object
  12689. x-kubernetes-map-type: atomic
  12690. namespaceSelector:
  12691. 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.
  12692. properties:
  12693. matchExpressions:
  12694. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12695. items:
  12696. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12697. properties:
  12698. key:
  12699. description: key is the label key that the selector applies to.
  12700. type: string
  12701. operator:
  12702. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12703. type: string
  12704. values:
  12705. 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.
  12706. items:
  12707. type: string
  12708. type: array
  12709. required:
  12710. - key
  12711. - operator
  12712. type: object
  12713. type: array
  12714. matchLabels:
  12715. additionalProperties:
  12716. type: string
  12717. 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.
  12718. type: object
  12719. type: object
  12720. x-kubernetes-map-type: atomic
  12721. namespaces:
  12722. 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".
  12723. items:
  12724. type: string
  12725. type: array
  12726. topologyKey:
  12727. 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.
  12728. type: string
  12729. required:
  12730. - topologyKey
  12731. type: object
  12732. weight:
  12733. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12734. format: int32
  12735. type: integer
  12736. required:
  12737. - podAffinityTerm
  12738. - weight
  12739. type: object
  12740. type: array
  12741. requiredDuringSchedulingIgnoredDuringExecution:
  12742. 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.
  12743. items:
  12744. 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
  12745. properties:
  12746. labelSelector:
  12747. description: A label query over a set of resources, in this case pods.
  12748. properties:
  12749. matchExpressions:
  12750. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12751. items:
  12752. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12753. properties:
  12754. key:
  12755. description: key is the label key that the selector applies to.
  12756. type: string
  12757. operator:
  12758. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12759. type: string
  12760. values:
  12761. 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.
  12762. items:
  12763. type: string
  12764. type: array
  12765. required:
  12766. - key
  12767. - operator
  12768. type: object
  12769. type: array
  12770. matchLabels:
  12771. additionalProperties:
  12772. type: string
  12773. 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.
  12774. type: object
  12775. type: object
  12776. x-kubernetes-map-type: atomic
  12777. namespaceSelector:
  12778. 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.
  12779. properties:
  12780. matchExpressions:
  12781. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12782. items:
  12783. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12784. properties:
  12785. key:
  12786. description: key is the label key that the selector applies to.
  12787. type: string
  12788. operator:
  12789. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12790. type: string
  12791. values:
  12792. 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.
  12793. items:
  12794. type: string
  12795. type: array
  12796. required:
  12797. - key
  12798. - operator
  12799. type: object
  12800. type: array
  12801. matchLabels:
  12802. additionalProperties:
  12803. type: string
  12804. 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.
  12805. type: object
  12806. type: object
  12807. x-kubernetes-map-type: atomic
  12808. namespaces:
  12809. 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".
  12810. items:
  12811. type: string
  12812. type: array
  12813. topologyKey:
  12814. 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.
  12815. type: string
  12816. required:
  12817. - topologyKey
  12818. type: object
  12819. type: array
  12820. type: object
  12821. tolerations:
  12822. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  12823. items:
  12824. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  12825. properties:
  12826. effect:
  12827. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  12828. type: string
  12829. key:
  12830. 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.
  12831. type: string
  12832. operator:
  12833. 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.
  12834. type: string
  12835. tolerationSeconds:
  12836. 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.
  12837. format: int64
  12838. type: integer
  12839. value:
  12840. 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.
  12841. type: string
  12842. type: object
  12843. type: array
  12844. topologySpreadConstraints:
  12845. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  12846. items:
  12847. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  12848. properties:
  12849. labelSelector:
  12850. 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.
  12851. properties:
  12852. matchExpressions:
  12853. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12854. items:
  12855. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12856. properties:
  12857. key:
  12858. description: key is the label key that the selector applies to.
  12859. type: string
  12860. operator:
  12861. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12862. type: string
  12863. values:
  12864. 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.
  12865. items:
  12866. type: string
  12867. type: array
  12868. required:
  12869. - key
  12870. - operator
  12871. type: object
  12872. type: array
  12873. matchLabels:
  12874. additionalProperties:
  12875. type: string
  12876. 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.
  12877. type: object
  12878. type: object
  12879. x-kubernetes-map-type: atomic
  12880. matchLabelKeys:
  12881. 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)."
  12882. items:
  12883. type: string
  12884. type: array
  12885. x-kubernetes-list-type: atomic
  12886. maxSkew:
  12887. 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.'
  12888. format: int32
  12889. type: integer
  12890. minDomains:
  12891. 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)."
  12892. format: int32
  12893. type: integer
  12894. nodeAffinityPolicy:
  12895. 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."
  12896. type: string
  12897. nodeTaintsPolicy:
  12898. 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."
  12899. type: string
  12900. topologyKey:
  12901. 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.
  12902. type: string
  12903. whenUnsatisfiable:
  12904. 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.'
  12905. type: string
  12906. required:
  12907. - maxSkew
  12908. - topologyKey
  12909. - whenUnsatisfiable
  12910. type: object
  12911. type: array
  12912. type: object
  12913. x-kubernetes-preserve-unknown-fields: true
  12914. priorityClassName:
  12915. description: PriorityClassName sets priority class on the rbd mirror pods
  12916. type: string
  12917. resources:
  12918. description: The resource requirements for the rbd mirror pods
  12919. nullable: true
  12920. properties:
  12921. claims:
  12922. 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."
  12923. items:
  12924. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  12925. properties:
  12926. name:
  12927. 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.
  12928. type: string
  12929. required:
  12930. - name
  12931. type: object
  12932. type: array
  12933. x-kubernetes-list-map-keys:
  12934. - name
  12935. x-kubernetes-list-type: map
  12936. limits:
  12937. additionalProperties:
  12938. anyOf:
  12939. - type: integer
  12940. - type: string
  12941. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12942. x-kubernetes-int-or-string: true
  12943. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  12944. type: object
  12945. requests:
  12946. additionalProperties:
  12947. anyOf:
  12948. - type: integer
  12949. - type: string
  12950. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12951. x-kubernetes-int-or-string: true
  12952. 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/'
  12953. type: object
  12954. type: object
  12955. x-kubernetes-preserve-unknown-fields: true
  12956. required:
  12957. - count
  12958. type: object
  12959. status:
  12960. description: Status represents the status of an object
  12961. properties:
  12962. conditions:
  12963. items:
  12964. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12965. properties:
  12966. lastHeartbeatTime:
  12967. format: date-time
  12968. type: string
  12969. lastTransitionTime:
  12970. format: date-time
  12971. type: string
  12972. message:
  12973. type: string
  12974. reason:
  12975. description: ConditionReason is a reason for a condition
  12976. type: string
  12977. status:
  12978. type: string
  12979. type:
  12980. description: ConditionType represent a resource's status
  12981. type: string
  12982. type: object
  12983. type: array
  12984. observedGeneration:
  12985. description: ObservedGeneration is the latest generation observed by the controller.
  12986. format: int64
  12987. type: integer
  12988. phase:
  12989. type: string
  12990. type: object
  12991. x-kubernetes-preserve-unknown-fields: true
  12992. required:
  12993. - metadata
  12994. - spec
  12995. type: object
  12996. served: true
  12997. storage: true
  12998. subresources:
  12999. status: {}
  13000. ---
  13001. # Source: rook-ceph/templates/resources.yaml
  13002. apiVersion: apiextensions.k8s.io/v1
  13003. kind: CustomResourceDefinition
  13004. metadata:
  13005. name: objectbucketclaims.objectbucket.io
  13006. annotations:
  13007. helm.sh/resource-policy: keep
  13008. spec:
  13009. group: objectbucket.io
  13010. names:
  13011. kind: ObjectBucketClaim
  13012. listKind: ObjectBucketClaimList
  13013. plural: objectbucketclaims
  13014. singular: objectbucketclaim
  13015. shortNames:
  13016. - obc
  13017. - obcs
  13018. scope: Namespaced
  13019. versions:
  13020. - name: v1alpha1
  13021. served: true
  13022. storage: true
  13023. schema:
  13024. openAPIV3Schema:
  13025. type: object
  13026. properties:
  13027. spec:
  13028. type: object
  13029. properties:
  13030. storageClassName:
  13031. type: string
  13032. bucketName:
  13033. type: string
  13034. generateBucketName:
  13035. type: string
  13036. additionalConfig:
  13037. type: object
  13038. nullable: true
  13039. x-kubernetes-preserve-unknown-fields: true
  13040. objectBucketName:
  13041. type: string
  13042. status:
  13043. type: object
  13044. x-kubernetes-preserve-unknown-fields: true
  13045. subresources:
  13046. status: {}
  13047. ---
  13048. # Source: rook-ceph/templates/resources.yaml
  13049. apiVersion: apiextensions.k8s.io/v1
  13050. kind: CustomResourceDefinition
  13051. metadata:
  13052. name: objectbuckets.objectbucket.io
  13053. annotations:
  13054. helm.sh/resource-policy: keep
  13055. spec:
  13056. group: objectbucket.io
  13057. names:
  13058. kind: ObjectBucket
  13059. listKind: ObjectBucketList
  13060. plural: objectbuckets
  13061. singular: objectbucket
  13062. shortNames:
  13063. - ob
  13064. - obs
  13065. scope: Cluster
  13066. versions:
  13067. - name: v1alpha1
  13068. served: true
  13069. storage: true
  13070. schema:
  13071. openAPIV3Schema:
  13072. type: object
  13073. properties:
  13074. spec:
  13075. type: object
  13076. properties:
  13077. storageClassName:
  13078. type: string
  13079. endpoint:
  13080. type: object
  13081. nullable: true
  13082. properties:
  13083. bucketHost:
  13084. type: string
  13085. bucketPort:
  13086. type: integer
  13087. format: int32
  13088. bucketName:
  13089. type: string
  13090. region:
  13091. type: string
  13092. subRegion:
  13093. type: string
  13094. additionalConfig:
  13095. type: object
  13096. nullable: true
  13097. x-kubernetes-preserve-unknown-fields: true
  13098. authentication:
  13099. type: object
  13100. nullable: true
  13101. items:
  13102. type: object
  13103. x-kubernetes-preserve-unknown-fields: true
  13104. additionalState:
  13105. type: object
  13106. nullable: true
  13107. x-kubernetes-preserve-unknown-fields: true
  13108. reclaimPolicy:
  13109. type: string
  13110. claimRef:
  13111. type: object
  13112. nullable: true
  13113. x-kubernetes-preserve-unknown-fields: true
  13114. status:
  13115. type: object
  13116. x-kubernetes-preserve-unknown-fields: true
  13117. subresources:
  13118. status: {}
  13119. ---
  13120. # Source: rook-ceph/templates/clusterrole.yaml
  13121. kind: ClusterRole
  13122. apiVersion: rbac.authorization.k8s.io/v1
  13123. metadata:
  13124. name: rook-ceph-system
  13125. labels:
  13126. operator: rook
  13127. storage-backend: ceph
  13128. app.kubernetes.io/part-of: rook-ceph-operator
  13129. app.kubernetes.io/managed-by: Helm
  13130. app.kubernetes.io/created-by: helm
  13131. helm.sh/chart: "rook-ceph-v1.12.5"
  13132. rules:
  13133. # Most resources are represented by a string representation of their name, such as "pods", just as it appears in the URL for the relevant API endpoint.
  13134. # However, some Kubernetes APIs involve a "subresource", such as the logs for a pod. [...]
  13135. # To represent this in an RBAC role, use a slash to delimit the resource and subresource.
  13136. # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources
  13137. - apiGroups: [""]
  13138. resources: ["pods", "pods/log"]
  13139. verbs: ["get", "list"]
  13140. - apiGroups: [""]
  13141. resources: ["pods/exec"]
  13142. verbs: ["create"]
  13143. - apiGroups: ["admissionregistration.k8s.io"]
  13144. resources: ["validatingwebhookconfigurations"]
  13145. verbs: ["create", "get", "delete", "update"]
  13146. - apiGroups: ["csiaddons.openshift.io"]
  13147. resources: ["networkfences"]
  13148. verbs: ["create", "get", "update", "delete", "watch", "list"]
  13149. - apiGroups: ["apiextensions.k8s.io"]
  13150. resources: ["customresourcedefinitions"]
  13151. verbs: ["get"]
  13152. ---
  13153. # Source: rook-ceph/templates/clusterrole.yaml
  13154. # The cluster role for managing all the cluster-specific resources in a namespace
  13155. apiVersion: rbac.authorization.k8s.io/v1
  13156. kind: ClusterRole
  13157. metadata:
  13158. name: rook-ceph-cluster-mgmt
  13159. labels:
  13160. operator: rook
  13161. storage-backend: ceph
  13162. app.kubernetes.io/part-of: rook-ceph-operator
  13163. app.kubernetes.io/managed-by: Helm
  13164. app.kubernetes.io/created-by: helm
  13165. helm.sh/chart: "rook-ceph-v1.12.5"
  13166. rules:
  13167. - apiGroups:
  13168. - ""
  13169. - apps
  13170. - extensions
  13171. resources:
  13172. - secrets
  13173. - pods
  13174. - pods/log
  13175. - services
  13176. - configmaps
  13177. - deployments
  13178. - daemonsets
  13179. verbs:
  13180. - get
  13181. - list
  13182. - watch
  13183. - patch
  13184. - create
  13185. - update
  13186. - delete
  13187. ---
  13188. # Source: rook-ceph/templates/clusterrole.yaml
  13189. # The cluster role for managing the Rook CRDs
  13190. apiVersion: rbac.authorization.k8s.io/v1
  13191. # Rook watches for its CRDs in all namespaces, so this should be a cluster-scoped role unless the
  13192. # operator config `ROOK_CURRENT_NAMESPACE_ONLY=true`.
  13193. kind: ClusterRole
  13194. metadata:
  13195. name: rook-ceph-global
  13196. labels:
  13197. operator: rook
  13198. storage-backend: ceph
  13199. app.kubernetes.io/part-of: rook-ceph-operator
  13200. app.kubernetes.io/managed-by: Helm
  13201. app.kubernetes.io/created-by: helm
  13202. helm.sh/chart: "rook-ceph-v1.12.5"
  13203. rules:
  13204. - apiGroups:
  13205. - ""
  13206. resources:
  13207. # Pod access is needed for fencing
  13208. - pods
  13209. # Node access is needed for determining nodes where mons should run
  13210. - nodes
  13211. - nodes/proxy
  13212. - services
  13213. # Rook watches secrets which it uses to configure access to external resources.
  13214. # e.g., external Ceph cluster; TLS certificates for the admission controller or object store
  13215. - secrets
  13216. # Rook watches for changes to the rook-operator-config configmap
  13217. - configmaps
  13218. verbs:
  13219. - get
  13220. - list
  13221. - watch
  13222. - apiGroups:
  13223. - ""
  13224. resources:
  13225. # Rook creates events for its custom resources
  13226. - events
  13227. # Rook creates PVs and PVCs for OSDs managed by the Rook provisioner
  13228. - persistentvolumes
  13229. - persistentvolumeclaims
  13230. # Rook creates endpoints for mgr and object store access
  13231. - endpoints
  13232. verbs:
  13233. - get
  13234. - list
  13235. - watch
  13236. - patch
  13237. - create
  13238. - update
  13239. - delete
  13240. - apiGroups:
  13241. - storage.k8s.io
  13242. resources:
  13243. - storageclasses
  13244. verbs:
  13245. - get
  13246. - list
  13247. - watch
  13248. - apiGroups:
  13249. - batch
  13250. resources:
  13251. - jobs
  13252. - cronjobs
  13253. verbs:
  13254. - get
  13255. - list
  13256. - watch
  13257. - create
  13258. - update
  13259. - delete
  13260. - deletecollection
  13261. # The Rook operator must be able to watch all ceph.rook.io resources to reconcile them.
  13262. - apiGroups: ["ceph.rook.io"]
  13263. resources:
  13264. - cephclients
  13265. - cephclusters
  13266. - cephblockpools
  13267. - cephfilesystems
  13268. - cephnfses
  13269. - cephobjectstores
  13270. - cephobjectstoreusers
  13271. - cephobjectrealms
  13272. - cephobjectzonegroups
  13273. - cephobjectzones
  13274. - cephbuckettopics
  13275. - cephbucketnotifications
  13276. - cephrbdmirrors
  13277. - cephfilesystemmirrors
  13278. - cephfilesystemsubvolumegroups
  13279. - cephblockpoolradosnamespaces
  13280. - cephcosidrivers
  13281. verbs:
  13282. - get
  13283. - list
  13284. - watch
  13285. # Ideally the update permission is not required, but Rook needs it to add finalizers to resources.
  13286. - update
  13287. # Rook must have update access to status subresources for its custom resources.
  13288. - apiGroups: ["ceph.rook.io"]
  13289. resources:
  13290. - cephclients/status
  13291. - cephclusters/status
  13292. - cephblockpools/status
  13293. - cephfilesystems/status
  13294. - cephnfses/status
  13295. - cephobjectstores/status
  13296. - cephobjectstoreusers/status
  13297. - cephobjectrealms/status
  13298. - cephobjectzonegroups/status
  13299. - cephobjectzones/status
  13300. - cephbuckettopics/status
  13301. - cephbucketnotifications/status
  13302. - cephrbdmirrors/status
  13303. - cephfilesystemmirrors/status
  13304. - cephfilesystemsubvolumegroups/status
  13305. - cephblockpoolradosnamespaces/status
  13306. verbs: ["update"]
  13307. # The "*/finalizers" permission may need to be strictly given for K8s clusters where
  13308. # OwnerReferencesPermissionEnforcement is enabled so that Rook can set blockOwnerDeletion on
  13309. # resources owned by Rook CRs (e.g., a Secret owned by an OSD Deployment). See more:
  13310. # https://kubernetes.io/docs/reference/access-authn-authz/_print/#ownerreferencespermissionenforcement
  13311. - apiGroups: ["ceph.rook.io"]
  13312. resources:
  13313. - cephclients/finalizers
  13314. - cephclusters/finalizers
  13315. - cephblockpools/finalizers
  13316. - cephfilesystems/finalizers
  13317. - cephnfses/finalizers
  13318. - cephobjectstores/finalizers
  13319. - cephobjectstoreusers/finalizers
  13320. - cephobjectrealms/finalizers
  13321. - cephobjectzonegroups/finalizers
  13322. - cephobjectzones/finalizers
  13323. - cephbuckettopics/finalizers
  13324. - cephbucketnotifications/finalizers
  13325. - cephrbdmirrors/finalizers
  13326. - cephfilesystemmirrors/finalizers
  13327. - cephfilesystemsubvolumegroups/finalizers
  13328. - cephblockpoolradosnamespaces/finalizers
  13329. verbs: ["update"]
  13330. - apiGroups:
  13331. - policy
  13332. - apps
  13333. - extensions
  13334. resources:
  13335. # This is for the clusterdisruption controller
  13336. - poddisruptionbudgets
  13337. # This is for both clusterdisruption and nodedrain controllers
  13338. - deployments
  13339. - replicasets
  13340. verbs:
  13341. - get
  13342. - list
  13343. - watch
  13344. - create
  13345. - update
  13346. - delete
  13347. - deletecollection
  13348. - apiGroups:
  13349. - apps
  13350. resources:
  13351. # This is to add osd deployment owner ref on key rotation
  13352. # cron jobs.
  13353. - deployments/finalizers
  13354. verbs:
  13355. - update
  13356. - apiGroups:
  13357. - healthchecking.openshift.io
  13358. resources:
  13359. - machinedisruptionbudgets
  13360. verbs:
  13361. - get
  13362. - list
  13363. - watch
  13364. - create
  13365. - update
  13366. - delete
  13367. - apiGroups:
  13368. - machine.openshift.io
  13369. resources:
  13370. - machines
  13371. verbs:
  13372. - get
  13373. - list
  13374. - watch
  13375. - create
  13376. - update
  13377. - delete
  13378. - apiGroups:
  13379. - storage.k8s.io
  13380. resources:
  13381. - csidrivers
  13382. verbs:
  13383. - create
  13384. - delete
  13385. - get
  13386. - update
  13387. - apiGroups:
  13388. - k8s.cni.cncf.io
  13389. resources:
  13390. - network-attachment-definitions
  13391. verbs:
  13392. - get
  13393. ---
  13394. # Source: rook-ceph/templates/clusterrole.yaml
  13395. # Aspects of ceph-mgr that require cluster-wide access
  13396. kind: ClusterRole
  13397. apiVersion: rbac.authorization.k8s.io/v1
  13398. metadata:
  13399. name: rook-ceph-mgr-cluster
  13400. labels:
  13401. operator: rook
  13402. storage-backend: ceph
  13403. app.kubernetes.io/part-of: rook-ceph-operator
  13404. app.kubernetes.io/managed-by: Helm
  13405. app.kubernetes.io/created-by: helm
  13406. helm.sh/chart: "rook-ceph-v1.12.5"
  13407. rules:
  13408. - apiGroups:
  13409. - ""
  13410. resources:
  13411. - configmaps
  13412. - nodes
  13413. - nodes/proxy
  13414. - persistentvolumes
  13415. verbs:
  13416. - get
  13417. - list
  13418. - watch
  13419. - apiGroups:
  13420. - ""
  13421. resources:
  13422. - events
  13423. verbs:
  13424. - create
  13425. - patch
  13426. - list
  13427. - get
  13428. - watch
  13429. - apiGroups:
  13430. - storage.k8s.io
  13431. resources:
  13432. - storageclasses
  13433. verbs:
  13434. - get
  13435. - list
  13436. - watch
  13437. ---
  13438. # Source: rook-ceph/templates/clusterrole.yaml
  13439. # Aspects of ceph-mgr that require access to the system namespace
  13440. kind: ClusterRole
  13441. apiVersion: rbac.authorization.k8s.io/v1
  13442. metadata:
  13443. name: rook-ceph-mgr-system
  13444. rules:
  13445. - apiGroups:
  13446. - ""
  13447. resources:
  13448. - configmaps
  13449. verbs:
  13450. - get
  13451. - list
  13452. - watch
  13453. ---
  13454. # Source: rook-ceph/templates/clusterrole.yaml
  13455. # Used for provisioning ObjectBuckets (OBs) in response to ObjectBucketClaims (OBCs).
  13456. # Note: Rook runs a copy of the lib-bucket-provisioner's OBC controller.
  13457. # OBCs can be created in any Kubernetes namespace, so this must be a cluster-scoped role.
  13458. kind: ClusterRole
  13459. apiVersion: rbac.authorization.k8s.io/v1
  13460. metadata:
  13461. name: rook-ceph-object-bucket
  13462. labels:
  13463. operator: rook
  13464. storage-backend: ceph
  13465. app.kubernetes.io/part-of: rook-ceph-operator
  13466. app.kubernetes.io/managed-by: Helm
  13467. app.kubernetes.io/created-by: helm
  13468. helm.sh/chart: "rook-ceph-v1.12.5"
  13469. rules:
  13470. - apiGroups: [""]
  13471. resources: ["secrets", "configmaps"]
  13472. verbs:
  13473. # OBC controller creates secrets and configmaps containing information for users about how to
  13474. # connect to object buckets. It deletes them when an OBC is deleted.
  13475. - get
  13476. - create
  13477. - update
  13478. - delete
  13479. - apiGroups: ["storage.k8s.io"]
  13480. resources: ["storageclasses"]
  13481. verbs:
  13482. # OBC controller gets parameters from the OBC's storageclass
  13483. # Rook gets additional parameters from the OBC's storageclass
  13484. - get
  13485. - apiGroups: ["objectbucket.io"]
  13486. resources: ["objectbucketclaims"]
  13487. verbs:
  13488. # OBC controller needs to list/watch OBCs and get latest version of a reconciled OBC
  13489. - list
  13490. - watch
  13491. - get
  13492. # Ideally, update should not be needed, but the OBC controller updates the OBC with bucket
  13493. # information outside of the status subresource
  13494. - update
  13495. # OBC controller does not delete OBCs; users do this
  13496. - apiGroups: ["objectbucket.io"]
  13497. resources: ["objectbuckets"]
  13498. verbs:
  13499. # OBC controller needs to list/watch OBs and get latest version of a reconciled OB
  13500. - list
  13501. - watch
  13502. - get
  13503. # OBC controller creates an OB when an OBC's bucket has been provisioned by Ceph, updates them
  13504. # when an OBC is updated, and deletes them when the OBC is de-provisioned.
  13505. - create
  13506. - update
  13507. - delete
  13508. - apiGroups: ["objectbucket.io"]
  13509. resources: ["objectbucketclaims/status", "objectbuckets/status"]
  13510. verbs:
  13511. # OBC controller updates OBC and OB statuses
  13512. - update
  13513. - apiGroups: ["objectbucket.io"]
  13514. # This does not strictly allow the OBC/OB controllers to update finalizers. That is handled by
  13515. # the direct "update" permissions above. Instead, this allows Rook's controller to create
  13516. # resources which are owned by OBs/OBCs and where blockOwnerDeletion is set.
  13517. resources: ["objectbucketclaims/finalizers", "objectbuckets/finalizers"]
  13518. verbs:
  13519. - update
  13520. ---
  13521. # Source: rook-ceph/templates/clusterrole.yaml
  13522. kind: ClusterRole
  13523. apiVersion: rbac.authorization.k8s.io/v1
  13524. metadata:
  13525. name: rook-ceph-osd
  13526. rules:
  13527. - apiGroups:
  13528. - ""
  13529. resources:
  13530. - nodes
  13531. verbs:
  13532. - get
  13533. - list
  13534. ---
  13535. # Source: rook-ceph/templates/clusterrole.yaml
  13536. # TODO: remove this, once https://github.com/rook/rook/issues/10141
  13537. # is resolved.
  13538. kind: ClusterRole
  13539. apiVersion: rbac.authorization.k8s.io/v1
  13540. metadata:
  13541. name: cephfs-csi-nodeplugin
  13542. rules:
  13543. - apiGroups: [""]
  13544. resources: ["nodes"]
  13545. verbs: ["get"]
  13546. ---
  13547. # Source: rook-ceph/templates/clusterrole.yaml
  13548. kind: ClusterRole
  13549. apiVersion: rbac.authorization.k8s.io/v1
  13550. metadata:
  13551. name: ceph-nfs-external-provisioner-runner
  13552. rules:
  13553. - apiGroups: [""]
  13554. resources: ["persistentvolumes"]
  13555. verbs: ["get", "list", "watch", "create", "delete", "patch"]
  13556. - apiGroups: [""]
  13557. resources: ["persistentvolumeclaims"]
  13558. verbs: ["get", "list", "watch", "patch", "update"]
  13559. - apiGroups: ["storage.k8s.io"]
  13560. resources: ["storageclasses"]
  13561. verbs: ["get", "list", "watch"]
  13562. - apiGroups: [""]
  13563. resources: ["events"]
  13564. verbs: ["get", "list", "watch", "create", "update", "patch"]
  13565. - apiGroups: ["storage.k8s.io"]
  13566. resources: ["csinodes"]
  13567. verbs: ["get", "list", "watch"]
  13568. - apiGroups: [""]
  13569. resources: ["nodes"]
  13570. verbs: ["get", "list", "watch"]
  13571. - apiGroups: ["coordination.k8s.io"]
  13572. resources: ["leases"]
  13573. verbs: ["get", "list", "watch", "create", "update", "patch"]
  13574. - apiGroups: [""]
  13575. resources: ["secrets"]
  13576. verbs: ["get"]
  13577. - apiGroups: ["snapshot.storage.k8s.io"]
  13578. resources: ["volumesnapshotclasses"]
  13579. verbs: ["get", "list", "watch"]
  13580. - apiGroups: ["snapshot.storage.k8s.io"]
  13581. resources: ["volumesnapshotcontents"]
  13582. verbs: ["get", "list", "watch", "update", "patch"]
  13583. - apiGroups: ["snapshot.storage.k8s.io"]
  13584. resources: ["volumesnapshotcontents/status"]
  13585. verbs: ["update", "patch"]
  13586. - apiGroups: ["snapshot.storage.k8s.io"]
  13587. resources: ["volumesnapshots"]
  13588. verbs: ["get", "list"]
  13589. - apiGroups: [""]
  13590. resources: ["persistentvolumeclaims/status"]
  13591. verbs: ["patch"]
  13592. - apiGroups: ["storage.k8s.io"]
  13593. resources: ["volumeattachments"]
  13594. verbs: ["get", "list", "watch", "patch"]
  13595. - apiGroups: ["storage.k8s.io"]
  13596. resources: ["volumeattachments/status"]
  13597. verbs: ["patch"]
  13598. ---
  13599. # Source: rook-ceph/templates/clusterrole.yaml
  13600. # TODO: remove this, once https://github.com/rook/rook/issues/10141
  13601. # is resolved.
  13602. kind: ClusterRole
  13603. apiVersion: rbac.authorization.k8s.io/v1
  13604. metadata:
  13605. name: ceph-nfs-csi-nodeplugin
  13606. labels:
  13607. operator: rook
  13608. storage-backend: ceph
  13609. app.kubernetes.io/part-of: rook-ceph-operator
  13610. app.kubernetes.io/managed-by: Helm
  13611. app.kubernetes.io/created-by: helm
  13612. helm.sh/chart: "rook-ceph-v1.12.5"
  13613. rules:
  13614. - apiGroups: [""]
  13615. resources: ["nodes"]
  13616. verbs: ["get"]
  13617. ---
  13618. # Source: rook-ceph/templates/clusterrole.yaml
  13619. kind: ClusterRole
  13620. apiVersion: rbac.authorization.k8s.io/v1
  13621. metadata:
  13622. name: cephfs-external-provisioner-runner
  13623. rules:
  13624. - apiGroups: [""]
  13625. resources: ["secrets"]
  13626. verbs: ["get", "list"]
  13627. - apiGroups: [""]
  13628. resources: ["nodes"]
  13629. verbs: ["get", "list", "watch"]
  13630. - apiGroups: [""]
  13631. resources: ["persistentvolumes"]
  13632. verbs: ["get", "list", "watch", "create", "delete", "patch"]
  13633. - apiGroups: [""]
  13634. resources: ["persistentvolumeclaims"]
  13635. verbs: ["get", "list", "watch", "patch", "update"]
  13636. - apiGroups: ["storage.k8s.io"]
  13637. resources: ["storageclasses"]
  13638. verbs: ["get", "list", "watch"]
  13639. - apiGroups: [""]
  13640. resources: ["events"]
  13641. verbs: ["list", "watch", "create", "update", "patch"]
  13642. - apiGroups: ["storage.k8s.io"]
  13643. resources: ["volumeattachments"]
  13644. verbs: ["get", "list", "watch", "patch"]
  13645. - apiGroups: ["storage.k8s.io"]
  13646. resources: ["volumeattachments/status"]
  13647. verbs: ["patch"]
  13648. - apiGroups: [""]
  13649. resources: ["persistentvolumeclaims/status"]
  13650. verbs: ["patch"]
  13651. - apiGroups: ["snapshot.storage.k8s.io"]
  13652. resources: ["volumesnapshots"]
  13653. verbs: ["get", "list"]
  13654. - apiGroups: ["snapshot.storage.k8s.io"]
  13655. resources: ["volumesnapshotclasses"]
  13656. verbs: ["get", "list", "watch"]
  13657. - apiGroups: ["snapshot.storage.k8s.io"]
  13658. resources: ["volumesnapshotcontents"]
  13659. verbs: [ "get", "list", "watch", "patch", "update"]
  13660. - apiGroups: ["snapshot.storage.k8s.io"]
  13661. resources: ["volumesnapshotcontents/status"]
  13662. verbs: ["update", "patch"]
  13663. ---
  13664. # Source: rook-ceph/templates/clusterrole.yaml
  13665. kind: ClusterRole
  13666. apiVersion: rbac.authorization.k8s.io/v1
  13667. metadata:
  13668. name: rbd-csi-nodeplugin
  13669. labels:
  13670. operator: rook
  13671. storage-backend: ceph
  13672. app.kubernetes.io/part-of: rook-ceph-operator
  13673. app.kubernetes.io/managed-by: Helm
  13674. app.kubernetes.io/created-by: helm
  13675. helm.sh/chart: "rook-ceph-v1.12.5"
  13676. rules:
  13677. - apiGroups: [""]
  13678. resources: ["secrets"]
  13679. verbs: ["get", "list"]
  13680. - apiGroups: [""]
  13681. resources: ["persistentvolumes"]
  13682. verbs: ["get", "list"]
  13683. - apiGroups: ["storage.k8s.io"]
  13684. resources: ["volumeattachments"]
  13685. verbs: ["get", "list"]
  13686. - apiGroups: [""]
  13687. resources: ["configmaps"]
  13688. verbs: ["get"]
  13689. - apiGroups: [""]
  13690. resources: ["serviceaccounts"]
  13691. verbs: ["get"]
  13692. - apiGroups: [""]
  13693. resources: ["serviceaccounts/token"]
  13694. verbs: ["create"]
  13695. - apiGroups: [""]
  13696. resources: ["nodes"]
  13697. verbs: ["get"]
  13698. ---
  13699. # Source: rook-ceph/templates/clusterrole.yaml
  13700. kind: ClusterRole
  13701. apiVersion: rbac.authorization.k8s.io/v1
  13702. metadata:
  13703. name: rbd-external-provisioner-runner
  13704. rules:
  13705. - apiGroups: [""]
  13706. resources: ["secrets"]
  13707. verbs: ["get", "list", "watch"]
  13708. - apiGroups: [""]
  13709. resources: ["persistentvolumes"]
  13710. verbs: ["get", "list", "watch", "create", "delete", "patch"]
  13711. - apiGroups: [""]
  13712. resources: ["persistentvolumeclaims"]
  13713. verbs: ["get", "list", "watch", "update"]
  13714. - apiGroups: ["storage.k8s.io"]
  13715. resources: ["storageclasses"]
  13716. verbs: ["get", "list", "watch"]
  13717. - apiGroups: [""]
  13718. resources: ["events"]
  13719. verbs: ["list", "watch", "create", "update", "patch"]
  13720. - apiGroups: ["storage.k8s.io"]
  13721. resources: ["volumeattachments"]
  13722. verbs: ["get", "list", "watch", "patch"]
  13723. - apiGroups: ["storage.k8s.io"]
  13724. resources: ["volumeattachments/status"]
  13725. verbs: ["patch"]
  13726. - apiGroups: [""]
  13727. resources: ["nodes"]
  13728. verbs: ["get", "list", "watch"]
  13729. - apiGroups: ["storage.k8s.io"]
  13730. resources: ["csinodes"]
  13731. verbs: ["get", "list", "watch"]
  13732. - apiGroups: [""]
  13733. resources: ["persistentvolumeclaims/status"]
  13734. verbs: ["patch"]
  13735. - apiGroups: ["snapshot.storage.k8s.io"]
  13736. resources: ["volumesnapshots"]
  13737. verbs: ["get", "list", "watch"]
  13738. - apiGroups: ["snapshot.storage.k8s.io"]
  13739. resources: ["volumesnapshotclasses"]
  13740. verbs: ["get", "list", "watch"]
  13741. - apiGroups: ["snapshot.storage.k8s.io"]
  13742. resources: ["volumesnapshotcontents"]
  13743. verbs: [ "get", "list", "watch", "patch", "update"]
  13744. - apiGroups: ["snapshot.storage.k8s.io"]
  13745. resources: ["volumesnapshotcontents/status"]
  13746. verbs: ["update", "patch"]
  13747. - apiGroups: [""]
  13748. resources: ["configmaps"]
  13749. verbs: ["get"]
  13750. - apiGroups: [""]
  13751. resources: ["serviceaccounts"]
  13752. verbs: ["get"]
  13753. - apiGroups: [""]
  13754. resources: ["serviceaccounts/token"]
  13755. verbs: ["create"]
  13756. - apiGroups: [""]
  13757. resources: ["nodes"]
  13758. verbs: ["get", "list", "watch"]
  13759. - apiGroups: ["storage.k8s.io"]
  13760. resources: ["csinodes"]
  13761. verbs: ["get", "list", "watch"]
  13762. ---
  13763. # Source: rook-ceph/templates/clusterrole.yaml
  13764. kind: ClusterRole
  13765. apiVersion: rbac.authorization.k8s.io/v1
  13766. metadata:
  13767. name: objectstorage-provisioner-role
  13768. labels:
  13769. app.kubernetes.io/part-of: container-object-storage-interface
  13770. app.kubernetes.io/component: driver-ceph
  13771. app.kubernetes.io/name: cosi-driver-ceph
  13772. rules:
  13773. - apiGroups: ["objectstorage.k8s.io"]
  13774. resources:
  13775. [
  13776. "buckets",
  13777. "bucketaccesses",
  13778. "bucketclaims",
  13779. "bucketaccessclasses",
  13780. "buckets/status",
  13781. "bucketaccesses/status",
  13782. "bucketclaims/status",
  13783. "bucketaccessclasses/status",
  13784. ]
  13785. verbs: ["get", "list", "watch", "update", "create", "delete"]
  13786. - apiGroups: ["coordination.k8s.io"]
  13787. resources: ["leases"]
  13788. verbs: ["get", "watch", "list", "delete", "update", "create"]
  13789. - apiGroups: [""]
  13790. resources: ["secrets", "events"]
  13791. verbs: ["get", "delete", "update", "create"]
  13792. ---
  13793. # Source: rook-ceph/templates/cluster-rbac.yaml
  13794. # Allow the ceph mgr to access cluster-wide resources necessary for the mgr modules
  13795. kind: ClusterRoleBinding
  13796. apiVersion: rbac.authorization.k8s.io/v1
  13797. metadata:
  13798. name: rook-ceph-mgr-cluster
  13799. roleRef:
  13800. apiGroup: rbac.authorization.k8s.io
  13801. kind: ClusterRole
  13802. name: rook-ceph-mgr-cluster
  13803. subjects:
  13804. - kind: ServiceAccount
  13805. name: rook-ceph-mgr
  13806. namespace: rook-ceph # namespace:cluster
  13807. ---
  13808. # Source: rook-ceph/templates/cluster-rbac.yaml
  13809. # Allow the ceph osd to access cluster-wide resources necessary for determining their topology location
  13810. kind: ClusterRoleBinding
  13811. apiVersion: rbac.authorization.k8s.io/v1
  13812. metadata:
  13813. name: rook-ceph-osd
  13814. roleRef:
  13815. apiGroup: rbac.authorization.k8s.io
  13816. kind: ClusterRole
  13817. name: rook-ceph-osd
  13818. subjects:
  13819. - kind: ServiceAccount
  13820. name: rook-ceph-osd
  13821. namespace: rook-ceph # namespace:cluster
  13822. ---
  13823. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13824. kind: ClusterRoleBinding
  13825. apiVersion: rbac.authorization.k8s.io/v1
  13826. metadata:
  13827. name: rook-ceph-system
  13828. labels:
  13829. operator: rook
  13830. storage-backend: ceph
  13831. app.kubernetes.io/part-of: rook-ceph-operator
  13832. app.kubernetes.io/managed-by: Helm
  13833. app.kubernetes.io/created-by: helm
  13834. helm.sh/chart: "rook-ceph-v1.12.5"
  13835. roleRef:
  13836. apiGroup: rbac.authorization.k8s.io
  13837. kind: ClusterRole
  13838. name: rook-ceph-system
  13839. subjects:
  13840. - kind: ServiceAccount
  13841. name: rook-ceph-system
  13842. namespace: rook-ceph # namespace:operator
  13843. ---
  13844. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13845. # Grant the rook system daemons cluster-wide access to manage the Rook CRDs, PVCs, and storage classes
  13846. kind: ClusterRoleBinding
  13847. apiVersion: rbac.authorization.k8s.io/v1
  13848. metadata:
  13849. name: rook-ceph-global
  13850. labels:
  13851. operator: rook
  13852. storage-backend: ceph
  13853. app.kubernetes.io/part-of: rook-ceph-operator
  13854. app.kubernetes.io/managed-by: Helm
  13855. app.kubernetes.io/created-by: helm
  13856. helm.sh/chart: "rook-ceph-v1.12.5"
  13857. roleRef:
  13858. apiGroup: rbac.authorization.k8s.io
  13859. kind: ClusterRole
  13860. name: rook-ceph-global
  13861. subjects:
  13862. - kind: ServiceAccount
  13863. name: rook-ceph-system
  13864. namespace: rook-ceph # namespace:operator
  13865. ---
  13866. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13867. kind: ClusterRoleBinding
  13868. # Give Rook-Ceph Operator permissions to provision ObjectBuckets in response to ObjectBucketClaims.
  13869. apiVersion: rbac.authorization.k8s.io/v1
  13870. metadata:
  13871. name: rook-ceph-object-bucket
  13872. roleRef:
  13873. apiGroup: rbac.authorization.k8s.io
  13874. kind: ClusterRole
  13875. name: rook-ceph-object-bucket
  13876. subjects:
  13877. - kind: ServiceAccount
  13878. name: rook-ceph-system
  13879. namespace: rook-ceph # namespace:operator
  13880. ---
  13881. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13882. kind: ClusterRoleBinding
  13883. apiVersion: rbac.authorization.k8s.io/v1
  13884. metadata:
  13885. name: rbd-csi-nodeplugin
  13886. subjects:
  13887. - kind: ServiceAccount
  13888. name: rook-csi-rbd-plugin-sa
  13889. namespace: rook-ceph # namespace:operator
  13890. roleRef:
  13891. kind: ClusterRole
  13892. name: rbd-csi-nodeplugin
  13893. apiGroup: rbac.authorization.k8s.io
  13894. ---
  13895. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13896. kind: ClusterRoleBinding
  13897. apiVersion: rbac.authorization.k8s.io/v1
  13898. metadata:
  13899. name: cephfs-csi-provisioner-role
  13900. subjects:
  13901. - kind: ServiceAccount
  13902. name: rook-csi-cephfs-provisioner-sa
  13903. namespace: rook-ceph # namespace:operator
  13904. roleRef:
  13905. kind: ClusterRole
  13906. name: cephfs-external-provisioner-runner
  13907. apiGroup: rbac.authorization.k8s.io
  13908. ---
  13909. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13910. # This is required by operator-sdk to map the cluster/clusterrolebindings with SA
  13911. # otherwise operator-sdk will create a individual file for these.
  13912. kind: ClusterRoleBinding
  13913. apiVersion: rbac.authorization.k8s.io/v1
  13914. metadata:
  13915. name: cephfs-csi-nodeplugin-role
  13916. subjects:
  13917. - kind: ServiceAccount
  13918. name: rook-csi-cephfs-plugin-sa
  13919. namespace: rook-ceph # namespace:operator
  13920. roleRef:
  13921. kind: ClusterRole
  13922. name: cephfs-csi-nodeplugin
  13923. apiGroup: rbac.authorization.k8s.io
  13924. ---
  13925. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13926. kind: ClusterRoleBinding
  13927. apiVersion: rbac.authorization.k8s.io/v1
  13928. metadata:
  13929. name: ceph-nfs-csi-provisioner-role
  13930. subjects:
  13931. - kind: ServiceAccount
  13932. name: rook-csi-nfs-provisioner-sa
  13933. namespace: rook-ceph # namespace:operator
  13934. roleRef:
  13935. kind: ClusterRole
  13936. name: ceph-nfs-external-provisioner-runner
  13937. apiGroup: rbac.authorization.k8s.io
  13938. ---
  13939. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13940. # TODO: remove this, once https://github.com/rook/rook/issues/10141
  13941. # is resolved.
  13942. kind: ClusterRoleBinding
  13943. apiVersion: rbac.authorization.k8s.io/v1
  13944. metadata:
  13945. name: ceph-nfs-csi-nodeplugin-role
  13946. subjects:
  13947. - kind: ServiceAccount
  13948. name: rook-csi-nfs-plugin-sa
  13949. namespace: rook-ceph # namespace:operator
  13950. roleRef:
  13951. kind: ClusterRole
  13952. name: ceph-nfs-csi-nodeplugin
  13953. apiGroup: rbac.authorization.k8s.io
  13954. ---
  13955. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13956. kind: ClusterRoleBinding
  13957. apiVersion: rbac.authorization.k8s.io/v1
  13958. metadata:
  13959. name: rbd-csi-provisioner-role
  13960. subjects:
  13961. - kind: ServiceAccount
  13962. name: rook-csi-rbd-provisioner-sa
  13963. namespace: rook-ceph # namespace:operator
  13964. roleRef:
  13965. kind: ClusterRole
  13966. name: rbd-external-provisioner-runner
  13967. apiGroup: rbac.authorization.k8s.io
  13968. ---
  13969. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13970. # RBAC for ceph cosi driver service account
  13971. kind: ClusterRoleBinding
  13972. apiVersion: rbac.authorization.k8s.io/v1
  13973. metadata:
  13974. name: objectstorage-provisioner-role-binding
  13975. labels:
  13976. app.kubernetes.io/part-of: container-object-storage-interface
  13977. app.kubernetes.io/component: driver-ceph
  13978. app.kubernetes.io/name: cosi-driver-ceph
  13979. subjects:
  13980. - kind: ServiceAccount
  13981. name: objectstorage-provisioner
  13982. namespace: rook-ceph # namespace:operator
  13983. roleRef:
  13984. kind: ClusterRole
  13985. name: objectstorage-provisioner-role
  13986. apiGroup: rbac.authorization.k8s.io
  13987. ---
  13988. # Source: rook-ceph/templates/cluster-rbac.yaml
  13989. kind: Role
  13990. apiVersion: rbac.authorization.k8s.io/v1
  13991. metadata:
  13992. name: rook-ceph-osd
  13993. namespace: rook-ceph # namespace:cluster
  13994. rules:
  13995. # this is needed for rook's "key-management" CLI to fetch the vault token from the secret when
  13996. # validating the connection details and for key rotation operations.
  13997. - apiGroups: [""]
  13998. resources: ["secrets"]
  13999. verbs: ["get","update"]
  14000. - apiGroups: [""]
  14001. resources: ["configmaps"]
  14002. verbs: ["get", "list", "watch", "create", "update", "delete"]
  14003. - apiGroups: ["ceph.rook.io"]
  14004. resources: ["cephclusters", "cephclusters/finalizers"]
  14005. verbs: ["get", "list", "create", "update", "delete"]
  14006. ---
  14007. # Source: rook-ceph/templates/cluster-rbac.yaml
  14008. kind: Role
  14009. apiVersion: rbac.authorization.k8s.io/v1
  14010. metadata:
  14011. name: rook-ceph-rgw
  14012. namespace: rook-ceph # namespace:cluster
  14013. rules:
  14014. # Placeholder role so the rgw service account will
  14015. # be generated in the csv. Remove this role and role binding
  14016. # when fixing https://github.com/rook/rook/issues/10141.
  14017. - apiGroups:
  14018. - ""
  14019. resources:
  14020. - configmaps
  14021. verbs:
  14022. - get
  14023. ---
  14024. # Source: rook-ceph/templates/cluster-rbac.yaml
  14025. # Aspects of ceph-mgr that operate within the cluster's namespace
  14026. kind: Role
  14027. apiVersion: rbac.authorization.k8s.io/v1
  14028. metadata:
  14029. name: rook-ceph-mgr
  14030. namespace: rook-ceph # namespace:cluster
  14031. rules:
  14032. - apiGroups:
  14033. - ""
  14034. resources:
  14035. - pods
  14036. - services
  14037. - pods/log
  14038. verbs:
  14039. - get
  14040. - list
  14041. - watch
  14042. - create
  14043. - update
  14044. - delete
  14045. - apiGroups:
  14046. - batch
  14047. resources:
  14048. - jobs
  14049. verbs:
  14050. - get
  14051. - list
  14052. - watch
  14053. - create
  14054. - update
  14055. - delete
  14056. - apiGroups:
  14057. - ceph.rook.io
  14058. resources:
  14059. - cephclients
  14060. - cephclusters
  14061. - cephblockpools
  14062. - cephfilesystems
  14063. - cephnfses
  14064. - cephobjectstores
  14065. - cephobjectstoreusers
  14066. - cephobjectrealms
  14067. - cephobjectzonegroups
  14068. - cephobjectzones
  14069. - cephbuckettopics
  14070. - cephbucketnotifications
  14071. - cephrbdmirrors
  14072. - cephfilesystemmirrors
  14073. - cephfilesystemsubvolumegroups
  14074. - cephblockpoolradosnamespaces
  14075. - cephcosidrivers
  14076. verbs:
  14077. - get
  14078. - list
  14079. - watch
  14080. - create
  14081. - update
  14082. - delete
  14083. - patch
  14084. - apiGroups:
  14085. - apps
  14086. resources:
  14087. - deployments/scale
  14088. - deployments
  14089. verbs:
  14090. - patch
  14091. - delete
  14092. - apiGroups:
  14093. - ''
  14094. resources:
  14095. - persistentvolumeclaims
  14096. verbs:
  14097. - delete
  14098. ---
  14099. # Source: rook-ceph/templates/cluster-rbac.yaml
  14100. kind: Role
  14101. apiVersion: rbac.authorization.k8s.io/v1
  14102. metadata:
  14103. name: rook-ceph-cmd-reporter
  14104. namespace: rook-ceph # namespace:cluster
  14105. rules:
  14106. - apiGroups:
  14107. - ""
  14108. resources:
  14109. - pods
  14110. - configmaps
  14111. verbs:
  14112. - get
  14113. - list
  14114. - watch
  14115. - create
  14116. - update
  14117. - delete
  14118. ---
  14119. # Source: rook-ceph/templates/cluster-rbac.yaml
  14120. # Aspects of ceph osd purge job that require access to the cluster namespace
  14121. kind: Role
  14122. apiVersion: rbac.authorization.k8s.io/v1
  14123. metadata:
  14124. name: rook-ceph-purge-osd
  14125. namespace: rook-ceph # namespace:cluster
  14126. rules:
  14127. - apiGroups: [""]
  14128. resources: ["configmaps"]
  14129. verbs: ["get"]
  14130. - apiGroups: ["apps"]
  14131. resources: ["deployments"]
  14132. verbs: ["get", "delete" ]
  14133. - apiGroups: ["batch"]
  14134. resources: ["jobs"]
  14135. verbs: ["get", "list", "delete" ]
  14136. - apiGroups: [""]
  14137. resources: ["persistentvolumeclaims"]
  14138. verbs: ["get", "update", "delete", "list"]
  14139. ---
  14140. # Source: rook-ceph/templates/role.yaml
  14141. # Allow the operator to manage resources in its own namespace
  14142. apiVersion: rbac.authorization.k8s.io/v1
  14143. kind: Role
  14144. metadata:
  14145. name: rook-ceph-system
  14146. namespace: rook-ceph # namespace:operator
  14147. labels:
  14148. operator: rook
  14149. storage-backend: ceph
  14150. app.kubernetes.io/part-of: rook-ceph-operator
  14151. app.kubernetes.io/managed-by: Helm
  14152. app.kubernetes.io/created-by: helm
  14153. helm.sh/chart: "rook-ceph-v1.12.5"
  14154. rules:
  14155. - apiGroups:
  14156. - ""
  14157. resources:
  14158. - pods
  14159. - configmaps
  14160. - services
  14161. verbs:
  14162. - get
  14163. - list
  14164. - watch
  14165. - patch
  14166. - create
  14167. - update
  14168. - delete
  14169. - apiGroups:
  14170. - apps
  14171. - extensions
  14172. resources:
  14173. - daemonsets
  14174. - statefulsets
  14175. - deployments
  14176. verbs:
  14177. - get
  14178. - list
  14179. - watch
  14180. - create
  14181. - update
  14182. - delete
  14183. - deletecollection
  14184. - apiGroups:
  14185. - batch
  14186. resources:
  14187. - cronjobs
  14188. verbs:
  14189. - delete
  14190. - apiGroups:
  14191. - cert-manager.io
  14192. resources:
  14193. - certificates
  14194. - issuers
  14195. verbs:
  14196. - get
  14197. - create
  14198. - delete
  14199. - apiGroups:
  14200. - multicluster.x-k8s.io
  14201. resources:
  14202. - serviceexports
  14203. verbs:
  14204. - get
  14205. - create
  14206. ---
  14207. # Source: rook-ceph/templates/role.yaml
  14208. kind: Role
  14209. apiVersion: rbac.authorization.k8s.io/v1
  14210. metadata:
  14211. name: cephfs-external-provisioner-cfg
  14212. namespace: rook-ceph # namespace:operator
  14213. rules:
  14214. - apiGroups: ["coordination.k8s.io"]
  14215. resources: ["leases"]
  14216. verbs: ["get", "watch", "list", "delete", "update", "create"]
  14217. ---
  14218. # Source: rook-ceph/templates/role.yaml
  14219. kind: Role
  14220. apiVersion: rbac.authorization.k8s.io/v1
  14221. metadata:
  14222. name: rbd-external-provisioner-cfg
  14223. namespace: rook-ceph # namespace:operator
  14224. rules:
  14225. - apiGroups: ["coordination.k8s.io"]
  14226. resources: ["leases"]
  14227. verbs: ["get", "watch", "list", "delete", "update", "create"]
  14228. ---
  14229. # Source: rook-ceph/templates/cluster-rbac.yaml
  14230. # Allow the operator to create resources in this cluster's namespace
  14231. kind: RoleBinding
  14232. apiVersion: rbac.authorization.k8s.io/v1
  14233. metadata:
  14234. name: rook-ceph-cluster-mgmt
  14235. namespace: rook-ceph # namespace:cluster
  14236. roleRef:
  14237. apiGroup: rbac.authorization.k8s.io
  14238. kind: ClusterRole
  14239. name: rook-ceph-cluster-mgmt
  14240. subjects:
  14241. - kind: ServiceAccount
  14242. name: rook-ceph-system
  14243. namespace: rook-ceph # namespace:operator
  14244. ---
  14245. # Source: rook-ceph/templates/cluster-rbac.yaml
  14246. # Allow the osd pods in this namespace to work with configmaps
  14247. kind: RoleBinding
  14248. apiVersion: rbac.authorization.k8s.io/v1
  14249. metadata:
  14250. name: rook-ceph-osd
  14251. namespace: rook-ceph # namespace:cluster
  14252. roleRef:
  14253. apiGroup: rbac.authorization.k8s.io
  14254. kind: Role
  14255. name: rook-ceph-osd
  14256. subjects:
  14257. - kind: ServiceAccount
  14258. name: rook-ceph-osd
  14259. namespace: rook-ceph # namespace:cluster
  14260. ---
  14261. # Source: rook-ceph/templates/cluster-rbac.yaml
  14262. # Allow the rgw pods in this namespace to work with configmaps
  14263. kind: RoleBinding
  14264. apiVersion: rbac.authorization.k8s.io/v1
  14265. metadata:
  14266. name: rook-ceph-rgw
  14267. namespace: rook-ceph # namespace:cluster
  14268. roleRef:
  14269. apiGroup: rbac.authorization.k8s.io
  14270. kind: Role
  14271. name: rook-ceph-rgw
  14272. subjects:
  14273. - kind: ServiceAccount
  14274. name: rook-ceph-rgw
  14275. namespace: rook-ceph # namespace:cluster
  14276. ---
  14277. # Source: rook-ceph/templates/cluster-rbac.yaml
  14278. # Allow the ceph mgr to access resources scoped to the CephCluster namespace necessary for mgr modules
  14279. kind: RoleBinding
  14280. apiVersion: rbac.authorization.k8s.io/v1
  14281. metadata:
  14282. name: rook-ceph-mgr
  14283. namespace: rook-ceph # namespace:cluster
  14284. roleRef:
  14285. apiGroup: rbac.authorization.k8s.io
  14286. kind: Role
  14287. name: rook-ceph-mgr
  14288. subjects:
  14289. - kind: ServiceAccount
  14290. name: rook-ceph-mgr
  14291. namespace: rook-ceph # namespace:cluster
  14292. ---
  14293. # Source: rook-ceph/templates/cluster-rbac.yaml
  14294. # Allow the ceph mgr to access resources in the Rook operator namespace necessary for mgr modules
  14295. kind: RoleBinding
  14296. apiVersion: rbac.authorization.k8s.io/v1
  14297. metadata:
  14298. name: rook-ceph-mgr-system
  14299. namespace: rook-ceph # namespace:operator
  14300. roleRef:
  14301. apiGroup: rbac.authorization.k8s.io
  14302. kind: ClusterRole
  14303. name: rook-ceph-mgr-system
  14304. subjects:
  14305. - kind: ServiceAccount
  14306. name: rook-ceph-mgr
  14307. namespace: rook-ceph # namespace:cluster
  14308. ---
  14309. # Source: rook-ceph/templates/cluster-rbac.yaml
  14310. kind: RoleBinding
  14311. apiVersion: rbac.authorization.k8s.io/v1
  14312. metadata:
  14313. name: rook-ceph-cmd-reporter
  14314. namespace: rook-ceph # namespace:cluster
  14315. roleRef:
  14316. apiGroup: rbac.authorization.k8s.io
  14317. kind: Role
  14318. name: rook-ceph-cmd-reporter
  14319. subjects:
  14320. - kind: ServiceAccount
  14321. name: rook-ceph-cmd-reporter
  14322. namespace: rook-ceph # namespace:cluster
  14323. ---
  14324. # Source: rook-ceph/templates/cluster-rbac.yaml
  14325. # Allow the osd purge job to run in this namespace
  14326. kind: RoleBinding
  14327. apiVersion: rbac.authorization.k8s.io/v1
  14328. metadata:
  14329. name: rook-ceph-purge-osd
  14330. namespace: rook-ceph # namespace:cluster
  14331. roleRef:
  14332. apiGroup: rbac.authorization.k8s.io
  14333. kind: Role
  14334. name: rook-ceph-purge-osd
  14335. subjects:
  14336. - kind: ServiceAccount
  14337. name: rook-ceph-purge-osd
  14338. namespace: rook-ceph # namespace:cluster
  14339. ---
  14340. # Source: rook-ceph/templates/rolebinding.yaml
  14341. # Grant the operator, agent, and discovery agents access to resources in the rook-ceph-system namespace
  14342. kind: RoleBinding
  14343. apiVersion: rbac.authorization.k8s.io/v1
  14344. metadata:
  14345. name: rook-ceph-system
  14346. namespace: rook-ceph # namespace:operator
  14347. labels:
  14348. operator: rook
  14349. storage-backend: ceph
  14350. app.kubernetes.io/part-of: rook-ceph-operator
  14351. app.kubernetes.io/managed-by: Helm
  14352. app.kubernetes.io/created-by: helm
  14353. helm.sh/chart: "rook-ceph-v1.12.5"
  14354. roleRef:
  14355. apiGroup: rbac.authorization.k8s.io
  14356. kind: Role
  14357. name: rook-ceph-system
  14358. subjects:
  14359. - kind: ServiceAccount
  14360. name: rook-ceph-system
  14361. namespace: rook-ceph # namespace:operator
  14362. ---
  14363. # Source: rook-ceph/templates/rolebinding.yaml
  14364. kind: RoleBinding
  14365. apiVersion: rbac.authorization.k8s.io/v1
  14366. metadata:
  14367. name: cephfs-csi-provisioner-role-cfg
  14368. namespace: rook-ceph # namespace:operator
  14369. subjects:
  14370. - kind: ServiceAccount
  14371. name: rook-csi-cephfs-provisioner-sa
  14372. namespace: rook-ceph # namespace:operator
  14373. roleRef:
  14374. kind: Role
  14375. name: cephfs-external-provisioner-cfg
  14376. apiGroup: rbac.authorization.k8s.io
  14377. ---
  14378. # Source: rook-ceph/templates/rolebinding.yaml
  14379. kind: RoleBinding
  14380. apiVersion: rbac.authorization.k8s.io/v1
  14381. metadata:
  14382. name: rbd-csi-provisioner-role-cfg
  14383. namespace: rook-ceph # namespace:operator
  14384. subjects:
  14385. - kind: ServiceAccount
  14386. name: rook-csi-rbd-provisioner-sa
  14387. namespace: rook-ceph # namespace:operator
  14388. roleRef:
  14389. kind: Role
  14390. name: rbd-external-provisioner-cfg
  14391. apiGroup: rbac.authorization.k8s.io
  14392. ---
  14393. # Source: rook-ceph/templates/deployment.yaml
  14394. apiVersion: apps/v1
  14395. kind: Deployment
  14396. metadata:
  14397. name: rook-ceph-operator
  14398. labels:
  14399. operator: rook
  14400. storage-backend: ceph
  14401. app.kubernetes.io/part-of: rook-ceph-operator
  14402. app.kubernetes.io/managed-by: Helm
  14403. app.kubernetes.io/created-by: helm
  14404. helm.sh/chart: "rook-ceph-v1.12.5"
  14405. spec:
  14406. replicas: 1
  14407. selector:
  14408. matchLabels:
  14409. app: rook-ceph-operator
  14410. strategy:
  14411. type: Recreate
  14412. template:
  14413. metadata:
  14414. labels:
  14415. app: rook-ceph-operator
  14416. helm.sh/chart: "rook-ceph-v1.12.5"
  14417. spec:
  14418. containers:
  14419. - name: rook-ceph-operator
  14420. image: "rook/ceph:master"
  14421. imagePullPolicy: IfNotPresent
  14422. args: ["ceph", "operator"]
  14423. securityContext:
  14424. runAsNonRoot: true
  14425. runAsUser: 2016
  14426. runAsGroup: 2016
  14427. volumeMounts:
  14428. - mountPath: /var/lib/rook
  14429. name: rook-config
  14430. - mountPath: /etc/ceph
  14431. name: default-config-dir
  14432. - mountPath: /etc/webhook
  14433. name: webhook-cert
  14434. ports:
  14435. - containerPort: 9443
  14436. name: https-webhook
  14437. protocol: TCP
  14438. env:
  14439. - name: ROOK_CURRENT_NAMESPACE_ONLY
  14440. value: "false"
  14441. - name: ROOK_HOSTPATH_REQUIRES_PRIVILEGED
  14442. value: "false"
  14443. - name: ROOK_DISABLE_DEVICE_HOTPLUG
  14444. value: "false"
  14445. - name: ROOK_DISCOVER_DEVICES_INTERVAL
  14446. value: "60m"
  14447. - name: NODE_NAME
  14448. valueFrom:
  14449. fieldRef:
  14450. fieldPath: spec.nodeName
  14451. - name: POD_NAME
  14452. valueFrom:
  14453. fieldRef:
  14454. fieldPath: metadata.name
  14455. - name: POD_NAMESPACE
  14456. valueFrom:
  14457. fieldRef:
  14458. fieldPath: metadata.namespace
  14459. resources:
  14460. limits:
  14461. cpu: 500m
  14462. memory: 512Mi
  14463. requests:
  14464. cpu: 100m
  14465. memory: 128Mi
  14466. serviceAccountName: rook-ceph-system
  14467. volumes:
  14468. - name: rook-config
  14469. emptyDir: {}
  14470. - name: default-config-dir
  14471. emptyDir: {}
  14472. - name: webhook-cert
  14473. emptyDir: {}
  14474. ---
  14475. # Source: rook-ceph/templates/securityContextConstraints.yaml
  14476. # scc for the Rook and Ceph daemons
  14477. # for creating cluster in openshift