crds.yaml 808 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931
  1. ##############################################################################
  2. # Create the CRDs that are necessary before creating your Rook cluster.
  3. # These resources *must* be created before the cluster.yaml or their variants.
  4. ##############################################################################
  5. ---
  6. ---
  7. apiVersion: apiextensions.k8s.io/v1
  8. kind: CustomResourceDefinition
  9. metadata:
  10. annotations:
  11. controller-gen.kubebuilder.io/version: v0.16.1
  12. name: cephblockpoolradosnamespaces.ceph.rook.io
  13. spec:
  14. group: ceph.rook.io
  15. names:
  16. kind: CephBlockPoolRadosNamespace
  17. listKind: CephBlockPoolRadosNamespaceList
  18. plural: cephblockpoolradosnamespaces
  19. shortNames:
  20. - cephbprns
  21. - cephrns
  22. singular: cephblockpoolradosnamespace
  23. scope: Namespaced
  24. versions:
  25. - additionalPrinterColumns:
  26. - jsonPath: .status.phase
  27. name: Phase
  28. type: string
  29. - description: Name of the Ceph BlockPool
  30. jsonPath: .spec.blockPoolName
  31. name: BlockPool
  32. type: string
  33. - jsonPath: .metadata.creationTimestamp
  34. name: Age
  35. type: date
  36. name: v1
  37. schema:
  38. openAPIV3Schema:
  39. description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
  40. properties:
  41. apiVersion:
  42. description: |-
  43. APIVersion defines the versioned schema of this representation of an object.
  44. Servers should convert recognized schemas to the latest internal value, and
  45. may reject unrecognized values.
  46. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  47. type: string
  48. kind:
  49. description: |-
  50. Kind is a string value representing the REST resource this object represents.
  51. Servers may infer this from the endpoint the client submits requests to.
  52. Cannot be updated.
  53. In CamelCase.
  54. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  55. type: string
  56. metadata:
  57. type: object
  58. spec:
  59. description: Spec represents the specification of a Ceph BlockPool Rados Namespace
  60. properties:
  61. blockPoolName:
  62. description: |-
  63. BlockPoolName is the name of Ceph BlockPool. Typically it's the name of
  64. the CephBlockPool CR.
  65. type: string
  66. x-kubernetes-validations:
  67. - message: blockPoolName is immutable
  68. rule: self == oldSelf
  69. mirroring:
  70. description: Mirroring configuration of CephBlockPoolRadosNamespace
  71. properties:
  72. mode:
  73. description: Mode is the mirroring mode; either pool or image.
  74. enum:
  75. - ""
  76. - pool
  77. - image
  78. type: string
  79. remoteNamespace:
  80. description: RemoteNamespace is the name of the CephBlockPoolRadosNamespace on the secondary cluster CephBlockPool
  81. type: string
  82. snapshotSchedules:
  83. description: SnapshotSchedules is the scheduling of snapshot for mirrored images
  84. items:
  85. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  86. properties:
  87. interval:
  88. description: Interval represent the periodicity of the snapshot.
  89. type: string
  90. path:
  91. description: Path is the path to snapshot, only valid for CephFS
  92. type: string
  93. startTime:
  94. description: StartTime indicates when to start the snapshot
  95. type: string
  96. type: object
  97. type: array
  98. required:
  99. - mode
  100. type: object
  101. name:
  102. description: The name of the CephBlockPoolRadosNamespaceSpec namespace. If not set, the default is the name of the CR.
  103. type: string
  104. x-kubernetes-validations:
  105. - message: name is immutable
  106. rule: self == oldSelf
  107. required:
  108. - blockPoolName
  109. type: object
  110. status:
  111. description: Status represents the status of a CephBlockPool Rados Namespace
  112. properties:
  113. conditions:
  114. items:
  115. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  116. properties:
  117. lastHeartbeatTime:
  118. format: date-time
  119. type: string
  120. lastTransitionTime:
  121. format: date-time
  122. type: string
  123. message:
  124. type: string
  125. reason:
  126. description: ConditionReason is a reason for a condition
  127. type: string
  128. status:
  129. type: string
  130. type:
  131. description: ConditionType represent a resource's status
  132. type: string
  133. type: object
  134. type: array
  135. info:
  136. additionalProperties:
  137. type: string
  138. nullable: true
  139. type: object
  140. mirroringInfo:
  141. description: MirroringInfoSpec is the status of the pool/radosnamespace mirroring
  142. properties:
  143. details:
  144. type: string
  145. lastChanged:
  146. type: string
  147. lastChecked:
  148. type: string
  149. mode:
  150. description: Mode is the mirroring mode
  151. type: string
  152. peers:
  153. description: Peers are the list of peer sites connected to that cluster
  154. items:
  155. description: PeersSpec contains peer details
  156. properties:
  157. client_name:
  158. description: ClientName is the CephX user used to connect to the peer
  159. type: string
  160. direction:
  161. description: Direction is the peer mirroring direction
  162. type: string
  163. mirror_uuid:
  164. description: MirrorUUID is the mirror UUID
  165. type: string
  166. site_name:
  167. description: SiteName is the current site name
  168. type: string
  169. uuid:
  170. description: UUID is the peer UUID
  171. type: string
  172. type: object
  173. type: array
  174. site_name:
  175. description: SiteName is the current site name
  176. type: string
  177. type: object
  178. mirroringStatus:
  179. description: MirroringStatusSpec is the status of the pool/radosNamespace mirroring
  180. properties:
  181. details:
  182. description: Details contains potential status errors
  183. type: string
  184. lastChanged:
  185. description: LastChanged is the last time time the status last changed
  186. type: string
  187. lastChecked:
  188. description: LastChecked is the last time time the status was checked
  189. type: string
  190. summary:
  191. description: Summary is the mirroring status summary
  192. properties:
  193. daemon_health:
  194. description: DaemonHealth is the health of the mirroring daemon
  195. type: string
  196. group_health:
  197. description: GroupHealth is the health of the mirrored image group
  198. nullable: true
  199. type: string
  200. group_states:
  201. description: GroupStates is the various state for all mirrored image groups
  202. nullable: true
  203. properties:
  204. error:
  205. description: Error is when the mirroring state is errored
  206. type: integer
  207. replaying:
  208. description: Replaying is when the replay of the mirroring journal is on-going
  209. type: integer
  210. starting_replay:
  211. description: StartingReplay is when the replay of the mirroring journal starts
  212. type: integer
  213. stopped:
  214. description: Stopped is when the mirroring state is stopped
  215. type: integer
  216. stopping_replay:
  217. description: StopReplaying is when the replay of the mirroring journal stops
  218. type: integer
  219. syncing:
  220. description: Syncing is when the image is syncing
  221. type: integer
  222. unknown:
  223. description: Unknown is when the mirroring state is unknown
  224. type: integer
  225. type: object
  226. health:
  227. description: Health is the mirroring health
  228. type: string
  229. image_health:
  230. description: ImageHealth is the health of the mirrored image
  231. type: string
  232. image_states:
  233. description: ImageStates is the various state for all mirrored images
  234. nullable: true
  235. properties:
  236. error:
  237. description: Error is when the mirroring state is errored
  238. type: integer
  239. replaying:
  240. description: Replaying is when the replay of the mirroring journal is on-going
  241. type: integer
  242. starting_replay:
  243. description: StartingReplay is when the replay of the mirroring journal starts
  244. type: integer
  245. stopped:
  246. description: Stopped is when the mirroring state is stopped
  247. type: integer
  248. stopping_replay:
  249. description: StopReplaying is when the replay of the mirroring journal stops
  250. type: integer
  251. syncing:
  252. description: Syncing is when the image is syncing
  253. type: integer
  254. unknown:
  255. description: Unknown is when the mirroring state is unknown
  256. type: integer
  257. type: object
  258. states:
  259. description: States is the various state for all mirrored images
  260. nullable: true
  261. properties:
  262. error:
  263. description: Error is when the mirroring state is errored
  264. type: integer
  265. replaying:
  266. description: Replaying is when the replay of the mirroring journal is on-going
  267. type: integer
  268. starting_replay:
  269. description: StartingReplay is when the replay of the mirroring journal starts
  270. type: integer
  271. stopped:
  272. description: Stopped is when the mirroring state is stopped
  273. type: integer
  274. stopping_replay:
  275. description: StopReplaying is when the replay of the mirroring journal stops
  276. type: integer
  277. syncing:
  278. description: Syncing is when the image is syncing
  279. type: integer
  280. unknown:
  281. description: Unknown is when the mirroring state is unknown
  282. type: integer
  283. type: object
  284. type: object
  285. type: object
  286. phase:
  287. description: ConditionType represent a resource's status
  288. type: string
  289. snapshotScheduleStatus:
  290. description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
  291. properties:
  292. details:
  293. description: Details contains potential status errors
  294. type: string
  295. lastChanged:
  296. description: LastChanged is the last time time the status last changed
  297. type: string
  298. lastChecked:
  299. description: LastChecked is the last time time the status was checked
  300. type: string
  301. snapshotSchedules:
  302. description: SnapshotSchedules is the list of snapshots scheduled
  303. items:
  304. description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  305. properties:
  306. image:
  307. description: Image is the mirrored image
  308. type: string
  309. items:
  310. description: Items is the list schedules times for a given snapshot
  311. items:
  312. description: SnapshotSchedule is a schedule
  313. properties:
  314. interval:
  315. description: Interval is the interval in which snapshots will be taken
  316. type: string
  317. start_time:
  318. description: StartTime is the snapshot starting time
  319. type: string
  320. type: object
  321. type: array
  322. namespace:
  323. description: Namespace is the RADOS namespace the image is part of
  324. type: string
  325. pool:
  326. description: Pool is the pool name
  327. type: string
  328. type: object
  329. nullable: true
  330. type: array
  331. type: object
  332. type: object
  333. x-kubernetes-preserve-unknown-fields: true
  334. required:
  335. - metadata
  336. - spec
  337. type: object
  338. served: true
  339. storage: true
  340. subresources:
  341. status: {}
  342. ---
  343. apiVersion: apiextensions.k8s.io/v1
  344. kind: CustomResourceDefinition
  345. metadata:
  346. annotations:
  347. controller-gen.kubebuilder.io/version: v0.16.1
  348. name: cephblockpools.ceph.rook.io
  349. spec:
  350. group: ceph.rook.io
  351. names:
  352. kind: CephBlockPool
  353. listKind: CephBlockPoolList
  354. plural: cephblockpools
  355. shortNames:
  356. - cephbp
  357. singular: cephblockpool
  358. scope: Namespaced
  359. versions:
  360. - additionalPrinterColumns:
  361. - jsonPath: .status.phase
  362. name: Phase
  363. type: string
  364. - jsonPath: .status.info.type
  365. name: Type
  366. type: string
  367. - jsonPath: .status.info.failureDomain
  368. name: FailureDomain
  369. type: string
  370. - jsonPath: .spec.replicated.size
  371. name: Replication
  372. priority: 1
  373. type: integer
  374. - jsonPath: .spec.erasureCoded.codingChunks
  375. name: EC-CodingChunks
  376. priority: 1
  377. type: integer
  378. - jsonPath: .spec.erasureCoded.dataChunks
  379. name: EC-DataChunks
  380. priority: 1
  381. type: integer
  382. - jsonPath: .metadata.creationTimestamp
  383. name: Age
  384. type: date
  385. name: v1
  386. schema:
  387. openAPIV3Schema:
  388. description: CephBlockPool represents a Ceph Storage Pool
  389. properties:
  390. apiVersion:
  391. description: |-
  392. APIVersion defines the versioned schema of this representation of an object.
  393. Servers should convert recognized schemas to the latest internal value, and
  394. may reject unrecognized values.
  395. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  396. type: string
  397. kind:
  398. description: |-
  399. Kind is a string value representing the REST resource this object represents.
  400. Servers may infer this from the endpoint the client submits requests to.
  401. Cannot be updated.
  402. In CamelCase.
  403. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  404. type: string
  405. metadata:
  406. type: object
  407. spec:
  408. description: |-
  409. NamedBlockPoolSpec allows a block pool to be created with a non-default name.
  410. This is more specific than the NamedPoolSpec so we get schema validation on the
  411. allowed pool names that can be specified.
  412. properties:
  413. application:
  414. description: The application name to set on the pool. Only expected to be set for rgw pools.
  415. type: string
  416. compressionMode:
  417. description: |-
  418. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  419. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  420. Do NOT set a default value for kubebuilder as this will override the Parameters
  421. enum:
  422. - none
  423. - passive
  424. - aggressive
  425. - force
  426. - ""
  427. nullable: true
  428. type: string
  429. crushRoot:
  430. description: The root of the crush hierarchy utilized by the pool
  431. nullable: true
  432. type: string
  433. deviceClass:
  434. description: The device class the OSD should set to for use in the pool
  435. nullable: true
  436. type: string
  437. enableCrushUpdates:
  438. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  439. type: boolean
  440. enableRBDStats:
  441. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  442. type: boolean
  443. erasureCoded:
  444. description: The erasure code settings
  445. properties:
  446. algorithm:
  447. description: The algorithm for erasure coding
  448. type: string
  449. codingChunks:
  450. description: |-
  451. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  452. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  453. minimum: 0
  454. type: integer
  455. dataChunks:
  456. description: |-
  457. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  458. The number of chunks required to recover an object when any single OSD is lost is the same
  459. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  460. minimum: 0
  461. type: integer
  462. required:
  463. - codingChunks
  464. - dataChunks
  465. type: object
  466. failureDomain:
  467. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  468. type: string
  469. mirroring:
  470. description: The mirroring settings
  471. properties:
  472. enabled:
  473. description: Enabled whether this pool is mirrored or not
  474. type: boolean
  475. mode:
  476. description: 'Mode is the mirroring mode: pool, image or init-only.'
  477. enum:
  478. - pool
  479. - image
  480. - init-only
  481. type: string
  482. peers:
  483. description: Peers represents the peers spec
  484. nullable: true
  485. properties:
  486. secretNames:
  487. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  488. items:
  489. type: string
  490. type: array
  491. type: object
  492. snapshotSchedules:
  493. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  494. items:
  495. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  496. properties:
  497. interval:
  498. description: Interval represent the periodicity of the snapshot.
  499. type: string
  500. path:
  501. description: Path is the path to snapshot, only valid for CephFS
  502. type: string
  503. startTime:
  504. description: StartTime indicates when to start the snapshot
  505. type: string
  506. type: object
  507. type: array
  508. type: object
  509. name:
  510. description: The desired name of the pool if different from the CephBlockPool CR name.
  511. enum:
  512. - .rgw.root
  513. - .nfs
  514. - .mgr
  515. type: string
  516. parameters:
  517. additionalProperties:
  518. type: string
  519. description: Parameters is a list of properties to enable on a given pool
  520. nullable: true
  521. type: object
  522. x-kubernetes-preserve-unknown-fields: true
  523. quotas:
  524. description: The quota settings
  525. nullable: true
  526. properties:
  527. maxBytes:
  528. description: |-
  529. MaxBytes represents the quota in bytes
  530. Deprecated in favor of MaxSize
  531. format: int64
  532. type: integer
  533. maxObjects:
  534. description: MaxObjects represents the quota in objects
  535. format: int64
  536. type: integer
  537. maxSize:
  538. description: MaxSize represents the quota in bytes as a string
  539. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  540. type: string
  541. type: object
  542. replicated:
  543. description: The replication settings
  544. properties:
  545. hybridStorage:
  546. description: HybridStorage represents hybrid storage tier settings
  547. nullable: true
  548. properties:
  549. primaryDeviceClass:
  550. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  551. minLength: 1
  552. type: string
  553. secondaryDeviceClass:
  554. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  555. minLength: 1
  556. type: string
  557. required:
  558. - primaryDeviceClass
  559. - secondaryDeviceClass
  560. type: object
  561. replicasPerFailureDomain:
  562. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  563. minimum: 1
  564. type: integer
  565. requireSafeReplicaSize:
  566. description: RequireSafeReplicaSize if false allows you to set replica 1
  567. type: boolean
  568. size:
  569. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  570. minimum: 0
  571. type: integer
  572. subFailureDomain:
  573. description: SubFailureDomain the name of the sub-failure domain
  574. type: string
  575. targetSizeRatio:
  576. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  577. minimum: 0
  578. type: number
  579. required:
  580. - size
  581. type: object
  582. statusCheck:
  583. description: The mirroring statusCheck
  584. properties:
  585. mirror:
  586. description: HealthCheckSpec represents the health check of an object store bucket
  587. nullable: true
  588. properties:
  589. disabled:
  590. type: boolean
  591. interval:
  592. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  593. type: string
  594. timeout:
  595. type: string
  596. type: object
  597. type: object
  598. x-kubernetes-preserve-unknown-fields: true
  599. type: object
  600. status:
  601. description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
  602. properties:
  603. conditions:
  604. items:
  605. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  606. properties:
  607. lastHeartbeatTime:
  608. format: date-time
  609. type: string
  610. lastTransitionTime:
  611. format: date-time
  612. type: string
  613. message:
  614. type: string
  615. reason:
  616. description: ConditionReason is a reason for a condition
  617. type: string
  618. status:
  619. type: string
  620. type:
  621. description: ConditionType represent a resource's status
  622. type: string
  623. type: object
  624. type: array
  625. info:
  626. additionalProperties:
  627. type: string
  628. nullable: true
  629. type: object
  630. mirroringInfo:
  631. description: MirroringInfoSpec is the status of the pool/radosnamespace mirroring
  632. properties:
  633. details:
  634. type: string
  635. lastChanged:
  636. type: string
  637. lastChecked:
  638. type: string
  639. mode:
  640. description: Mode is the mirroring mode
  641. type: string
  642. peers:
  643. description: Peers are the list of peer sites connected to that cluster
  644. items:
  645. description: PeersSpec contains peer details
  646. properties:
  647. client_name:
  648. description: ClientName is the CephX user used to connect to the peer
  649. type: string
  650. direction:
  651. description: Direction is the peer mirroring direction
  652. type: string
  653. mirror_uuid:
  654. description: MirrorUUID is the mirror UUID
  655. type: string
  656. site_name:
  657. description: SiteName is the current site name
  658. type: string
  659. uuid:
  660. description: UUID is the peer UUID
  661. type: string
  662. type: object
  663. type: array
  664. site_name:
  665. description: SiteName is the current site name
  666. type: string
  667. type: object
  668. mirroringStatus:
  669. description: MirroringStatusSpec is the status of the pool/radosNamespace mirroring
  670. properties:
  671. details:
  672. description: Details contains potential status errors
  673. type: string
  674. lastChanged:
  675. description: LastChanged is the last time time the status last changed
  676. type: string
  677. lastChecked:
  678. description: LastChecked is the last time time the status was checked
  679. type: string
  680. summary:
  681. description: Summary is the mirroring status summary
  682. properties:
  683. daemon_health:
  684. description: DaemonHealth is the health of the mirroring daemon
  685. type: string
  686. group_health:
  687. description: GroupHealth is the health of the mirrored image group
  688. nullable: true
  689. type: string
  690. group_states:
  691. description: GroupStates is the various state for all mirrored image groups
  692. nullable: true
  693. properties:
  694. error:
  695. description: Error is when the mirroring state is errored
  696. type: integer
  697. replaying:
  698. description: Replaying is when the replay of the mirroring journal is on-going
  699. type: integer
  700. starting_replay:
  701. description: StartingReplay is when the replay of the mirroring journal starts
  702. type: integer
  703. stopped:
  704. description: Stopped is when the mirroring state is stopped
  705. type: integer
  706. stopping_replay:
  707. description: StopReplaying is when the replay of the mirroring journal stops
  708. type: integer
  709. syncing:
  710. description: Syncing is when the image is syncing
  711. type: integer
  712. unknown:
  713. description: Unknown is when the mirroring state is unknown
  714. type: integer
  715. type: object
  716. health:
  717. description: Health is the mirroring health
  718. type: string
  719. image_health:
  720. description: ImageHealth is the health of the mirrored image
  721. type: string
  722. image_states:
  723. description: ImageStates is the various state for all mirrored images
  724. nullable: true
  725. properties:
  726. error:
  727. description: Error is when the mirroring state is errored
  728. type: integer
  729. replaying:
  730. description: Replaying is when the replay of the mirroring journal is on-going
  731. type: integer
  732. starting_replay:
  733. description: StartingReplay is when the replay of the mirroring journal starts
  734. type: integer
  735. stopped:
  736. description: Stopped is when the mirroring state is stopped
  737. type: integer
  738. stopping_replay:
  739. description: StopReplaying is when the replay of the mirroring journal stops
  740. type: integer
  741. syncing:
  742. description: Syncing is when the image is syncing
  743. type: integer
  744. unknown:
  745. description: Unknown is when the mirroring state is unknown
  746. type: integer
  747. type: object
  748. states:
  749. description: States is the various state for all mirrored images
  750. nullable: true
  751. properties:
  752. error:
  753. description: Error is when the mirroring state is errored
  754. type: integer
  755. replaying:
  756. description: Replaying is when the replay of the mirroring journal is on-going
  757. type: integer
  758. starting_replay:
  759. description: StartingReplay is when the replay of the mirroring journal starts
  760. type: integer
  761. stopped:
  762. description: Stopped is when the mirroring state is stopped
  763. type: integer
  764. stopping_replay:
  765. description: StopReplaying is when the replay of the mirroring journal stops
  766. type: integer
  767. syncing:
  768. description: Syncing is when the image is syncing
  769. type: integer
  770. unknown:
  771. description: Unknown is when the mirroring state is unknown
  772. type: integer
  773. type: object
  774. type: object
  775. type: object
  776. observedGeneration:
  777. description: ObservedGeneration is the latest generation observed by the controller.
  778. format: int64
  779. type: integer
  780. phase:
  781. description: ConditionType represent a resource's status
  782. type: string
  783. poolID:
  784. description: optional
  785. type: integer
  786. snapshotScheduleStatus:
  787. description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
  788. properties:
  789. details:
  790. description: Details contains potential status errors
  791. type: string
  792. lastChanged:
  793. description: LastChanged is the last time time the status last changed
  794. type: string
  795. lastChecked:
  796. description: LastChecked is the last time time the status was checked
  797. type: string
  798. snapshotSchedules:
  799. description: SnapshotSchedules is the list of snapshots scheduled
  800. items:
  801. description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  802. properties:
  803. image:
  804. description: Image is the mirrored image
  805. type: string
  806. items:
  807. description: Items is the list schedules times for a given snapshot
  808. items:
  809. description: SnapshotSchedule is a schedule
  810. properties:
  811. interval:
  812. description: Interval is the interval in which snapshots will be taken
  813. type: string
  814. start_time:
  815. description: StartTime is the snapshot starting time
  816. type: string
  817. type: object
  818. type: array
  819. namespace:
  820. description: Namespace is the RADOS namespace the image is part of
  821. type: string
  822. pool:
  823. description: Pool is the pool name
  824. type: string
  825. type: object
  826. nullable: true
  827. type: array
  828. type: object
  829. type: object
  830. x-kubernetes-preserve-unknown-fields: true
  831. required:
  832. - metadata
  833. - spec
  834. type: object
  835. served: true
  836. storage: true
  837. subresources:
  838. status: {}
  839. ---
  840. apiVersion: apiextensions.k8s.io/v1
  841. kind: CustomResourceDefinition
  842. metadata:
  843. annotations:
  844. controller-gen.kubebuilder.io/version: v0.16.1
  845. name: cephbucketnotifications.ceph.rook.io
  846. spec:
  847. group: ceph.rook.io
  848. names:
  849. kind: CephBucketNotification
  850. listKind: CephBucketNotificationList
  851. plural: cephbucketnotifications
  852. shortNames:
  853. - cephbn
  854. singular: cephbucketnotification
  855. scope: Namespaced
  856. versions:
  857. - name: v1
  858. schema:
  859. openAPIV3Schema:
  860. description: CephBucketNotification represents a Bucket Notifications
  861. properties:
  862. apiVersion:
  863. description: |-
  864. APIVersion defines the versioned schema of this representation of an object.
  865. Servers should convert recognized schemas to the latest internal value, and
  866. may reject unrecognized values.
  867. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  868. type: string
  869. kind:
  870. description: |-
  871. Kind is a string value representing the REST resource this object represents.
  872. Servers may infer this from the endpoint the client submits requests to.
  873. Cannot be updated.
  874. In CamelCase.
  875. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  876. type: string
  877. metadata:
  878. type: object
  879. spec:
  880. description: BucketNotificationSpec represent the spec of a Bucket Notification
  881. properties:
  882. events:
  883. description: List of events that should trigger the notification
  884. items:
  885. description: BucketNotificationSpec represent the event type of the bucket notification
  886. enum:
  887. - s3:ObjectCreated:*
  888. - s3:ObjectCreated:Put
  889. - s3:ObjectCreated:Post
  890. - s3:ObjectCreated:Copy
  891. - s3:ObjectCreated:CompleteMultipartUpload
  892. - s3:ObjectRemoved:*
  893. - s3:ObjectRemoved:Delete
  894. - s3:ObjectRemoved:DeleteMarkerCreated
  895. type: string
  896. type: array
  897. filter:
  898. description: Spec of notification filter
  899. properties:
  900. keyFilters:
  901. description: Filters based on the object's key
  902. items:
  903. description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
  904. properties:
  905. name:
  906. description: Name of the filter - prefix/suffix/regex
  907. enum:
  908. - prefix
  909. - suffix
  910. - regex
  911. type: string
  912. value:
  913. description: Value to filter on
  914. type: string
  915. required:
  916. - name
  917. - value
  918. type: object
  919. type: array
  920. metadataFilters:
  921. description: Filters based on the object's metadata
  922. items:
  923. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  924. properties:
  925. name:
  926. description: Name of the metadata or tag
  927. minLength: 1
  928. type: string
  929. value:
  930. description: Value to filter on
  931. type: string
  932. required:
  933. - name
  934. - value
  935. type: object
  936. type: array
  937. tagFilters:
  938. description: Filters based on the object's tags
  939. items:
  940. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  941. properties:
  942. name:
  943. description: Name of the metadata or tag
  944. minLength: 1
  945. type: string
  946. value:
  947. description: Value to filter on
  948. type: string
  949. required:
  950. - name
  951. - value
  952. type: object
  953. type: array
  954. type: object
  955. topic:
  956. description: The name of the topic associated with this notification
  957. minLength: 1
  958. type: string
  959. required:
  960. - topic
  961. type: object
  962. status:
  963. description: Status represents the status of an object
  964. properties:
  965. conditions:
  966. items:
  967. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  968. properties:
  969. lastHeartbeatTime:
  970. format: date-time
  971. type: string
  972. lastTransitionTime:
  973. format: date-time
  974. type: string
  975. message:
  976. type: string
  977. reason:
  978. description: ConditionReason is a reason for a condition
  979. type: string
  980. status:
  981. type: string
  982. type:
  983. description: ConditionType represent a resource's status
  984. type: string
  985. type: object
  986. type: array
  987. observedGeneration:
  988. description: ObservedGeneration is the latest generation observed by the controller.
  989. format: int64
  990. type: integer
  991. phase:
  992. type: string
  993. type: object
  994. x-kubernetes-preserve-unknown-fields: true
  995. required:
  996. - metadata
  997. - spec
  998. type: object
  999. served: true
  1000. storage: true
  1001. subresources:
  1002. status: {}
  1003. ---
  1004. apiVersion: apiextensions.k8s.io/v1
  1005. kind: CustomResourceDefinition
  1006. metadata:
  1007. annotations:
  1008. controller-gen.kubebuilder.io/version: v0.16.1
  1009. name: cephbuckettopics.ceph.rook.io
  1010. spec:
  1011. group: ceph.rook.io
  1012. names:
  1013. kind: CephBucketTopic
  1014. listKind: CephBucketTopicList
  1015. plural: cephbuckettopics
  1016. shortNames:
  1017. - cephbt
  1018. singular: cephbuckettopic
  1019. scope: Namespaced
  1020. versions:
  1021. - additionalPrinterColumns:
  1022. - jsonPath: .status.phase
  1023. name: Phase
  1024. type: string
  1025. - jsonPath: .metadata.creationTimestamp
  1026. name: Age
  1027. type: date
  1028. name: v1
  1029. schema:
  1030. openAPIV3Schema:
  1031. description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
  1032. properties:
  1033. apiVersion:
  1034. description: |-
  1035. APIVersion defines the versioned schema of this representation of an object.
  1036. Servers should convert recognized schemas to the latest internal value, and
  1037. may reject unrecognized values.
  1038. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1039. type: string
  1040. kind:
  1041. description: |-
  1042. Kind is a string value representing the REST resource this object represents.
  1043. Servers may infer this from the endpoint the client submits requests to.
  1044. Cannot be updated.
  1045. In CamelCase.
  1046. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1047. type: string
  1048. metadata:
  1049. type: object
  1050. spec:
  1051. description: BucketTopicSpec represent the spec of a Bucket Topic
  1052. properties:
  1053. endpoint:
  1054. description: Contains the endpoint spec of the topic
  1055. properties:
  1056. amqp:
  1057. description: Spec of AMQP endpoint
  1058. properties:
  1059. ackLevel:
  1060. default: broker
  1061. description: The ack level required for this topic (none/broker/routeable)
  1062. enum:
  1063. - none
  1064. - broker
  1065. - routeable
  1066. type: string
  1067. disableVerifySSL:
  1068. description: Indicate whether the server certificate is validated by the client or not
  1069. type: boolean
  1070. exchange:
  1071. description: Name of the exchange that is used to route messages based on topics
  1072. minLength: 1
  1073. type: string
  1074. uri:
  1075. description: The URI of the AMQP endpoint to push notification to
  1076. minLength: 1
  1077. type: string
  1078. required:
  1079. - exchange
  1080. - uri
  1081. type: object
  1082. http:
  1083. description: Spec of HTTP endpoint
  1084. properties:
  1085. disableVerifySSL:
  1086. description: Indicate whether the server certificate is validated by the client or not
  1087. type: boolean
  1088. sendCloudEvents:
  1089. description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md'
  1090. type: boolean
  1091. uri:
  1092. description: The URI of the HTTP endpoint to push notification to
  1093. minLength: 1
  1094. type: string
  1095. required:
  1096. - uri
  1097. type: object
  1098. kafka:
  1099. description: Spec of Kafka endpoint
  1100. properties:
  1101. ackLevel:
  1102. default: broker
  1103. description: The ack level required for this topic (none/broker)
  1104. enum:
  1105. - none
  1106. - broker
  1107. type: string
  1108. disableVerifySSL:
  1109. description: Indicate whether the server certificate is validated by the client or not
  1110. type: boolean
  1111. mechanism:
  1112. default: PLAIN
  1113. description: The authentication mechanism for this topic (PLAIN/SCRAM-SHA-512/SCRAM-SHA-256/GSSAPI/OAUTHBEARER)
  1114. enum:
  1115. - PLAIN
  1116. - SCRAM-SHA-512
  1117. - SCRAM-SHA-256
  1118. - GSSAPI
  1119. - OAUTHBEARER
  1120. type: string
  1121. passwordSecretRef:
  1122. description: The kafka password to use for authentication
  1123. properties:
  1124. key:
  1125. description: The key of the secret to select from. Must be a valid secret key.
  1126. type: string
  1127. name:
  1128. default: ""
  1129. description: |-
  1130. Name of the referent.
  1131. This field is effectively required, but due to backwards compatibility is
  1132. allowed to be empty. Instances of this type with an empty value here are
  1133. almost certainly wrong.
  1134. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1135. type: string
  1136. optional:
  1137. description: Specify whether the Secret or its key must be defined
  1138. type: boolean
  1139. required:
  1140. - key
  1141. type: object
  1142. x-kubernetes-map-type: atomic
  1143. uri:
  1144. description: The URI of the Kafka endpoint to push notification to
  1145. minLength: 1
  1146. type: string
  1147. useSSL:
  1148. description: Indicate whether to use SSL when communicating with the broker
  1149. type: boolean
  1150. userSecretRef:
  1151. description: The kafka user name to use for authentication
  1152. properties:
  1153. key:
  1154. description: The key of the secret to select from. Must be a valid secret key.
  1155. type: string
  1156. name:
  1157. default: ""
  1158. description: |-
  1159. Name of the referent.
  1160. This field is effectively required, but due to backwards compatibility is
  1161. allowed to be empty. Instances of this type with an empty value here are
  1162. almost certainly wrong.
  1163. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1164. type: string
  1165. optional:
  1166. description: Specify whether the Secret or its key must be defined
  1167. type: boolean
  1168. required:
  1169. - key
  1170. type: object
  1171. x-kubernetes-map-type: atomic
  1172. required:
  1173. - uri
  1174. type: object
  1175. type: object
  1176. objectStoreName:
  1177. description: The name of the object store on which to define the topic
  1178. minLength: 1
  1179. type: string
  1180. objectStoreNamespace:
  1181. description: The namespace of the object store on which to define the topic
  1182. minLength: 1
  1183. type: string
  1184. opaqueData:
  1185. description: Data which is sent in each event
  1186. type: string
  1187. persistent:
  1188. description: Indication whether notifications to this endpoint are persistent or not
  1189. type: boolean
  1190. required:
  1191. - endpoint
  1192. - objectStoreName
  1193. - objectStoreNamespace
  1194. type: object
  1195. status:
  1196. description: BucketTopicStatus represents the Status of a CephBucketTopic
  1197. properties:
  1198. ARN:
  1199. description: The ARN of the topic generated by the RGW
  1200. nullable: true
  1201. type: string
  1202. observedGeneration:
  1203. description: ObservedGeneration is the latest generation observed by the controller.
  1204. format: int64
  1205. type: integer
  1206. phase:
  1207. type: string
  1208. secrets:
  1209. items:
  1210. properties:
  1211. name:
  1212. description: name is unique within a namespace to reference a secret resource.
  1213. type: string
  1214. namespace:
  1215. description: namespace defines the space within which the secret name must be unique.
  1216. type: string
  1217. resourceVersion:
  1218. type: string
  1219. uid:
  1220. description: |-
  1221. UID is a type that holds unique ID values, including UUIDs. Because we
  1222. don't ONLY use UUIDs, this is an alias to string. Being a type captures
  1223. intent and helps make sure that UIDs and names do not get conflated.
  1224. type: string
  1225. type: object
  1226. x-kubernetes-map-type: atomic
  1227. type: array
  1228. type: object
  1229. x-kubernetes-preserve-unknown-fields: true
  1230. required:
  1231. - metadata
  1232. - spec
  1233. type: object
  1234. served: true
  1235. storage: true
  1236. subresources:
  1237. status: {}
  1238. ---
  1239. apiVersion: apiextensions.k8s.io/v1
  1240. kind: CustomResourceDefinition
  1241. metadata:
  1242. annotations:
  1243. controller-gen.kubebuilder.io/version: v0.16.1
  1244. name: cephclients.ceph.rook.io
  1245. spec:
  1246. group: ceph.rook.io
  1247. names:
  1248. kind: CephClient
  1249. listKind: CephClientList
  1250. plural: cephclients
  1251. shortNames:
  1252. - cephcl
  1253. singular: cephclient
  1254. scope: Namespaced
  1255. versions:
  1256. - additionalPrinterColumns:
  1257. - jsonPath: .status.phase
  1258. name: Phase
  1259. type: string
  1260. - jsonPath: .metadata.creationTimestamp
  1261. name: Age
  1262. type: date
  1263. name: v1
  1264. schema:
  1265. openAPIV3Schema:
  1266. description: CephClient represents a Ceph Client
  1267. properties:
  1268. apiVersion:
  1269. description: |-
  1270. APIVersion defines the versioned schema of this representation of an object.
  1271. Servers should convert recognized schemas to the latest internal value, and
  1272. may reject unrecognized values.
  1273. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1274. type: string
  1275. kind:
  1276. description: |-
  1277. Kind is a string value representing the REST resource this object represents.
  1278. Servers may infer this from the endpoint the client submits requests to.
  1279. Cannot be updated.
  1280. In CamelCase.
  1281. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1282. type: string
  1283. metadata:
  1284. type: object
  1285. spec:
  1286. description: Spec represents the specification of a Ceph Client
  1287. properties:
  1288. caps:
  1289. additionalProperties:
  1290. type: string
  1291. type: object
  1292. x-kubernetes-preserve-unknown-fields: true
  1293. name:
  1294. type: string
  1295. removeSecret:
  1296. description: |-
  1297. RemoveSecret indicates whether the current secret for this ceph client should be removed or not.
  1298. If true, the K8s secret will be deleted, but the cephx keyring will remain until the CR is deleted.
  1299. type: boolean
  1300. secretName:
  1301. description: |-
  1302. SecretName is the name of the secret created for this ceph client.
  1303. If not specified, the default name is "rook-ceph-client-" as a prefix to the CR name.
  1304. type: string
  1305. x-kubernetes-validations:
  1306. - message: SecretName is immutable and cannot be changed
  1307. rule: self == oldSelf
  1308. required:
  1309. - caps
  1310. type: object
  1311. status:
  1312. description: Status represents the status of a Ceph Client
  1313. properties:
  1314. info:
  1315. additionalProperties:
  1316. type: string
  1317. nullable: true
  1318. type: object
  1319. observedGeneration:
  1320. description: ObservedGeneration is the latest generation observed by the controller.
  1321. format: int64
  1322. type: integer
  1323. phase:
  1324. description: ConditionType represent a resource's status
  1325. type: string
  1326. type: object
  1327. x-kubernetes-preserve-unknown-fields: true
  1328. required:
  1329. - metadata
  1330. - spec
  1331. type: object
  1332. served: true
  1333. storage: true
  1334. subresources:
  1335. status: {}
  1336. ---
  1337. apiVersion: apiextensions.k8s.io/v1
  1338. kind: CustomResourceDefinition
  1339. metadata:
  1340. annotations:
  1341. controller-gen.kubebuilder.io/version: v0.16.1
  1342. name: cephclusters.ceph.rook.io
  1343. spec:
  1344. group: ceph.rook.io
  1345. names:
  1346. kind: CephCluster
  1347. listKind: CephClusterList
  1348. plural: cephclusters
  1349. shortNames:
  1350. - ceph
  1351. singular: cephcluster
  1352. scope: Namespaced
  1353. versions:
  1354. - additionalPrinterColumns:
  1355. - description: Directory used on the K8s nodes
  1356. jsonPath: .spec.dataDirHostPath
  1357. name: DataDirHostPath
  1358. type: string
  1359. - description: Number of MONs
  1360. jsonPath: .spec.mon.count
  1361. name: MonCount
  1362. type: string
  1363. - jsonPath: .metadata.creationTimestamp
  1364. name: Age
  1365. type: date
  1366. - jsonPath: .status.phase
  1367. name: Phase
  1368. type: string
  1369. - description: Message
  1370. jsonPath: .status.message
  1371. name: Message
  1372. type: string
  1373. - description: Ceph Health
  1374. jsonPath: .status.ceph.health
  1375. name: Health
  1376. type: string
  1377. - jsonPath: .spec.external.enable
  1378. name: External
  1379. type: boolean
  1380. - description: Ceph FSID
  1381. jsonPath: .status.ceph.fsid
  1382. name: FSID
  1383. type: string
  1384. name: v1
  1385. schema:
  1386. openAPIV3Schema:
  1387. description: CephCluster is a Ceph storage cluster
  1388. properties:
  1389. apiVersion:
  1390. description: |-
  1391. APIVersion defines the versioned schema of this representation of an object.
  1392. Servers should convert recognized schemas to the latest internal value, and
  1393. may reject unrecognized values.
  1394. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  1395. type: string
  1396. kind:
  1397. description: |-
  1398. Kind is a string value representing the REST resource this object represents.
  1399. Servers may infer this from the endpoint the client submits requests to.
  1400. Cannot be updated.
  1401. In CamelCase.
  1402. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  1403. type: string
  1404. metadata:
  1405. type: object
  1406. spec:
  1407. description: ClusterSpec represents the specification of Ceph Cluster
  1408. properties:
  1409. annotations:
  1410. additionalProperties:
  1411. additionalProperties:
  1412. type: string
  1413. description: Annotations are annotations
  1414. type: object
  1415. description: The annotations-related configuration to add/set on each Pod related object.
  1416. nullable: true
  1417. type: object
  1418. x-kubernetes-preserve-unknown-fields: true
  1419. cephConfig:
  1420. additionalProperties:
  1421. additionalProperties:
  1422. type: string
  1423. type: object
  1424. description: Ceph Config options
  1425. nullable: true
  1426. type: object
  1427. cephConfigFromSecret:
  1428. additionalProperties:
  1429. additionalProperties:
  1430. description: SecretKeySelector selects a key of a Secret.
  1431. properties:
  1432. key:
  1433. description: The key of the secret to select from. Must be a valid secret key.
  1434. type: string
  1435. name:
  1436. default: ""
  1437. description: |-
  1438. Name of the referent.
  1439. This field is effectively required, but due to backwards compatibility is
  1440. allowed to be empty. Instances of this type with an empty value here are
  1441. almost certainly wrong.
  1442. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  1443. type: string
  1444. optional:
  1445. description: Specify whether the Secret or its key must be defined
  1446. type: boolean
  1447. required:
  1448. - key
  1449. type: object
  1450. x-kubernetes-map-type: atomic
  1451. type: object
  1452. description: CephConfigFromSecret works exactly like CephConfig but takes config value from Secret Key reference.
  1453. nullable: true
  1454. type: object
  1455. cephVersion:
  1456. description: The version information that instructs Rook to orchestrate a particular version of Ceph.
  1457. nullable: true
  1458. properties:
  1459. allowUnsupported:
  1460. description: Whether to allow unsupported versions (do not set to true in production)
  1461. type: boolean
  1462. image:
  1463. description: |-
  1464. Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph:<tag>
  1465. The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags
  1466. type: string
  1467. imagePullPolicy:
  1468. description: |-
  1469. ImagePullPolicy describes a policy for if/when to pull a container image
  1470. One of Always, Never, IfNotPresent.
  1471. enum:
  1472. - IfNotPresent
  1473. - Always
  1474. - Never
  1475. - ""
  1476. type: string
  1477. type: object
  1478. cleanupPolicy:
  1479. description: |-
  1480. Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster
  1481. deletion is not imminent.
  1482. nullable: true
  1483. properties:
  1484. allowUninstallWithVolumes:
  1485. description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
  1486. type: boolean
  1487. confirmation:
  1488. description: Confirmation represents the cleanup confirmation
  1489. nullable: true
  1490. pattern: ^$|^yes-really-destroy-data$
  1491. type: string
  1492. sanitizeDisks:
  1493. description: SanitizeDisks represents way we sanitize disks
  1494. nullable: true
  1495. properties:
  1496. dataSource:
  1497. description: DataSource is the data source to use to sanitize the disk with
  1498. enum:
  1499. - zero
  1500. - random
  1501. type: string
  1502. iteration:
  1503. description: Iteration is the number of pass to apply the sanitizing
  1504. format: int32
  1505. type: integer
  1506. method:
  1507. description: Method is the method we use to sanitize disks
  1508. enum:
  1509. - complete
  1510. - quick
  1511. type: string
  1512. type: object
  1513. wipeDevicesFromOtherClusters:
  1514. description: |-
  1515. WipeDevicesFromOtherClusters wipes the OSD disks belonging to other clusters. This is useful in scenarios where ceph cluster
  1516. was reinstalled but OSD disk still contains the metadata from previous ceph cluster.
  1517. type: boolean
  1518. type: object
  1519. continueUpgradeAfterChecksEvenIfNotHealthy:
  1520. description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
  1521. type: boolean
  1522. crashCollector:
  1523. description: A spec for the crash controller
  1524. nullable: true
  1525. properties:
  1526. daysToRetain:
  1527. description: DaysToRetain represents the number of days to retain crash until they get pruned
  1528. type: integer
  1529. disable:
  1530. description: Disable determines whether we should enable the crash collector
  1531. type: boolean
  1532. type: object
  1533. csi:
  1534. description: CSI Driver Options applied per cluster.
  1535. properties:
  1536. cephfs:
  1537. description: CephFS defines CSI Driver settings for CephFS driver.
  1538. properties:
  1539. fuseMountOptions:
  1540. description: FuseMountOptions defines the mount options for ceph fuse mounter.
  1541. type: string
  1542. kernelMountOptions:
  1543. description: KernelMountOptions defines the mount options for kernel mounter.
  1544. type: string
  1545. type: object
  1546. readAffinity:
  1547. description: ReadAffinity defines the read affinity settings for CSI driver.
  1548. properties:
  1549. crushLocationLabels:
  1550. description: |-
  1551. CrushLocationLabels defines which node labels to use
  1552. as CRUSH location. This should correspond to the values set in
  1553. the CRUSH map.
  1554. items:
  1555. type: string
  1556. type: array
  1557. enabled:
  1558. description: Enables read affinity for CSI driver.
  1559. type: boolean
  1560. type: object
  1561. skipUserCreation:
  1562. description: |-
  1563. SkipUserCreation determines whether CSI users and their associated secrets should be skipped.
  1564. If set to true, the user must manually manage these secrets.
  1565. type: boolean
  1566. type: object
  1567. dashboard:
  1568. description: Dashboard settings
  1569. nullable: true
  1570. properties:
  1571. enabled:
  1572. description: Enabled determines whether to enable the dashboard
  1573. type: boolean
  1574. port:
  1575. description: Port is the dashboard webserver port
  1576. maximum: 65535
  1577. minimum: 0
  1578. type: integer
  1579. prometheusEndpoint:
  1580. description: Endpoint for the Prometheus host
  1581. type: string
  1582. prometheusEndpointSSLVerify:
  1583. description: Whether to verify the ssl endpoint for prometheus. Set to false for a self-signed cert.
  1584. type: boolean
  1585. ssl:
  1586. description: SSL determines whether SSL should be used
  1587. type: boolean
  1588. urlPrefix:
  1589. description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
  1590. type: string
  1591. type: object
  1592. dataDirHostPath:
  1593. description: The path on the host where config and data can be persisted
  1594. pattern: ^/(\S+)
  1595. type: string
  1596. x-kubernetes-validations:
  1597. - message: DataDirHostPath is immutable
  1598. rule: self == oldSelf
  1599. disruptionManagement:
  1600. description: A spec for configuring disruption management.
  1601. nullable: true
  1602. properties:
  1603. machineDisruptionBudgetNamespace:
  1604. description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController
  1605. type: string
  1606. manageMachineDisruptionBudgets:
  1607. description: Deprecated. This enables management of machinedisruptionbudgets.
  1608. type: boolean
  1609. managePodBudgets:
  1610. description: This enables management of poddisruptionbudgets
  1611. type: boolean
  1612. osdMaintenanceTimeout:
  1613. description: |-
  1614. OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure domains
  1615. it only works if managePodBudgets is true.
  1616. the default is 30 minutes
  1617. format: int64
  1618. type: integer
  1619. pgHealthCheckTimeout:
  1620. description: 'DEPRECATED: PGHealthCheckTimeout is no longer implemented'
  1621. format: int64
  1622. type: integer
  1623. pgHealthyRegex:
  1624. description: |-
  1625. PgHealthyRegex is the regular expression that is used to determine which PG states should be considered healthy.
  1626. The default is `^(active\+clean|active\+clean\+scrubbing|active\+clean\+scrubbing\+deep)$`
  1627. type: string
  1628. type: object
  1629. external:
  1630. description: |-
  1631. Whether the Ceph Cluster is running external to this Kubernetes cluster
  1632. mon, mgr, osd, mds, and discover daemons will not be created for external clusters.
  1633. nullable: true
  1634. properties:
  1635. enable:
  1636. description: Enable determines whether external mode is enabled or not
  1637. type: boolean
  1638. type: object
  1639. x-kubernetes-preserve-unknown-fields: true
  1640. healthCheck:
  1641. description: Internal daemon healthchecks and liveness probe
  1642. nullable: true
  1643. properties:
  1644. daemonHealth:
  1645. description: DaemonHealth is the health check for a given daemon
  1646. nullable: true
  1647. properties:
  1648. mon:
  1649. description: Monitor represents the health check settings for the Ceph monitor
  1650. nullable: true
  1651. properties:
  1652. disabled:
  1653. type: boolean
  1654. interval:
  1655. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1656. type: string
  1657. timeout:
  1658. type: string
  1659. type: object
  1660. osd:
  1661. description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs
  1662. nullable: true
  1663. properties:
  1664. disabled:
  1665. type: boolean
  1666. interval:
  1667. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1668. type: string
  1669. timeout:
  1670. type: string
  1671. type: object
  1672. status:
  1673. description: Status represents the health check settings for the Ceph health
  1674. nullable: true
  1675. properties:
  1676. disabled:
  1677. type: boolean
  1678. interval:
  1679. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1680. type: string
  1681. timeout:
  1682. type: string
  1683. type: object
  1684. type: object
  1685. livenessProbe:
  1686. additionalProperties:
  1687. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1688. properties:
  1689. disabled:
  1690. description: Disabled determines whether probe is disable or not
  1691. type: boolean
  1692. probe:
  1693. description: |-
  1694. Probe describes a health check to be performed against a container to determine whether it is
  1695. alive or ready to receive traffic.
  1696. properties:
  1697. exec:
  1698. description: Exec specifies a command to execute in the container.
  1699. properties:
  1700. command:
  1701. description: |-
  1702. Command is the command line to execute inside the container, the working directory for the
  1703. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  1704. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  1705. a shell, you need to explicitly call out to that shell.
  1706. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1707. items:
  1708. type: string
  1709. type: array
  1710. x-kubernetes-list-type: atomic
  1711. type: object
  1712. failureThreshold:
  1713. description: |-
  1714. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  1715. Defaults to 3. Minimum value is 1.
  1716. format: int32
  1717. type: integer
  1718. grpc:
  1719. description: GRPC specifies a GRPC HealthCheckRequest.
  1720. properties:
  1721. port:
  1722. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1723. format: int32
  1724. type: integer
  1725. service:
  1726. default: ""
  1727. description: |-
  1728. Service is the name of the service to place in the gRPC HealthCheckRequest
  1729. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  1730. If this is not specified, the default behavior is defined by gRPC.
  1731. type: string
  1732. required:
  1733. - port
  1734. type: object
  1735. httpGet:
  1736. description: HTTPGet specifies an HTTP GET request to perform.
  1737. properties:
  1738. host:
  1739. description: |-
  1740. Host name to connect to, defaults to the pod IP. You probably want to set
  1741. "Host" in httpHeaders instead.
  1742. type: string
  1743. httpHeaders:
  1744. description: Custom headers to set in the request. HTTP allows repeated headers.
  1745. items:
  1746. description: HTTPHeader describes a custom header to be used in HTTP probes
  1747. properties:
  1748. name:
  1749. description: |-
  1750. The header field name.
  1751. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1752. type: string
  1753. value:
  1754. description: The header field value
  1755. type: string
  1756. required:
  1757. - name
  1758. - value
  1759. type: object
  1760. type: array
  1761. x-kubernetes-list-type: atomic
  1762. path:
  1763. description: Path to access on the HTTP server.
  1764. type: string
  1765. port:
  1766. anyOf:
  1767. - type: integer
  1768. - type: string
  1769. description: |-
  1770. Name or number of the port to access on the container.
  1771. Number must be in the range 1 to 65535.
  1772. Name must be an IANA_SVC_NAME.
  1773. x-kubernetes-int-or-string: true
  1774. scheme:
  1775. description: |-
  1776. Scheme to use for connecting to the host.
  1777. Defaults to HTTP.
  1778. type: string
  1779. required:
  1780. - port
  1781. type: object
  1782. initialDelaySeconds:
  1783. description: |-
  1784. Number of seconds after the container has started before liveness probes are initiated.
  1785. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  1786. format: int32
  1787. type: integer
  1788. periodSeconds:
  1789. description: |-
  1790. How often (in seconds) to perform the probe.
  1791. Default to 10 seconds. Minimum value is 1.
  1792. format: int32
  1793. type: integer
  1794. successThreshold:
  1795. description: |-
  1796. Minimum consecutive successes for the probe to be considered successful after having failed.
  1797. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1798. format: int32
  1799. type: integer
  1800. tcpSocket:
  1801. description: TCPSocket specifies a connection to a TCP port.
  1802. properties:
  1803. host:
  1804. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1805. type: string
  1806. port:
  1807. anyOf:
  1808. - type: integer
  1809. - type: string
  1810. description: |-
  1811. Number or name of the port to access on the container.
  1812. Number must be in the range 1 to 65535.
  1813. Name must be an IANA_SVC_NAME.
  1814. x-kubernetes-int-or-string: true
  1815. required:
  1816. - port
  1817. type: object
  1818. terminationGracePeriodSeconds:
  1819. format: int64
  1820. type: integer
  1821. timeoutSeconds:
  1822. description: |-
  1823. Number of seconds after which the probe times out.
  1824. Defaults to 1 second. Minimum value is 1.
  1825. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  1826. format: int32
  1827. type: integer
  1828. type: object
  1829. type: object
  1830. description: LivenessProbe allows changing the livenessProbe configuration for a given daemon
  1831. type: object
  1832. startupProbe:
  1833. additionalProperties:
  1834. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1835. properties:
  1836. disabled:
  1837. description: Disabled determines whether probe is disable or not
  1838. type: boolean
  1839. probe:
  1840. description: |-
  1841. Probe describes a health check to be performed against a container to determine whether it is
  1842. alive or ready to receive traffic.
  1843. properties:
  1844. exec:
  1845. description: Exec specifies a command to execute in the container.
  1846. properties:
  1847. command:
  1848. description: |-
  1849. Command is the command line to execute inside the container, the working directory for the
  1850. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  1851. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  1852. a shell, you need to explicitly call out to that shell.
  1853. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1854. items:
  1855. type: string
  1856. type: array
  1857. x-kubernetes-list-type: atomic
  1858. type: object
  1859. failureThreshold:
  1860. description: |-
  1861. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  1862. Defaults to 3. Minimum value is 1.
  1863. format: int32
  1864. type: integer
  1865. grpc:
  1866. description: GRPC specifies a GRPC HealthCheckRequest.
  1867. properties:
  1868. port:
  1869. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1870. format: int32
  1871. type: integer
  1872. service:
  1873. default: ""
  1874. description: |-
  1875. Service is the name of the service to place in the gRPC HealthCheckRequest
  1876. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  1877. If this is not specified, the default behavior is defined by gRPC.
  1878. type: string
  1879. required:
  1880. - port
  1881. type: object
  1882. httpGet:
  1883. description: HTTPGet specifies an HTTP GET request to perform.
  1884. properties:
  1885. host:
  1886. description: |-
  1887. Host name to connect to, defaults to the pod IP. You probably want to set
  1888. "Host" in httpHeaders instead.
  1889. type: string
  1890. httpHeaders:
  1891. description: Custom headers to set in the request. HTTP allows repeated headers.
  1892. items:
  1893. description: HTTPHeader describes a custom header to be used in HTTP probes
  1894. properties:
  1895. name:
  1896. description: |-
  1897. The header field name.
  1898. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1899. type: string
  1900. value:
  1901. description: The header field value
  1902. type: string
  1903. required:
  1904. - name
  1905. - value
  1906. type: object
  1907. type: array
  1908. x-kubernetes-list-type: atomic
  1909. path:
  1910. description: Path to access on the HTTP server.
  1911. type: string
  1912. port:
  1913. anyOf:
  1914. - type: integer
  1915. - type: string
  1916. description: |-
  1917. Name or number of the port to access on the container.
  1918. Number must be in the range 1 to 65535.
  1919. Name must be an IANA_SVC_NAME.
  1920. x-kubernetes-int-or-string: true
  1921. scheme:
  1922. description: |-
  1923. Scheme to use for connecting to the host.
  1924. Defaults to HTTP.
  1925. type: string
  1926. required:
  1927. - port
  1928. type: object
  1929. initialDelaySeconds:
  1930. description: |-
  1931. Number of seconds after the container has started before liveness probes are initiated.
  1932. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  1933. format: int32
  1934. type: integer
  1935. periodSeconds:
  1936. description: |-
  1937. How often (in seconds) to perform the probe.
  1938. Default to 10 seconds. Minimum value is 1.
  1939. format: int32
  1940. type: integer
  1941. successThreshold:
  1942. description: |-
  1943. Minimum consecutive successes for the probe to be considered successful after having failed.
  1944. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1945. format: int32
  1946. type: integer
  1947. tcpSocket:
  1948. description: TCPSocket specifies a connection to a TCP port.
  1949. properties:
  1950. host:
  1951. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1952. type: string
  1953. port:
  1954. anyOf:
  1955. - type: integer
  1956. - type: string
  1957. description: |-
  1958. Number or name of the port to access on the container.
  1959. Number must be in the range 1 to 65535.
  1960. Name must be an IANA_SVC_NAME.
  1961. x-kubernetes-int-or-string: true
  1962. required:
  1963. - port
  1964. type: object
  1965. terminationGracePeriodSeconds:
  1966. format: int64
  1967. type: integer
  1968. timeoutSeconds:
  1969. description: |-
  1970. Number of seconds after which the probe times out.
  1971. Defaults to 1 second. Minimum value is 1.
  1972. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  1973. format: int32
  1974. type: integer
  1975. type: object
  1976. type: object
  1977. description: StartupProbe allows changing the startupProbe configuration for a given daemon
  1978. type: object
  1979. type: object
  1980. labels:
  1981. additionalProperties:
  1982. additionalProperties:
  1983. type: string
  1984. description: Labels are label for a given daemons
  1985. type: object
  1986. description: The labels-related configuration to add/set on each Pod related object.
  1987. nullable: true
  1988. type: object
  1989. x-kubernetes-preserve-unknown-fields: true
  1990. logCollector:
  1991. description: Logging represents loggings settings
  1992. nullable: true
  1993. properties:
  1994. enabled:
  1995. description: Enabled represents whether the log collector is enabled
  1996. type: boolean
  1997. maxLogSize:
  1998. anyOf:
  1999. - type: integer
  2000. - type: string
  2001. description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
  2002. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2003. x-kubernetes-int-or-string: true
  2004. periodicity:
  2005. description: Periodicity is the periodicity of the log rotation.
  2006. pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$
  2007. type: string
  2008. type: object
  2009. mgr:
  2010. description: A spec for mgr related options
  2011. nullable: true
  2012. properties:
  2013. allowMultiplePerNode:
  2014. description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
  2015. type: boolean
  2016. count:
  2017. description: Count is the number of manager daemons to run
  2018. maximum: 5
  2019. minimum: 0
  2020. type: integer
  2021. modules:
  2022. description: Modules is the list of ceph manager modules to enable/disable
  2023. items:
  2024. description: Module represents mgr modules that the user wants to enable or disable
  2025. properties:
  2026. enabled:
  2027. description: Enabled determines whether a module should be enabled or not
  2028. type: boolean
  2029. name:
  2030. description: Name is the name of the ceph manager module
  2031. type: string
  2032. settings:
  2033. description: Settings to further configure the module
  2034. properties:
  2035. balancerMode:
  2036. description: BalancerMode sets the `balancer` module with different modes like `upmap`, `crush-compact` etc
  2037. enum:
  2038. - ""
  2039. - crush-compat
  2040. - upmap
  2041. - read
  2042. - upmap-read
  2043. type: string
  2044. type: object
  2045. type: object
  2046. nullable: true
  2047. type: array
  2048. type: object
  2049. mon:
  2050. description: A spec for mon related options
  2051. nullable: true
  2052. properties:
  2053. allowMultiplePerNode:
  2054. description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
  2055. type: boolean
  2056. count:
  2057. description: Count is the number of Ceph monitors
  2058. maximum: 9
  2059. minimum: 0
  2060. type: integer
  2061. externalMonIDs:
  2062. description: |-
  2063. ExternalMonIDs - optional list of monitor IDs which are deployed externally and not managed by Rook.
  2064. If set, Rook will not remove mons with given IDs from quorum.
  2065. This parameter is used only for local Rook cluster running in normal mode
  2066. and will be ignored if external or stretched mode is used.
  2067. leading
  2068. items:
  2069. type: string
  2070. type: array
  2071. failureDomainLabel:
  2072. type: string
  2073. stretchCluster:
  2074. description: StretchCluster is the stretch cluster specification
  2075. properties:
  2076. failureDomainLabel:
  2077. description: 'FailureDomainLabel the failure domain name (e,g: zone)'
  2078. type: string
  2079. subFailureDomain:
  2080. description: SubFailureDomain is the failure domain within a zone
  2081. type: string
  2082. zones:
  2083. description: Zones is the list of zones
  2084. items:
  2085. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  2086. properties:
  2087. arbiter:
  2088. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  2089. type: boolean
  2090. name:
  2091. description: Name is the name of the zone
  2092. type: string
  2093. volumeClaimTemplate:
  2094. description: VolumeClaimTemplate is the PVC template
  2095. properties:
  2096. metadata:
  2097. description: |-
  2098. Standard object's metadata.
  2099. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  2100. properties:
  2101. annotations:
  2102. additionalProperties:
  2103. type: string
  2104. type: object
  2105. finalizers:
  2106. items:
  2107. type: string
  2108. type: array
  2109. labels:
  2110. additionalProperties:
  2111. type: string
  2112. type: object
  2113. name:
  2114. type: string
  2115. namespace:
  2116. type: string
  2117. type: object
  2118. spec:
  2119. description: |-
  2120. spec defines the desired characteristics of a volume requested by a pod author.
  2121. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2122. properties:
  2123. accessModes:
  2124. description: |-
  2125. accessModes contains the desired access modes the volume should have.
  2126. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2127. items:
  2128. type: string
  2129. type: array
  2130. x-kubernetes-list-type: atomic
  2131. dataSource:
  2132. description: |-
  2133. dataSource field can be used to specify either:
  2134. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2135. * An existing PVC (PersistentVolumeClaim)
  2136. If the provisioner or an external controller can support the specified data source,
  2137. it will create a new volume based on the contents of the specified data source.
  2138. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2139. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2140. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2141. properties:
  2142. apiGroup:
  2143. description: |-
  2144. APIGroup is the group for the resource being referenced.
  2145. If APIGroup is not specified, the specified Kind must be in the core API group.
  2146. For any other third-party types, APIGroup is required.
  2147. type: string
  2148. kind:
  2149. description: Kind is the type of resource being referenced
  2150. type: string
  2151. name:
  2152. description: Name is the name of resource being referenced
  2153. type: string
  2154. required:
  2155. - kind
  2156. - name
  2157. type: object
  2158. x-kubernetes-map-type: atomic
  2159. dataSourceRef:
  2160. description: |-
  2161. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2162. volume is desired. This may be any object from a non-empty API group (non
  2163. core object) or a PersistentVolumeClaim object.
  2164. When this field is specified, volume binding will only succeed if the type of
  2165. the specified object matches some installed volume populator or dynamic
  2166. provisioner.
  2167. This field will replace the functionality of the dataSource field and as such
  2168. if both fields are non-empty, they must have the same value. For backwards
  2169. compatibility, when namespace isn't specified in dataSourceRef,
  2170. both fields (dataSource and dataSourceRef) will be set to the same
  2171. value automatically if one of them is empty and the other is non-empty.
  2172. When namespace is specified in dataSourceRef,
  2173. dataSource isn't set to the same value and must be empty.
  2174. There are three important differences between dataSource and dataSourceRef:
  2175. * While dataSource only allows two specific types of objects, dataSourceRef
  2176. allows any non-core object, as well as PersistentVolumeClaim objects.
  2177. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2178. preserves all values, and generates an error if a disallowed value is
  2179. specified.
  2180. * While dataSource only allows local objects, dataSourceRef allows objects
  2181. in any namespaces.
  2182. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2183. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2184. properties:
  2185. apiGroup:
  2186. description: |-
  2187. APIGroup is the group for the resource being referenced.
  2188. If APIGroup is not specified, the specified Kind must be in the core API group.
  2189. For any other third-party types, APIGroup is required.
  2190. type: string
  2191. kind:
  2192. description: Kind is the type of resource being referenced
  2193. type: string
  2194. name:
  2195. description: Name is the name of resource being referenced
  2196. type: string
  2197. namespace:
  2198. description: |-
  2199. Namespace is the namespace of resource being referenced
  2200. 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.
  2201. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2202. type: string
  2203. required:
  2204. - kind
  2205. - name
  2206. type: object
  2207. resources:
  2208. description: |-
  2209. resources represents the minimum resources the volume should have.
  2210. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  2211. that are lower than previous value but must still be higher than capacity recorded in the
  2212. status field of the claim.
  2213. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  2214. properties:
  2215. limits:
  2216. additionalProperties:
  2217. anyOf:
  2218. - type: integer
  2219. - type: string
  2220. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2221. x-kubernetes-int-or-string: true
  2222. description: |-
  2223. Limits describes the maximum amount of compute resources allowed.
  2224. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2225. type: object
  2226. requests:
  2227. additionalProperties:
  2228. anyOf:
  2229. - type: integer
  2230. - type: string
  2231. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2232. x-kubernetes-int-or-string: true
  2233. description: |-
  2234. Requests describes the minimum amount of compute resources required.
  2235. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  2236. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  2237. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2238. type: object
  2239. type: object
  2240. selector:
  2241. description: selector is a label query over volumes to consider for binding.
  2242. properties:
  2243. matchExpressions:
  2244. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2245. items:
  2246. description: |-
  2247. A label selector requirement is a selector that contains values, a key, and an operator that
  2248. relates the key and values.
  2249. properties:
  2250. key:
  2251. description: key is the label key that the selector applies to.
  2252. type: string
  2253. operator:
  2254. description: |-
  2255. operator represents a key's relationship to a set of values.
  2256. Valid operators are In, NotIn, Exists and DoesNotExist.
  2257. type: string
  2258. values:
  2259. description: |-
  2260. values is an array of string values. If the operator is In or NotIn,
  2261. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2262. the values array must be empty. This array is replaced during a strategic
  2263. merge patch.
  2264. items:
  2265. type: string
  2266. type: array
  2267. x-kubernetes-list-type: atomic
  2268. required:
  2269. - key
  2270. - operator
  2271. type: object
  2272. type: array
  2273. x-kubernetes-list-type: atomic
  2274. matchLabels:
  2275. additionalProperties:
  2276. type: string
  2277. description: |-
  2278. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2279. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2280. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2281. type: object
  2282. type: object
  2283. x-kubernetes-map-type: atomic
  2284. storageClassName:
  2285. description: |-
  2286. storageClassName is the name of the StorageClass required by the claim.
  2287. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  2288. type: string
  2289. volumeAttributesClassName:
  2290. description: |-
  2291. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  2292. If specified, the CSI driver will create or update the volume with the attributes defined
  2293. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  2294. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  2295. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  2296. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  2297. will be set by the persistentvolume controller if it exists.
  2298. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  2299. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  2300. exists.
  2301. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  2302. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  2303. type: string
  2304. volumeMode:
  2305. description: |-
  2306. volumeMode defines what type of volume is required by the claim.
  2307. Value of Filesystem is implied when not included in claim spec.
  2308. type: string
  2309. volumeName:
  2310. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2311. type: string
  2312. type: object
  2313. type: object
  2314. x-kubernetes-preserve-unknown-fields: true
  2315. type: object
  2316. nullable: true
  2317. type: array
  2318. type: object
  2319. volumeClaimTemplate:
  2320. description: VolumeClaimTemplate is the PVC definition
  2321. properties:
  2322. metadata:
  2323. description: |-
  2324. Standard object's metadata.
  2325. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  2326. properties:
  2327. annotations:
  2328. additionalProperties:
  2329. type: string
  2330. type: object
  2331. finalizers:
  2332. items:
  2333. type: string
  2334. type: array
  2335. labels:
  2336. additionalProperties:
  2337. type: string
  2338. type: object
  2339. name:
  2340. type: string
  2341. namespace:
  2342. type: string
  2343. type: object
  2344. spec:
  2345. description: |-
  2346. spec defines the desired characteristics of a volume requested by a pod author.
  2347. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2348. properties:
  2349. accessModes:
  2350. description: |-
  2351. accessModes contains the desired access modes the volume should have.
  2352. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2353. items:
  2354. type: string
  2355. type: array
  2356. x-kubernetes-list-type: atomic
  2357. dataSource:
  2358. description: |-
  2359. dataSource field can be used to specify either:
  2360. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2361. * An existing PVC (PersistentVolumeClaim)
  2362. If the provisioner or an external controller can support the specified data source,
  2363. it will create a new volume based on the contents of the specified data source.
  2364. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2365. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2366. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2367. properties:
  2368. apiGroup:
  2369. description: |-
  2370. APIGroup is the group for the resource being referenced.
  2371. If APIGroup is not specified, the specified Kind must be in the core API group.
  2372. For any other third-party types, APIGroup is required.
  2373. type: string
  2374. kind:
  2375. description: Kind is the type of resource being referenced
  2376. type: string
  2377. name:
  2378. description: Name is the name of resource being referenced
  2379. type: string
  2380. required:
  2381. - kind
  2382. - name
  2383. type: object
  2384. x-kubernetes-map-type: atomic
  2385. dataSourceRef:
  2386. description: |-
  2387. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2388. volume is desired. This may be any object from a non-empty API group (non
  2389. core object) or a PersistentVolumeClaim object.
  2390. When this field is specified, volume binding will only succeed if the type of
  2391. the specified object matches some installed volume populator or dynamic
  2392. provisioner.
  2393. This field will replace the functionality of the dataSource field and as such
  2394. if both fields are non-empty, they must have the same value. For backwards
  2395. compatibility, when namespace isn't specified in dataSourceRef,
  2396. both fields (dataSource and dataSourceRef) will be set to the same
  2397. value automatically if one of them is empty and the other is non-empty.
  2398. When namespace is specified in dataSourceRef,
  2399. dataSource isn't set to the same value and must be empty.
  2400. There are three important differences between dataSource and dataSourceRef:
  2401. * While dataSource only allows two specific types of objects, dataSourceRef
  2402. allows any non-core object, as well as PersistentVolumeClaim objects.
  2403. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2404. preserves all values, and generates an error if a disallowed value is
  2405. specified.
  2406. * While dataSource only allows local objects, dataSourceRef allows objects
  2407. in any namespaces.
  2408. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2409. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2410. properties:
  2411. apiGroup:
  2412. description: |-
  2413. APIGroup is the group for the resource being referenced.
  2414. If APIGroup is not specified, the specified Kind must be in the core API group.
  2415. For any other third-party types, APIGroup is required.
  2416. type: string
  2417. kind:
  2418. description: Kind is the type of resource being referenced
  2419. type: string
  2420. name:
  2421. description: Name is the name of resource being referenced
  2422. type: string
  2423. namespace:
  2424. description: |-
  2425. Namespace is the namespace of resource being referenced
  2426. 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.
  2427. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2428. type: string
  2429. required:
  2430. - kind
  2431. - name
  2432. type: object
  2433. resources:
  2434. description: |-
  2435. resources represents the minimum resources the volume should have.
  2436. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  2437. that are lower than previous value but must still be higher than capacity recorded in the
  2438. status field of the claim.
  2439. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  2440. properties:
  2441. limits:
  2442. additionalProperties:
  2443. anyOf:
  2444. - type: integer
  2445. - type: string
  2446. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2447. x-kubernetes-int-or-string: true
  2448. description: |-
  2449. Limits describes the maximum amount of compute resources allowed.
  2450. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2451. type: object
  2452. requests:
  2453. additionalProperties:
  2454. anyOf:
  2455. - type: integer
  2456. - type: string
  2457. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2458. x-kubernetes-int-or-string: true
  2459. description: |-
  2460. Requests describes the minimum amount of compute resources required.
  2461. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  2462. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  2463. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2464. type: object
  2465. type: object
  2466. selector:
  2467. description: selector is a label query over volumes to consider for binding.
  2468. properties:
  2469. matchExpressions:
  2470. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2471. items:
  2472. description: |-
  2473. A label selector requirement is a selector that contains values, a key, and an operator that
  2474. relates the key and values.
  2475. properties:
  2476. key:
  2477. description: key is the label key that the selector applies to.
  2478. type: string
  2479. operator:
  2480. description: |-
  2481. operator represents a key's relationship to a set of values.
  2482. Valid operators are In, NotIn, Exists and DoesNotExist.
  2483. type: string
  2484. values:
  2485. description: |-
  2486. values is an array of string values. If the operator is In or NotIn,
  2487. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2488. the values array must be empty. This array is replaced during a strategic
  2489. merge patch.
  2490. items:
  2491. type: string
  2492. type: array
  2493. x-kubernetes-list-type: atomic
  2494. required:
  2495. - key
  2496. - operator
  2497. type: object
  2498. type: array
  2499. x-kubernetes-list-type: atomic
  2500. matchLabels:
  2501. additionalProperties:
  2502. type: string
  2503. description: |-
  2504. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2505. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2506. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2507. type: object
  2508. type: object
  2509. x-kubernetes-map-type: atomic
  2510. storageClassName:
  2511. description: |-
  2512. storageClassName is the name of the StorageClass required by the claim.
  2513. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  2514. type: string
  2515. volumeAttributesClassName:
  2516. description: |-
  2517. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  2518. If specified, the CSI driver will create or update the volume with the attributes defined
  2519. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  2520. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  2521. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  2522. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  2523. will be set by the persistentvolume controller if it exists.
  2524. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  2525. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  2526. exists.
  2527. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  2528. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  2529. type: string
  2530. volumeMode:
  2531. description: |-
  2532. volumeMode defines what type of volume is required by the claim.
  2533. Value of Filesystem is implied when not included in claim spec.
  2534. type: string
  2535. volumeName:
  2536. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2537. type: string
  2538. type: object
  2539. type: object
  2540. x-kubernetes-preserve-unknown-fields: true
  2541. zones:
  2542. description: Zones are specified when we want to provide zonal awareness to mons
  2543. items:
  2544. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  2545. properties:
  2546. arbiter:
  2547. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  2548. type: boolean
  2549. name:
  2550. description: Name is the name of the zone
  2551. type: string
  2552. volumeClaimTemplate:
  2553. description: VolumeClaimTemplate is the PVC template
  2554. properties:
  2555. metadata:
  2556. description: |-
  2557. Standard object's metadata.
  2558. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  2559. properties:
  2560. annotations:
  2561. additionalProperties:
  2562. type: string
  2563. type: object
  2564. finalizers:
  2565. items:
  2566. type: string
  2567. type: array
  2568. labels:
  2569. additionalProperties:
  2570. type: string
  2571. type: object
  2572. name:
  2573. type: string
  2574. namespace:
  2575. type: string
  2576. type: object
  2577. spec:
  2578. description: |-
  2579. spec defines the desired characteristics of a volume requested by a pod author.
  2580. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  2581. properties:
  2582. accessModes:
  2583. description: |-
  2584. accessModes contains the desired access modes the volume should have.
  2585. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2586. items:
  2587. type: string
  2588. type: array
  2589. x-kubernetes-list-type: atomic
  2590. dataSource:
  2591. description: |-
  2592. dataSource field can be used to specify either:
  2593. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2594. * An existing PVC (PersistentVolumeClaim)
  2595. If the provisioner or an external controller can support the specified data source,
  2596. it will create a new volume based on the contents of the specified data source.
  2597. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2598. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2599. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2600. properties:
  2601. apiGroup:
  2602. description: |-
  2603. APIGroup is the group for the resource being referenced.
  2604. If APIGroup is not specified, the specified Kind must be in the core API group.
  2605. For any other third-party types, APIGroup is required.
  2606. type: string
  2607. kind:
  2608. description: Kind is the type of resource being referenced
  2609. type: string
  2610. name:
  2611. description: Name is the name of resource being referenced
  2612. type: string
  2613. required:
  2614. - kind
  2615. - name
  2616. type: object
  2617. x-kubernetes-map-type: atomic
  2618. dataSourceRef:
  2619. description: |-
  2620. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2621. volume is desired. This may be any object from a non-empty API group (non
  2622. core object) or a PersistentVolumeClaim object.
  2623. When this field is specified, volume binding will only succeed if the type of
  2624. the specified object matches some installed volume populator or dynamic
  2625. provisioner.
  2626. This field will replace the functionality of the dataSource field and as such
  2627. if both fields are non-empty, they must have the same value. For backwards
  2628. compatibility, when namespace isn't specified in dataSourceRef,
  2629. both fields (dataSource and dataSourceRef) will be set to the same
  2630. value automatically if one of them is empty and the other is non-empty.
  2631. When namespace is specified in dataSourceRef,
  2632. dataSource isn't set to the same value and must be empty.
  2633. There are three important differences between dataSource and dataSourceRef:
  2634. * While dataSource only allows two specific types of objects, dataSourceRef
  2635. allows any non-core object, as well as PersistentVolumeClaim objects.
  2636. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2637. preserves all values, and generates an error if a disallowed value is
  2638. specified.
  2639. * While dataSource only allows local objects, dataSourceRef allows objects
  2640. in any namespaces.
  2641. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2642. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2643. properties:
  2644. apiGroup:
  2645. description: |-
  2646. APIGroup is the group for the resource being referenced.
  2647. If APIGroup is not specified, the specified Kind must be in the core API group.
  2648. For any other third-party types, APIGroup is required.
  2649. type: string
  2650. kind:
  2651. description: Kind is the type of resource being referenced
  2652. type: string
  2653. name:
  2654. description: Name is the name of resource being referenced
  2655. type: string
  2656. namespace:
  2657. description: |-
  2658. Namespace is the namespace of resource being referenced
  2659. 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.
  2660. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2661. type: string
  2662. required:
  2663. - kind
  2664. - name
  2665. type: object
  2666. resources:
  2667. description: |-
  2668. resources represents the minimum resources the volume should have.
  2669. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  2670. that are lower than previous value but must still be higher than capacity recorded in the
  2671. status field of the claim.
  2672. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  2673. properties:
  2674. limits:
  2675. additionalProperties:
  2676. anyOf:
  2677. - type: integer
  2678. - type: string
  2679. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2680. x-kubernetes-int-or-string: true
  2681. description: |-
  2682. Limits describes the maximum amount of compute resources allowed.
  2683. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2684. type: object
  2685. requests:
  2686. additionalProperties:
  2687. anyOf:
  2688. - type: integer
  2689. - type: string
  2690. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2691. x-kubernetes-int-or-string: true
  2692. description: |-
  2693. Requests describes the minimum amount of compute resources required.
  2694. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  2695. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  2696. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  2697. type: object
  2698. type: object
  2699. selector:
  2700. description: selector is a label query over volumes to consider for binding.
  2701. properties:
  2702. matchExpressions:
  2703. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2704. items:
  2705. description: |-
  2706. A label selector requirement is a selector that contains values, a key, and an operator that
  2707. relates the key and values.
  2708. properties:
  2709. key:
  2710. description: key is the label key that the selector applies to.
  2711. type: string
  2712. operator:
  2713. description: |-
  2714. operator represents a key's relationship to a set of values.
  2715. Valid operators are In, NotIn, Exists and DoesNotExist.
  2716. type: string
  2717. values:
  2718. description: |-
  2719. values is an array of string values. If the operator is In or NotIn,
  2720. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  2721. the values array must be empty. This array is replaced during a strategic
  2722. merge patch.
  2723. items:
  2724. type: string
  2725. type: array
  2726. x-kubernetes-list-type: atomic
  2727. required:
  2728. - key
  2729. - operator
  2730. type: object
  2731. type: array
  2732. x-kubernetes-list-type: atomic
  2733. matchLabels:
  2734. additionalProperties:
  2735. type: string
  2736. description: |-
  2737. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  2738. map is equivalent to an element of matchExpressions, whose key field is "key", the
  2739. operator is "In", and the values array contains only "value". The requirements are ANDed.
  2740. type: object
  2741. type: object
  2742. x-kubernetes-map-type: atomic
  2743. storageClassName:
  2744. description: |-
  2745. storageClassName is the name of the StorageClass required by the claim.
  2746. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  2747. type: string
  2748. volumeAttributesClassName:
  2749. description: |-
  2750. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  2751. If specified, the CSI driver will create or update the volume with the attributes defined
  2752. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  2753. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  2754. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  2755. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  2756. will be set by the persistentvolume controller if it exists.
  2757. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  2758. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  2759. exists.
  2760. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  2761. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  2762. type: string
  2763. volumeMode:
  2764. description: |-
  2765. volumeMode defines what type of volume is required by the claim.
  2766. Value of Filesystem is implied when not included in claim spec.
  2767. type: string
  2768. volumeName:
  2769. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2770. type: string
  2771. type: object
  2772. type: object
  2773. x-kubernetes-preserve-unknown-fields: true
  2774. type: object
  2775. type: array
  2776. type: object
  2777. x-kubernetes-validations:
  2778. - message: zones must be less than or equal to count
  2779. rule: '!has(self.zones) || (has(self.zones) && (size(self.zones) <= self.count))'
  2780. - message: stretchCluster zones must be equal to 3
  2781. rule: '!has(self.stretchCluster) || (has(self.stretchCluster) && (size(self.stretchCluster.zones) > 0) && (size(self.stretchCluster.zones) == 3))'
  2782. monitoring:
  2783. description: Prometheus based Monitoring settings
  2784. nullable: true
  2785. properties:
  2786. enabled:
  2787. description: |-
  2788. Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus
  2789. types must exist or the creation will fail. Default is false.
  2790. type: boolean
  2791. exporter:
  2792. description: Ceph exporter configuration
  2793. properties:
  2794. hostNetwork:
  2795. description: Whether host networking is enabled for CephExporter. If not set, the network settings from CephCluster.spec.networking will be applied.
  2796. nullable: true
  2797. type: boolean
  2798. perfCountersPrioLimit:
  2799. default: 5
  2800. description: Only performance counters greater than or equal to this option are fetched
  2801. format: int64
  2802. type: integer
  2803. statsPeriodSeconds:
  2804. default: 5
  2805. description: Time to wait before sending requests again to exporter server (seconds)
  2806. format: int64
  2807. type: integer
  2808. type: object
  2809. externalMgrEndpoints:
  2810. description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
  2811. items:
  2812. description: EndpointAddress is a tuple that describes single IP address.
  2813. properties:
  2814. hostname:
  2815. description: The Hostname of this endpoint
  2816. type: string
  2817. ip:
  2818. description: |-
  2819. The IP of this endpoint.
  2820. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10),
  2821. or link-local multicast (224.0.0.0/24 or ff02::/16).
  2822. type: string
  2823. nodeName:
  2824. description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.'
  2825. type: string
  2826. targetRef:
  2827. description: Reference to object providing the endpoint.
  2828. properties:
  2829. apiVersion:
  2830. description: API version of the referent.
  2831. type: string
  2832. fieldPath:
  2833. description: |-
  2834. If referring to a piece of an object instead of an entire object, this string
  2835. should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  2836. For example, if the object reference is to a container within a pod, this would take on a value like:
  2837. "spec.containers{name}" (where "name" refers to the name of the container that triggered
  2838. the event) or if no container name is specified "spec.containers[2]" (container with
  2839. index 2 in this pod). This syntax is chosen only to have some well-defined way of
  2840. referencing a part of an object.
  2841. type: string
  2842. kind:
  2843. description: |-
  2844. Kind of the referent.
  2845. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  2846. type: string
  2847. name:
  2848. description: |-
  2849. Name of the referent.
  2850. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2851. type: string
  2852. namespace:
  2853. description: |-
  2854. Namespace of the referent.
  2855. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  2856. type: string
  2857. resourceVersion:
  2858. description: |-
  2859. Specific resourceVersion to which this reference is made, if any.
  2860. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  2861. type: string
  2862. uid:
  2863. description: |-
  2864. UID of the referent.
  2865. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
  2866. type: string
  2867. type: object
  2868. x-kubernetes-map-type: atomic
  2869. required:
  2870. - ip
  2871. type: object
  2872. x-kubernetes-map-type: atomic
  2873. nullable: true
  2874. type: array
  2875. externalMgrPrometheusPort:
  2876. description: ExternalMgrPrometheusPort Prometheus exporter port
  2877. maximum: 65535
  2878. minimum: 0
  2879. type: integer
  2880. interval:
  2881. description: Interval determines prometheus scrape interval
  2882. type: string
  2883. metricsDisabled:
  2884. description: |-
  2885. Whether to disable the metrics reported by Ceph. If false, the prometheus mgr module and Ceph exporter are enabled.
  2886. If true, the prometheus mgr module and Ceph exporter are both disabled. Default is false.
  2887. type: boolean
  2888. port:
  2889. description: Port is the prometheus server port
  2890. maximum: 65535
  2891. minimum: 0
  2892. type: integer
  2893. type: object
  2894. network:
  2895. description: Network related configuration
  2896. nullable: true
  2897. properties:
  2898. addressRanges:
  2899. description: |-
  2900. AddressRanges specify a list of CIDRs that Rook will apply to Ceph's 'public_network' and/or
  2901. 'cluster_network' configurations. This config section may be used for the "host" or "multus"
  2902. network providers.
  2903. nullable: true
  2904. properties:
  2905. cluster:
  2906. description: Cluster defines a list of CIDRs to use for Ceph cluster network communication.
  2907. items:
  2908. description: |-
  2909. An IPv4 or IPv6 network CIDR.
  2910. This naive kubebuilder regex provides immediate feedback for some typos and for a common problem
  2911. case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code.
  2912. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2913. type: string
  2914. type: array
  2915. public:
  2916. description: Public defines a list of CIDRs to use for Ceph public network communication.
  2917. items:
  2918. description: |-
  2919. An IPv4 or IPv6 network CIDR.
  2920. This naive kubebuilder regex provides immediate feedback for some typos and for a common problem
  2921. case where the range spec is forgotten (e.g., /24). Rook does in-depth validation in code.
  2922. pattern: ^[0-9a-fA-F:.]{2,}\/[0-9]{1,3}$
  2923. type: string
  2924. type: array
  2925. type: object
  2926. connections:
  2927. description: |-
  2928. Settings for network connections such as compression and encryption across the
  2929. wire.
  2930. nullable: true
  2931. properties:
  2932. compression:
  2933. description: Compression settings for the network connections.
  2934. nullable: true
  2935. properties:
  2936. enabled:
  2937. description: |-
  2938. Whether to compress the data in transit across the wire.
  2939. The default is not set.
  2940. type: boolean
  2941. type: object
  2942. encryption:
  2943. description: Encryption settings for the network connections.
  2944. nullable: true
  2945. properties:
  2946. enabled:
  2947. description: |-
  2948. Whether to encrypt the data in transit across the wire to prevent eavesdropping
  2949. the data on the network. The default is not set. Even if encryption is not enabled,
  2950. clients still establish a strong initial authentication for the connection
  2951. and data integrity is still validated with a crc check. When encryption is enabled,
  2952. all communication between clients and Ceph daemons, or between Ceph daemons will
  2953. be encrypted.
  2954. type: boolean
  2955. type: object
  2956. requireMsgr2:
  2957. description: |-
  2958. Whether to require msgr2 (port 3300) even if compression or encryption are not enabled.
  2959. If true, the msgr1 port (6789) will be disabled.
  2960. Requires a kernel that supports msgr2 (kernel 5.11 or CentOS 8.4 or newer).
  2961. type: boolean
  2962. type: object
  2963. dualStack:
  2964. description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
  2965. type: boolean
  2966. hostNetwork:
  2967. description: |-
  2968. HostNetwork to enable host network.
  2969. If host networking is enabled or disabled on a running cluster, then the operator will automatically fail over all the mons to
  2970. apply the new network settings.
  2971. type: boolean
  2972. ipFamily:
  2973. description: IPFamily is the single stack IPv6 or IPv4 protocol
  2974. enum:
  2975. - IPv4
  2976. - IPv6
  2977. nullable: true
  2978. type: string
  2979. multiClusterService:
  2980. description: Enable multiClusterService to export the Services between peer clusters
  2981. properties:
  2982. clusterID:
  2983. description: |-
  2984. ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported
  2985. services. For example: <clusterid>.<svc>.<ns>.svc.clusterset.local
  2986. type: string
  2987. enabled:
  2988. description: |-
  2989. Enable multiClusterService to export the mon and OSD services to peer cluster.
  2990. Ensure that peer clusters are connected using an MCS API compatible application,
  2991. like Globalnet Submariner.
  2992. type: boolean
  2993. type: object
  2994. provider:
  2995. description: |-
  2996. Provider is what provides network connectivity to the cluster e.g. "host" or "multus".
  2997. If the Provider is updated from being empty to "host" on a running cluster, then the operator will automatically fail over all the mons to apply the "host" network settings.
  2998. enum:
  2999. - ""
  3000. - host
  3001. - multus
  3002. nullable: true
  3003. type: string
  3004. x-kubernetes-validations:
  3005. - message: network provider must be disabled (reverted to empty string) before a new provider is enabled
  3006. rule: self == '' || oldSelf == '' || self == oldSelf
  3007. selectors:
  3008. additionalProperties:
  3009. type: string
  3010. description: |-
  3011. Selectors define NetworkAttachmentDefinitions to be used for Ceph public and/or cluster
  3012. networks when the "multus" network provider is used. This config section is not used for
  3013. other network providers.
  3014. Valid keys are "public" and "cluster". Refer to Ceph networking documentation for more:
  3015. https://docs.ceph.com/en/latest/rados/configuration/network-config-ref/
  3016. Refer to Multus network annotation documentation for help selecting values:
  3017. https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/docs/how-to-use.md#run-pod-with-network-annotation
  3018. Rook will make a best-effort attempt to automatically detect CIDR address ranges for given
  3019. network attachment definitions. Rook's methods are robust but may be imprecise for
  3020. sufficiently complicated networks. Rook's auto-detection process obtains a new IP address
  3021. lease for each CephCluster reconcile. If Rook fails to detect, incorrectly detects, only
  3022. partially detects, or if underlying networks do not support reusing old IP addresses, it is
  3023. best to use the 'addressRanges' config section to specify CIDR ranges for the Ceph cluster.
  3024. As a contrived example, one can use a theoretical Kubernetes-wide network for Ceph client
  3025. traffic and a theoretical Rook-only network for Ceph replication traffic as shown:
  3026. selectors:
  3027. public: "default/cluster-fast-net"
  3028. cluster: "rook-ceph/ceph-backend-net"
  3029. nullable: true
  3030. type: object
  3031. type: object
  3032. x-kubernetes-preserve-unknown-fields: true
  3033. x-kubernetes-validations:
  3034. - message: at least one network selector must be specified when using multus
  3035. rule: '!has(self.provider) || (self.provider != ''multus'' || (self.provider == ''multus'' && size(self.selectors) > 0))'
  3036. - message: the legacy hostNetwork setting can only be set if the network.provider is set to the empty string
  3037. rule: '!has(self.hostNetwork) || self.hostNetwork == false || !has(self.provider) || self.provider == ""'
  3038. placement:
  3039. additionalProperties:
  3040. properties:
  3041. nodeAffinity:
  3042. properties:
  3043. preferredDuringSchedulingIgnoredDuringExecution:
  3044. items:
  3045. properties:
  3046. preference:
  3047. properties:
  3048. matchExpressions:
  3049. items:
  3050. properties:
  3051. key:
  3052. type: string
  3053. operator:
  3054. type: string
  3055. values:
  3056. items:
  3057. type: string
  3058. type: array
  3059. x-kubernetes-list-type: atomic
  3060. required:
  3061. - key
  3062. - operator
  3063. type: object
  3064. type: array
  3065. x-kubernetes-list-type: atomic
  3066. matchFields:
  3067. items:
  3068. properties:
  3069. key:
  3070. type: string
  3071. operator:
  3072. type: string
  3073. values:
  3074. items:
  3075. type: string
  3076. type: array
  3077. x-kubernetes-list-type: atomic
  3078. required:
  3079. - key
  3080. - operator
  3081. type: object
  3082. type: array
  3083. x-kubernetes-list-type: atomic
  3084. type: object
  3085. x-kubernetes-map-type: atomic
  3086. weight:
  3087. format: int32
  3088. type: integer
  3089. required:
  3090. - preference
  3091. - weight
  3092. type: object
  3093. type: array
  3094. x-kubernetes-list-type: atomic
  3095. requiredDuringSchedulingIgnoredDuringExecution:
  3096. properties:
  3097. nodeSelectorTerms:
  3098. items:
  3099. properties:
  3100. matchExpressions:
  3101. items:
  3102. properties:
  3103. key:
  3104. type: string
  3105. operator:
  3106. type: string
  3107. values:
  3108. items:
  3109. type: string
  3110. type: array
  3111. x-kubernetes-list-type: atomic
  3112. required:
  3113. - key
  3114. - operator
  3115. type: object
  3116. type: array
  3117. x-kubernetes-list-type: atomic
  3118. matchFields:
  3119. items:
  3120. properties:
  3121. key:
  3122. type: string
  3123. operator:
  3124. type: string
  3125. values:
  3126. items:
  3127. type: string
  3128. type: array
  3129. x-kubernetes-list-type: atomic
  3130. required:
  3131. - key
  3132. - operator
  3133. type: object
  3134. type: array
  3135. x-kubernetes-list-type: atomic
  3136. type: object
  3137. x-kubernetes-map-type: atomic
  3138. type: array
  3139. x-kubernetes-list-type: atomic
  3140. required:
  3141. - nodeSelectorTerms
  3142. type: object
  3143. x-kubernetes-map-type: atomic
  3144. type: object
  3145. podAffinity:
  3146. properties:
  3147. preferredDuringSchedulingIgnoredDuringExecution:
  3148. items:
  3149. properties:
  3150. podAffinityTerm:
  3151. properties:
  3152. labelSelector:
  3153. properties:
  3154. matchExpressions:
  3155. items:
  3156. properties:
  3157. key:
  3158. type: string
  3159. operator:
  3160. type: string
  3161. values:
  3162. items:
  3163. type: string
  3164. type: array
  3165. x-kubernetes-list-type: atomic
  3166. required:
  3167. - key
  3168. - operator
  3169. type: object
  3170. type: array
  3171. x-kubernetes-list-type: atomic
  3172. matchLabels:
  3173. additionalProperties:
  3174. type: string
  3175. type: object
  3176. type: object
  3177. x-kubernetes-map-type: atomic
  3178. matchLabelKeys:
  3179. items:
  3180. type: string
  3181. type: array
  3182. x-kubernetes-list-type: atomic
  3183. mismatchLabelKeys:
  3184. items:
  3185. type: string
  3186. type: array
  3187. x-kubernetes-list-type: atomic
  3188. namespaceSelector:
  3189. properties:
  3190. matchExpressions:
  3191. items:
  3192. properties:
  3193. key:
  3194. type: string
  3195. operator:
  3196. type: string
  3197. values:
  3198. items:
  3199. type: string
  3200. type: array
  3201. x-kubernetes-list-type: atomic
  3202. required:
  3203. - key
  3204. - operator
  3205. type: object
  3206. type: array
  3207. x-kubernetes-list-type: atomic
  3208. matchLabels:
  3209. additionalProperties:
  3210. type: string
  3211. type: object
  3212. type: object
  3213. x-kubernetes-map-type: atomic
  3214. namespaces:
  3215. items:
  3216. type: string
  3217. type: array
  3218. x-kubernetes-list-type: atomic
  3219. topologyKey:
  3220. type: string
  3221. required:
  3222. - topologyKey
  3223. type: object
  3224. weight:
  3225. format: int32
  3226. type: integer
  3227. required:
  3228. - podAffinityTerm
  3229. - weight
  3230. type: object
  3231. type: array
  3232. x-kubernetes-list-type: atomic
  3233. requiredDuringSchedulingIgnoredDuringExecution:
  3234. items:
  3235. properties:
  3236. labelSelector:
  3237. properties:
  3238. matchExpressions:
  3239. items:
  3240. properties:
  3241. key:
  3242. type: string
  3243. operator:
  3244. type: string
  3245. values:
  3246. items:
  3247. type: string
  3248. type: array
  3249. x-kubernetes-list-type: atomic
  3250. required:
  3251. - key
  3252. - operator
  3253. type: object
  3254. type: array
  3255. x-kubernetes-list-type: atomic
  3256. matchLabels:
  3257. additionalProperties:
  3258. type: string
  3259. type: object
  3260. type: object
  3261. x-kubernetes-map-type: atomic
  3262. matchLabelKeys:
  3263. items:
  3264. type: string
  3265. type: array
  3266. x-kubernetes-list-type: atomic
  3267. mismatchLabelKeys:
  3268. items:
  3269. type: string
  3270. type: array
  3271. x-kubernetes-list-type: atomic
  3272. namespaceSelector:
  3273. properties:
  3274. matchExpressions:
  3275. items:
  3276. properties:
  3277. key:
  3278. type: string
  3279. operator:
  3280. type: string
  3281. values:
  3282. items:
  3283. type: string
  3284. type: array
  3285. x-kubernetes-list-type: atomic
  3286. required:
  3287. - key
  3288. - operator
  3289. type: object
  3290. type: array
  3291. x-kubernetes-list-type: atomic
  3292. matchLabels:
  3293. additionalProperties:
  3294. type: string
  3295. type: object
  3296. type: object
  3297. x-kubernetes-map-type: atomic
  3298. namespaces:
  3299. items:
  3300. type: string
  3301. type: array
  3302. x-kubernetes-list-type: atomic
  3303. topologyKey:
  3304. type: string
  3305. required:
  3306. - topologyKey
  3307. type: object
  3308. type: array
  3309. x-kubernetes-list-type: atomic
  3310. type: object
  3311. podAntiAffinity:
  3312. properties:
  3313. preferredDuringSchedulingIgnoredDuringExecution:
  3314. items:
  3315. properties:
  3316. podAffinityTerm:
  3317. properties:
  3318. labelSelector:
  3319. properties:
  3320. matchExpressions:
  3321. items:
  3322. properties:
  3323. key:
  3324. type: string
  3325. operator:
  3326. type: string
  3327. values:
  3328. items:
  3329. type: string
  3330. type: array
  3331. x-kubernetes-list-type: atomic
  3332. required:
  3333. - key
  3334. - operator
  3335. type: object
  3336. type: array
  3337. x-kubernetes-list-type: atomic
  3338. matchLabels:
  3339. additionalProperties:
  3340. type: string
  3341. type: object
  3342. type: object
  3343. x-kubernetes-map-type: atomic
  3344. matchLabelKeys:
  3345. items:
  3346. type: string
  3347. type: array
  3348. x-kubernetes-list-type: atomic
  3349. mismatchLabelKeys:
  3350. items:
  3351. type: string
  3352. type: array
  3353. x-kubernetes-list-type: atomic
  3354. namespaceSelector:
  3355. properties:
  3356. matchExpressions:
  3357. items:
  3358. properties:
  3359. key:
  3360. type: string
  3361. operator:
  3362. type: string
  3363. values:
  3364. items:
  3365. type: string
  3366. type: array
  3367. x-kubernetes-list-type: atomic
  3368. required:
  3369. - key
  3370. - operator
  3371. type: object
  3372. type: array
  3373. x-kubernetes-list-type: atomic
  3374. matchLabels:
  3375. additionalProperties:
  3376. type: string
  3377. type: object
  3378. type: object
  3379. x-kubernetes-map-type: atomic
  3380. namespaces:
  3381. items:
  3382. type: string
  3383. type: array
  3384. x-kubernetes-list-type: atomic
  3385. topologyKey:
  3386. type: string
  3387. required:
  3388. - topologyKey
  3389. type: object
  3390. weight:
  3391. format: int32
  3392. type: integer
  3393. required:
  3394. - podAffinityTerm
  3395. - weight
  3396. type: object
  3397. type: array
  3398. x-kubernetes-list-type: atomic
  3399. requiredDuringSchedulingIgnoredDuringExecution:
  3400. items:
  3401. properties:
  3402. labelSelector:
  3403. properties:
  3404. matchExpressions:
  3405. items:
  3406. properties:
  3407. key:
  3408. type: string
  3409. operator:
  3410. type: string
  3411. values:
  3412. items:
  3413. type: string
  3414. type: array
  3415. x-kubernetes-list-type: atomic
  3416. required:
  3417. - key
  3418. - operator
  3419. type: object
  3420. type: array
  3421. x-kubernetes-list-type: atomic
  3422. matchLabels:
  3423. additionalProperties:
  3424. type: string
  3425. type: object
  3426. type: object
  3427. x-kubernetes-map-type: atomic
  3428. matchLabelKeys:
  3429. items:
  3430. type: string
  3431. type: array
  3432. x-kubernetes-list-type: atomic
  3433. mismatchLabelKeys:
  3434. items:
  3435. type: string
  3436. type: array
  3437. x-kubernetes-list-type: atomic
  3438. namespaceSelector:
  3439. properties:
  3440. matchExpressions:
  3441. items:
  3442. properties:
  3443. key:
  3444. type: string
  3445. operator:
  3446. type: string
  3447. values:
  3448. items:
  3449. type: string
  3450. type: array
  3451. x-kubernetes-list-type: atomic
  3452. required:
  3453. - key
  3454. - operator
  3455. type: object
  3456. type: array
  3457. x-kubernetes-list-type: atomic
  3458. matchLabels:
  3459. additionalProperties:
  3460. type: string
  3461. type: object
  3462. type: object
  3463. x-kubernetes-map-type: atomic
  3464. namespaces:
  3465. items:
  3466. type: string
  3467. type: array
  3468. x-kubernetes-list-type: atomic
  3469. topologyKey:
  3470. type: string
  3471. required:
  3472. - topologyKey
  3473. type: object
  3474. type: array
  3475. x-kubernetes-list-type: atomic
  3476. type: object
  3477. tolerations:
  3478. items:
  3479. properties:
  3480. effect:
  3481. type: string
  3482. key:
  3483. type: string
  3484. operator:
  3485. type: string
  3486. tolerationSeconds:
  3487. format: int64
  3488. type: integer
  3489. value:
  3490. type: string
  3491. type: object
  3492. type: array
  3493. topologySpreadConstraints:
  3494. items:
  3495. properties:
  3496. labelSelector:
  3497. properties:
  3498. matchExpressions:
  3499. items:
  3500. properties:
  3501. key:
  3502. type: string
  3503. operator:
  3504. type: string
  3505. values:
  3506. items:
  3507. type: string
  3508. type: array
  3509. x-kubernetes-list-type: atomic
  3510. required:
  3511. - key
  3512. - operator
  3513. type: object
  3514. type: array
  3515. x-kubernetes-list-type: atomic
  3516. matchLabels:
  3517. additionalProperties:
  3518. type: string
  3519. type: object
  3520. type: object
  3521. x-kubernetes-map-type: atomic
  3522. matchLabelKeys:
  3523. items:
  3524. type: string
  3525. type: array
  3526. x-kubernetes-list-type: atomic
  3527. maxSkew:
  3528. format: int32
  3529. type: integer
  3530. minDomains:
  3531. format: int32
  3532. type: integer
  3533. nodeAffinityPolicy:
  3534. type: string
  3535. nodeTaintsPolicy:
  3536. type: string
  3537. topologyKey:
  3538. type: string
  3539. whenUnsatisfiable:
  3540. type: string
  3541. required:
  3542. - maxSkew
  3543. - topologyKey
  3544. - whenUnsatisfiable
  3545. type: object
  3546. type: array
  3547. type: object
  3548. nullable: true
  3549. type: object
  3550. x-kubernetes-preserve-unknown-fields: true
  3551. priorityClassNames:
  3552. additionalProperties:
  3553. type: string
  3554. description: PriorityClassNames sets priority classes on components
  3555. nullable: true
  3556. type: object
  3557. x-kubernetes-preserve-unknown-fields: true
  3558. removeOSDsIfOutAndSafeToRemove:
  3559. description: Remove the OSD that is out and safe to remove only if this option is true
  3560. type: boolean
  3561. resources:
  3562. additionalProperties:
  3563. description: ResourceRequirements describes the compute resource requirements.
  3564. properties:
  3565. claims:
  3566. description: |-
  3567. Claims lists the names of resources, defined in spec.resourceClaims,
  3568. that are used by this container.
  3569. This is an alpha field and requires enabling the
  3570. DynamicResourceAllocation feature gate.
  3571. This field is immutable. It can only be set for containers.
  3572. items:
  3573. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3574. properties:
  3575. name:
  3576. description: |-
  3577. Name must match the name of one entry in pod.spec.resourceClaims of
  3578. the Pod where this field is used. It makes that resource available
  3579. inside a container.
  3580. type: string
  3581. request:
  3582. description: |-
  3583. Request is the name chosen for a request in the referenced claim.
  3584. If empty, everything from the claim is made available, otherwise
  3585. only the result of this request.
  3586. type: string
  3587. required:
  3588. - name
  3589. type: object
  3590. type: array
  3591. x-kubernetes-list-map-keys:
  3592. - name
  3593. x-kubernetes-list-type: map
  3594. limits:
  3595. additionalProperties:
  3596. anyOf:
  3597. - type: integer
  3598. - type: string
  3599. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3600. x-kubernetes-int-or-string: true
  3601. description: |-
  3602. Limits describes the maximum amount of compute resources allowed.
  3603. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3604. type: object
  3605. requests:
  3606. additionalProperties:
  3607. anyOf:
  3608. - type: integer
  3609. - type: string
  3610. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3611. x-kubernetes-int-or-string: true
  3612. description: |-
  3613. Requests describes the minimum amount of compute resources required.
  3614. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  3615. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  3616. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3617. type: object
  3618. type: object
  3619. description: Resources set resource requests and limits
  3620. nullable: true
  3621. type: object
  3622. x-kubernetes-preserve-unknown-fields: true
  3623. security:
  3624. description: Security represents security settings
  3625. nullable: true
  3626. properties:
  3627. keyRotation:
  3628. description: KeyRotation defines options for Key Rotation.
  3629. nullable: true
  3630. properties:
  3631. enabled:
  3632. default: false
  3633. description: Enabled represents whether the key rotation is enabled.
  3634. type: boolean
  3635. schedule:
  3636. description: Schedule represents the cron schedule for key rotation.
  3637. type: string
  3638. type: object
  3639. kms:
  3640. description: KeyManagementService is the main Key Management option
  3641. nullable: true
  3642. properties:
  3643. connectionDetails:
  3644. additionalProperties:
  3645. type: string
  3646. description: ConnectionDetails contains the KMS connection details (address, port etc)
  3647. nullable: true
  3648. type: object
  3649. x-kubernetes-preserve-unknown-fields: true
  3650. tokenSecretName:
  3651. description: TokenSecretName is the kubernetes secret containing the KMS token
  3652. type: string
  3653. type: object
  3654. type: object
  3655. skipUpgradeChecks:
  3656. description: SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
  3657. type: boolean
  3658. storage:
  3659. description: A spec for available storage in the cluster and how it should be used
  3660. nullable: true
  3661. properties:
  3662. allowDeviceClassUpdate:
  3663. description: Whether to allow updating the device class after the OSD is initially provisioned
  3664. type: boolean
  3665. allowOsdCrushWeightUpdate:
  3666. description: |-
  3667. Whether Rook will resize the OSD CRUSH weight when the OSD PVC size is increased.
  3668. This allows cluster data to be rebalanced to make most effective use of new OSD space.
  3669. The default is false since data rebalancing can cause temporary cluster slowdown.
  3670. type: boolean
  3671. backfillFullRatio:
  3672. description: BackfillFullRatio is the ratio at which the cluster is too full for backfill. Backfill will be disabled if above this threshold. Default is 0.90.
  3673. maximum: 1
  3674. minimum: 0
  3675. nullable: true
  3676. type: number
  3677. config:
  3678. additionalProperties:
  3679. type: string
  3680. nullable: true
  3681. type: object
  3682. x-kubernetes-preserve-unknown-fields: true
  3683. deviceFilter:
  3684. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3685. type: string
  3686. devicePathFilter:
  3687. description: A regular expression to allow more fine-grained selection of devices with path names
  3688. type: string
  3689. devices:
  3690. description: List of devices to use as storage devices
  3691. items:
  3692. description: Device represents a disk to use in the cluster
  3693. properties:
  3694. config:
  3695. additionalProperties:
  3696. type: string
  3697. nullable: true
  3698. type: object
  3699. x-kubernetes-preserve-unknown-fields: true
  3700. fullpath:
  3701. type: string
  3702. name:
  3703. type: string
  3704. type: object
  3705. nullable: true
  3706. type: array
  3707. x-kubernetes-preserve-unknown-fields: true
  3708. flappingRestartIntervalHours:
  3709. description: |-
  3710. FlappingRestartIntervalHours defines the time for which the OSD pods, that failed with zero exit code, will sleep before restarting.
  3711. This is needed for OSD flapping where OSD daemons are marked down more than 5 times in 600 seconds by Ceph.
  3712. Preventing the OSD pods to restart immediately in such scenarios will prevent Rook from marking OSD as `up` and thus
  3713. peering of the PGs mapped to the OSD.
  3714. User needs to manually restart the OSD pod if they manage to fix the underlying OSD flapping issue before the restart interval.
  3715. The sleep will be disabled if this interval is set to 0.
  3716. type: integer
  3717. fullRatio:
  3718. description: FullRatio is the ratio at which the cluster is considered full and ceph will stop accepting writes. Default is 0.95.
  3719. maximum: 1
  3720. minimum: 0
  3721. nullable: true
  3722. type: number
  3723. migration:
  3724. description: Migration handles the OSD migration
  3725. properties:
  3726. confirmation:
  3727. description: |-
  3728. A user confirmation to migrate the OSDs. It destroys each OSD one at a time, cleans up the backing disk
  3729. and prepares OSD with same ID on that disk
  3730. pattern: ^$|^yes-really-migrate-osds$
  3731. type: string
  3732. type: object
  3733. nearFullRatio:
  3734. description: NearFullRatio is the ratio at which the cluster is considered nearly full and will raise a ceph health warning. Default is 0.85.
  3735. maximum: 1
  3736. minimum: 0
  3737. nullable: true
  3738. type: number
  3739. nodes:
  3740. items:
  3741. description: Node is a storage nodes
  3742. properties:
  3743. config:
  3744. additionalProperties:
  3745. type: string
  3746. nullable: true
  3747. type: object
  3748. x-kubernetes-preserve-unknown-fields: true
  3749. deviceFilter:
  3750. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3751. type: string
  3752. devicePathFilter:
  3753. description: A regular expression to allow more fine-grained selection of devices with path names
  3754. type: string
  3755. devices:
  3756. description: List of devices to use as storage devices
  3757. items:
  3758. description: Device represents a disk to use in the cluster
  3759. properties:
  3760. config:
  3761. additionalProperties:
  3762. type: string
  3763. nullable: true
  3764. type: object
  3765. x-kubernetes-preserve-unknown-fields: true
  3766. fullpath:
  3767. type: string
  3768. name:
  3769. type: string
  3770. type: object
  3771. nullable: true
  3772. type: array
  3773. x-kubernetes-preserve-unknown-fields: true
  3774. name:
  3775. type: string
  3776. resources:
  3777. description: ResourceRequirements describes the compute resource requirements.
  3778. nullable: true
  3779. properties:
  3780. claims:
  3781. description: |-
  3782. Claims lists the names of resources, defined in spec.resourceClaims,
  3783. that are used by this container.
  3784. This is an alpha field and requires enabling the
  3785. DynamicResourceAllocation feature gate.
  3786. This field is immutable. It can only be set for containers.
  3787. items:
  3788. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3789. properties:
  3790. name:
  3791. description: |-
  3792. Name must match the name of one entry in pod.spec.resourceClaims of
  3793. the Pod where this field is used. It makes that resource available
  3794. inside a container.
  3795. type: string
  3796. request:
  3797. description: |-
  3798. Request is the name chosen for a request in the referenced claim.
  3799. If empty, everything from the claim is made available, otherwise
  3800. only the result of this request.
  3801. type: string
  3802. required:
  3803. - name
  3804. type: object
  3805. type: array
  3806. x-kubernetes-list-map-keys:
  3807. - name
  3808. x-kubernetes-list-type: map
  3809. limits:
  3810. additionalProperties:
  3811. anyOf:
  3812. - type: integer
  3813. - type: string
  3814. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3815. x-kubernetes-int-or-string: true
  3816. description: |-
  3817. Limits describes the maximum amount of compute resources allowed.
  3818. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3819. type: object
  3820. requests:
  3821. additionalProperties:
  3822. anyOf:
  3823. - type: integer
  3824. - type: string
  3825. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3826. x-kubernetes-int-or-string: true
  3827. description: |-
  3828. Requests describes the minimum amount of compute resources required.
  3829. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  3830. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  3831. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3832. type: object
  3833. type: object
  3834. x-kubernetes-preserve-unknown-fields: true
  3835. useAllDevices:
  3836. description: Whether to consume all the storage devices found on a machine
  3837. type: boolean
  3838. volumeClaimTemplates:
  3839. description: PersistentVolumeClaims to use as storage
  3840. items:
  3841. description: VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
  3842. properties:
  3843. metadata:
  3844. description: |-
  3845. Standard object's metadata.
  3846. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  3847. properties:
  3848. annotations:
  3849. additionalProperties:
  3850. type: string
  3851. type: object
  3852. finalizers:
  3853. items:
  3854. type: string
  3855. type: array
  3856. labels:
  3857. additionalProperties:
  3858. type: string
  3859. type: object
  3860. name:
  3861. type: string
  3862. namespace:
  3863. type: string
  3864. type: object
  3865. spec:
  3866. description: |-
  3867. spec defines the desired characteristics of a volume requested by a pod author.
  3868. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  3869. properties:
  3870. accessModes:
  3871. description: |-
  3872. accessModes contains the desired access modes the volume should have.
  3873. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  3874. items:
  3875. type: string
  3876. type: array
  3877. x-kubernetes-list-type: atomic
  3878. dataSource:
  3879. description: |-
  3880. dataSource field can be used to specify either:
  3881. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  3882. * An existing PVC (PersistentVolumeClaim)
  3883. If the provisioner or an external controller can support the specified data source,
  3884. it will create a new volume based on the contents of the specified data source.
  3885. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  3886. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  3887. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  3888. properties:
  3889. apiGroup:
  3890. description: |-
  3891. APIGroup is the group for the resource being referenced.
  3892. If APIGroup is not specified, the specified Kind must be in the core API group.
  3893. For any other third-party types, APIGroup is required.
  3894. type: string
  3895. kind:
  3896. description: Kind is the type of resource being referenced
  3897. type: string
  3898. name:
  3899. description: Name is the name of resource being referenced
  3900. type: string
  3901. required:
  3902. - kind
  3903. - name
  3904. type: object
  3905. x-kubernetes-map-type: atomic
  3906. dataSourceRef:
  3907. description: |-
  3908. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  3909. volume is desired. This may be any object from a non-empty API group (non
  3910. core object) or a PersistentVolumeClaim object.
  3911. When this field is specified, volume binding will only succeed if the type of
  3912. the specified object matches some installed volume populator or dynamic
  3913. provisioner.
  3914. This field will replace the functionality of the dataSource field and as such
  3915. if both fields are non-empty, they must have the same value. For backwards
  3916. compatibility, when namespace isn't specified in dataSourceRef,
  3917. both fields (dataSource and dataSourceRef) will be set to the same
  3918. value automatically if one of them is empty and the other is non-empty.
  3919. When namespace is specified in dataSourceRef,
  3920. dataSource isn't set to the same value and must be empty.
  3921. There are three important differences between dataSource and dataSourceRef:
  3922. * While dataSource only allows two specific types of objects, dataSourceRef
  3923. allows any non-core object, as well as PersistentVolumeClaim objects.
  3924. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  3925. preserves all values, and generates an error if a disallowed value is
  3926. specified.
  3927. * While dataSource only allows local objects, dataSourceRef allows objects
  3928. in any namespaces.
  3929. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  3930. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  3931. properties:
  3932. apiGroup:
  3933. description: |-
  3934. APIGroup is the group for the resource being referenced.
  3935. If APIGroup is not specified, the specified Kind must be in the core API group.
  3936. For any other third-party types, APIGroup is required.
  3937. type: string
  3938. kind:
  3939. description: Kind is the type of resource being referenced
  3940. type: string
  3941. name:
  3942. description: Name is the name of resource being referenced
  3943. type: string
  3944. namespace:
  3945. description: |-
  3946. Namespace is the namespace of resource being referenced
  3947. 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.
  3948. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  3949. type: string
  3950. required:
  3951. - kind
  3952. - name
  3953. type: object
  3954. resources:
  3955. description: |-
  3956. resources represents the minimum resources the volume should have.
  3957. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  3958. that are lower than previous value but must still be higher than capacity recorded in the
  3959. status field of the claim.
  3960. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  3961. properties:
  3962. limits:
  3963. additionalProperties:
  3964. anyOf:
  3965. - type: integer
  3966. - type: string
  3967. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3968. x-kubernetes-int-or-string: true
  3969. description: |-
  3970. Limits describes the maximum amount of compute resources allowed.
  3971. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3972. type: object
  3973. requests:
  3974. additionalProperties:
  3975. anyOf:
  3976. - type: integer
  3977. - type: string
  3978. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3979. x-kubernetes-int-or-string: true
  3980. description: |-
  3981. Requests describes the minimum amount of compute resources required.
  3982. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  3983. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  3984. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3985. type: object
  3986. type: object
  3987. selector:
  3988. description: selector is a label query over volumes to consider for binding.
  3989. properties:
  3990. matchExpressions:
  3991. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3992. items:
  3993. description: |-
  3994. A label selector requirement is a selector that contains values, a key, and an operator that
  3995. relates the key and values.
  3996. properties:
  3997. key:
  3998. description: key is the label key that the selector applies to.
  3999. type: string
  4000. operator:
  4001. description: |-
  4002. operator represents a key's relationship to a set of values.
  4003. Valid operators are In, NotIn, Exists and DoesNotExist.
  4004. type: string
  4005. values:
  4006. description: |-
  4007. values is an array of string values. If the operator is In or NotIn,
  4008. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  4009. the values array must be empty. This array is replaced during a strategic
  4010. merge patch.
  4011. items:
  4012. type: string
  4013. type: array
  4014. x-kubernetes-list-type: atomic
  4015. required:
  4016. - key
  4017. - operator
  4018. type: object
  4019. type: array
  4020. x-kubernetes-list-type: atomic
  4021. matchLabels:
  4022. additionalProperties:
  4023. type: string
  4024. description: |-
  4025. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  4026. map is equivalent to an element of matchExpressions, whose key field is "key", the
  4027. operator is "In", and the values array contains only "value". The requirements are ANDed.
  4028. type: object
  4029. type: object
  4030. x-kubernetes-map-type: atomic
  4031. storageClassName:
  4032. description: |-
  4033. storageClassName is the name of the StorageClass required by the claim.
  4034. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  4035. type: string
  4036. volumeAttributesClassName:
  4037. description: |-
  4038. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  4039. If specified, the CSI driver will create or update the volume with the attributes defined
  4040. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  4041. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  4042. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  4043. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  4044. will be set by the persistentvolume controller if it exists.
  4045. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  4046. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  4047. exists.
  4048. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  4049. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  4050. type: string
  4051. volumeMode:
  4052. description: |-
  4053. volumeMode defines what type of volume is required by the claim.
  4054. Value of Filesystem is implied when not included in claim spec.
  4055. type: string
  4056. volumeName:
  4057. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4058. type: string
  4059. type: object
  4060. type: object
  4061. type: array
  4062. type: object
  4063. nullable: true
  4064. type: array
  4065. onlyApplyOSDPlacement:
  4066. type: boolean
  4067. scheduleAlways:
  4068. description: Whether to always schedule OSDs on a node even if the node is not currently scheduleable or ready
  4069. type: boolean
  4070. storageClassDeviceSets:
  4071. items:
  4072. description: StorageClassDeviceSet is a storage class device set
  4073. properties:
  4074. config:
  4075. additionalProperties:
  4076. type: string
  4077. description: Provider-specific device configuration
  4078. nullable: true
  4079. type: object
  4080. x-kubernetes-preserve-unknown-fields: true
  4081. count:
  4082. description: Count is the number of devices in this set
  4083. minimum: 1
  4084. type: integer
  4085. encrypted:
  4086. description: Whether to encrypt the deviceSet
  4087. type: boolean
  4088. name:
  4089. description: Name is a unique identifier for the set
  4090. type: string
  4091. placement:
  4092. nullable: true
  4093. properties:
  4094. nodeAffinity:
  4095. properties:
  4096. preferredDuringSchedulingIgnoredDuringExecution:
  4097. items:
  4098. properties:
  4099. preference:
  4100. properties:
  4101. matchExpressions:
  4102. items:
  4103. properties:
  4104. key:
  4105. type: string
  4106. operator:
  4107. type: string
  4108. values:
  4109. items:
  4110. type: string
  4111. type: array
  4112. x-kubernetes-list-type: atomic
  4113. required:
  4114. - key
  4115. - operator
  4116. type: object
  4117. type: array
  4118. x-kubernetes-list-type: atomic
  4119. matchFields:
  4120. items:
  4121. properties:
  4122. key:
  4123. type: string
  4124. operator:
  4125. type: string
  4126. values:
  4127. items:
  4128. type: string
  4129. type: array
  4130. x-kubernetes-list-type: atomic
  4131. required:
  4132. - key
  4133. - operator
  4134. type: object
  4135. type: array
  4136. x-kubernetes-list-type: atomic
  4137. type: object
  4138. x-kubernetes-map-type: atomic
  4139. weight:
  4140. format: int32
  4141. type: integer
  4142. required:
  4143. - preference
  4144. - weight
  4145. type: object
  4146. type: array
  4147. x-kubernetes-list-type: atomic
  4148. requiredDuringSchedulingIgnoredDuringExecution:
  4149. properties:
  4150. nodeSelectorTerms:
  4151. items:
  4152. properties:
  4153. matchExpressions:
  4154. items:
  4155. properties:
  4156. key:
  4157. type: string
  4158. operator:
  4159. type: string
  4160. values:
  4161. items:
  4162. type: string
  4163. type: array
  4164. x-kubernetes-list-type: atomic
  4165. required:
  4166. - key
  4167. - operator
  4168. type: object
  4169. type: array
  4170. x-kubernetes-list-type: atomic
  4171. matchFields:
  4172. items:
  4173. properties:
  4174. key:
  4175. type: string
  4176. operator:
  4177. type: string
  4178. values:
  4179. items:
  4180. type: string
  4181. type: array
  4182. x-kubernetes-list-type: atomic
  4183. required:
  4184. - key
  4185. - operator
  4186. type: object
  4187. type: array
  4188. x-kubernetes-list-type: atomic
  4189. type: object
  4190. x-kubernetes-map-type: atomic
  4191. type: array
  4192. x-kubernetes-list-type: atomic
  4193. required:
  4194. - nodeSelectorTerms
  4195. type: object
  4196. x-kubernetes-map-type: atomic
  4197. type: object
  4198. podAffinity:
  4199. properties:
  4200. preferredDuringSchedulingIgnoredDuringExecution:
  4201. items:
  4202. properties:
  4203. podAffinityTerm:
  4204. properties:
  4205. labelSelector:
  4206. properties:
  4207. matchExpressions:
  4208. items:
  4209. properties:
  4210. key:
  4211. type: string
  4212. operator:
  4213. type: string
  4214. values:
  4215. items:
  4216. type: string
  4217. type: array
  4218. x-kubernetes-list-type: atomic
  4219. required:
  4220. - key
  4221. - operator
  4222. type: object
  4223. type: array
  4224. x-kubernetes-list-type: atomic
  4225. matchLabels:
  4226. additionalProperties:
  4227. type: string
  4228. type: object
  4229. type: object
  4230. x-kubernetes-map-type: atomic
  4231. matchLabelKeys:
  4232. items:
  4233. type: string
  4234. type: array
  4235. x-kubernetes-list-type: atomic
  4236. mismatchLabelKeys:
  4237. items:
  4238. type: string
  4239. type: array
  4240. x-kubernetes-list-type: atomic
  4241. namespaceSelector:
  4242. properties:
  4243. matchExpressions:
  4244. items:
  4245. properties:
  4246. key:
  4247. type: string
  4248. operator:
  4249. type: string
  4250. values:
  4251. items:
  4252. type: string
  4253. type: array
  4254. x-kubernetes-list-type: atomic
  4255. required:
  4256. - key
  4257. - operator
  4258. type: object
  4259. type: array
  4260. x-kubernetes-list-type: atomic
  4261. matchLabels:
  4262. additionalProperties:
  4263. type: string
  4264. type: object
  4265. type: object
  4266. x-kubernetes-map-type: atomic
  4267. namespaces:
  4268. items:
  4269. type: string
  4270. type: array
  4271. x-kubernetes-list-type: atomic
  4272. topologyKey:
  4273. type: string
  4274. required:
  4275. - topologyKey
  4276. type: object
  4277. weight:
  4278. format: int32
  4279. type: integer
  4280. required:
  4281. - podAffinityTerm
  4282. - weight
  4283. type: object
  4284. type: array
  4285. x-kubernetes-list-type: atomic
  4286. requiredDuringSchedulingIgnoredDuringExecution:
  4287. items:
  4288. properties:
  4289. labelSelector:
  4290. properties:
  4291. matchExpressions:
  4292. items:
  4293. properties:
  4294. key:
  4295. type: string
  4296. operator:
  4297. type: string
  4298. values:
  4299. items:
  4300. type: string
  4301. type: array
  4302. x-kubernetes-list-type: atomic
  4303. required:
  4304. - key
  4305. - operator
  4306. type: object
  4307. type: array
  4308. x-kubernetes-list-type: atomic
  4309. matchLabels:
  4310. additionalProperties:
  4311. type: string
  4312. type: object
  4313. type: object
  4314. x-kubernetes-map-type: atomic
  4315. matchLabelKeys:
  4316. items:
  4317. type: string
  4318. type: array
  4319. x-kubernetes-list-type: atomic
  4320. mismatchLabelKeys:
  4321. items:
  4322. type: string
  4323. type: array
  4324. x-kubernetes-list-type: atomic
  4325. namespaceSelector:
  4326. properties:
  4327. matchExpressions:
  4328. items:
  4329. properties:
  4330. key:
  4331. type: string
  4332. operator:
  4333. type: string
  4334. values:
  4335. items:
  4336. type: string
  4337. type: array
  4338. x-kubernetes-list-type: atomic
  4339. required:
  4340. - key
  4341. - operator
  4342. type: object
  4343. type: array
  4344. x-kubernetes-list-type: atomic
  4345. matchLabels:
  4346. additionalProperties:
  4347. type: string
  4348. type: object
  4349. type: object
  4350. x-kubernetes-map-type: atomic
  4351. namespaces:
  4352. items:
  4353. type: string
  4354. type: array
  4355. x-kubernetes-list-type: atomic
  4356. topologyKey:
  4357. type: string
  4358. required:
  4359. - topologyKey
  4360. type: object
  4361. type: array
  4362. x-kubernetes-list-type: atomic
  4363. type: object
  4364. podAntiAffinity:
  4365. properties:
  4366. preferredDuringSchedulingIgnoredDuringExecution:
  4367. items:
  4368. properties:
  4369. podAffinityTerm:
  4370. properties:
  4371. labelSelector:
  4372. properties:
  4373. matchExpressions:
  4374. items:
  4375. properties:
  4376. key:
  4377. type: string
  4378. operator:
  4379. type: string
  4380. values:
  4381. items:
  4382. type: string
  4383. type: array
  4384. x-kubernetes-list-type: atomic
  4385. required:
  4386. - key
  4387. - operator
  4388. type: object
  4389. type: array
  4390. x-kubernetes-list-type: atomic
  4391. matchLabels:
  4392. additionalProperties:
  4393. type: string
  4394. type: object
  4395. type: object
  4396. x-kubernetes-map-type: atomic
  4397. matchLabelKeys:
  4398. items:
  4399. type: string
  4400. type: array
  4401. x-kubernetes-list-type: atomic
  4402. mismatchLabelKeys:
  4403. items:
  4404. type: string
  4405. type: array
  4406. x-kubernetes-list-type: atomic
  4407. namespaceSelector:
  4408. properties:
  4409. matchExpressions:
  4410. items:
  4411. properties:
  4412. key:
  4413. type: string
  4414. operator:
  4415. type: string
  4416. values:
  4417. items:
  4418. type: string
  4419. type: array
  4420. x-kubernetes-list-type: atomic
  4421. required:
  4422. - key
  4423. - operator
  4424. type: object
  4425. type: array
  4426. x-kubernetes-list-type: atomic
  4427. matchLabels:
  4428. additionalProperties:
  4429. type: string
  4430. type: object
  4431. type: object
  4432. x-kubernetes-map-type: atomic
  4433. namespaces:
  4434. items:
  4435. type: string
  4436. type: array
  4437. x-kubernetes-list-type: atomic
  4438. topologyKey:
  4439. type: string
  4440. required:
  4441. - topologyKey
  4442. type: object
  4443. weight:
  4444. format: int32
  4445. type: integer
  4446. required:
  4447. - podAffinityTerm
  4448. - weight
  4449. type: object
  4450. type: array
  4451. x-kubernetes-list-type: atomic
  4452. requiredDuringSchedulingIgnoredDuringExecution:
  4453. items:
  4454. properties:
  4455. labelSelector:
  4456. properties:
  4457. matchExpressions:
  4458. items:
  4459. properties:
  4460. key:
  4461. type: string
  4462. operator:
  4463. type: string
  4464. values:
  4465. items:
  4466. type: string
  4467. type: array
  4468. x-kubernetes-list-type: atomic
  4469. required:
  4470. - key
  4471. - operator
  4472. type: object
  4473. type: array
  4474. x-kubernetes-list-type: atomic
  4475. matchLabels:
  4476. additionalProperties:
  4477. type: string
  4478. type: object
  4479. type: object
  4480. x-kubernetes-map-type: atomic
  4481. matchLabelKeys:
  4482. items:
  4483. type: string
  4484. type: array
  4485. x-kubernetes-list-type: atomic
  4486. mismatchLabelKeys:
  4487. items:
  4488. type: string
  4489. type: array
  4490. x-kubernetes-list-type: atomic
  4491. namespaceSelector:
  4492. properties:
  4493. matchExpressions:
  4494. items:
  4495. properties:
  4496. key:
  4497. type: string
  4498. operator:
  4499. type: string
  4500. values:
  4501. items:
  4502. type: string
  4503. type: array
  4504. x-kubernetes-list-type: atomic
  4505. required:
  4506. - key
  4507. - operator
  4508. type: object
  4509. type: array
  4510. x-kubernetes-list-type: atomic
  4511. matchLabels:
  4512. additionalProperties:
  4513. type: string
  4514. type: object
  4515. type: object
  4516. x-kubernetes-map-type: atomic
  4517. namespaces:
  4518. items:
  4519. type: string
  4520. type: array
  4521. x-kubernetes-list-type: atomic
  4522. topologyKey:
  4523. type: string
  4524. required:
  4525. - topologyKey
  4526. type: object
  4527. type: array
  4528. x-kubernetes-list-type: atomic
  4529. type: object
  4530. tolerations:
  4531. items:
  4532. properties:
  4533. effect:
  4534. type: string
  4535. key:
  4536. type: string
  4537. operator:
  4538. type: string
  4539. tolerationSeconds:
  4540. format: int64
  4541. type: integer
  4542. value:
  4543. type: string
  4544. type: object
  4545. type: array
  4546. topologySpreadConstraints:
  4547. items:
  4548. properties:
  4549. labelSelector:
  4550. properties:
  4551. matchExpressions:
  4552. items:
  4553. properties:
  4554. key:
  4555. type: string
  4556. operator:
  4557. type: string
  4558. values:
  4559. items:
  4560. type: string
  4561. type: array
  4562. x-kubernetes-list-type: atomic
  4563. required:
  4564. - key
  4565. - operator
  4566. type: object
  4567. type: array
  4568. x-kubernetes-list-type: atomic
  4569. matchLabels:
  4570. additionalProperties:
  4571. type: string
  4572. type: object
  4573. type: object
  4574. x-kubernetes-map-type: atomic
  4575. matchLabelKeys:
  4576. items:
  4577. type: string
  4578. type: array
  4579. x-kubernetes-list-type: atomic
  4580. maxSkew:
  4581. format: int32
  4582. type: integer
  4583. minDomains:
  4584. format: int32
  4585. type: integer
  4586. nodeAffinityPolicy:
  4587. type: string
  4588. nodeTaintsPolicy:
  4589. type: string
  4590. topologyKey:
  4591. type: string
  4592. whenUnsatisfiable:
  4593. type: string
  4594. required:
  4595. - maxSkew
  4596. - topologyKey
  4597. - whenUnsatisfiable
  4598. type: object
  4599. type: array
  4600. type: object
  4601. x-kubernetes-preserve-unknown-fields: true
  4602. portable:
  4603. description: Portable represents OSD portability across the hosts
  4604. type: boolean
  4605. preparePlacement:
  4606. nullable: true
  4607. properties:
  4608. nodeAffinity:
  4609. properties:
  4610. preferredDuringSchedulingIgnoredDuringExecution:
  4611. items:
  4612. properties:
  4613. preference:
  4614. properties:
  4615. matchExpressions:
  4616. items:
  4617. properties:
  4618. key:
  4619. type: string
  4620. operator:
  4621. type: string
  4622. values:
  4623. items:
  4624. type: string
  4625. type: array
  4626. x-kubernetes-list-type: atomic
  4627. required:
  4628. - key
  4629. - operator
  4630. type: object
  4631. type: array
  4632. x-kubernetes-list-type: atomic
  4633. matchFields:
  4634. items:
  4635. properties:
  4636. key:
  4637. type: string
  4638. operator:
  4639. type: string
  4640. values:
  4641. items:
  4642. type: string
  4643. type: array
  4644. x-kubernetes-list-type: atomic
  4645. required:
  4646. - key
  4647. - operator
  4648. type: object
  4649. type: array
  4650. x-kubernetes-list-type: atomic
  4651. type: object
  4652. x-kubernetes-map-type: atomic
  4653. weight:
  4654. format: int32
  4655. type: integer
  4656. required:
  4657. - preference
  4658. - weight
  4659. type: object
  4660. type: array
  4661. x-kubernetes-list-type: atomic
  4662. requiredDuringSchedulingIgnoredDuringExecution:
  4663. properties:
  4664. nodeSelectorTerms:
  4665. items:
  4666. properties:
  4667. matchExpressions:
  4668. items:
  4669. properties:
  4670. key:
  4671. type: string
  4672. operator:
  4673. type: string
  4674. values:
  4675. items:
  4676. type: string
  4677. type: array
  4678. x-kubernetes-list-type: atomic
  4679. required:
  4680. - key
  4681. - operator
  4682. type: object
  4683. type: array
  4684. x-kubernetes-list-type: atomic
  4685. matchFields:
  4686. items:
  4687. properties:
  4688. key:
  4689. type: string
  4690. operator:
  4691. type: string
  4692. values:
  4693. items:
  4694. type: string
  4695. type: array
  4696. x-kubernetes-list-type: atomic
  4697. required:
  4698. - key
  4699. - operator
  4700. type: object
  4701. type: array
  4702. x-kubernetes-list-type: atomic
  4703. type: object
  4704. x-kubernetes-map-type: atomic
  4705. type: array
  4706. x-kubernetes-list-type: atomic
  4707. required:
  4708. - nodeSelectorTerms
  4709. type: object
  4710. x-kubernetes-map-type: atomic
  4711. type: object
  4712. podAffinity:
  4713. properties:
  4714. preferredDuringSchedulingIgnoredDuringExecution:
  4715. items:
  4716. properties:
  4717. podAffinityTerm:
  4718. properties:
  4719. labelSelector:
  4720. properties:
  4721. matchExpressions:
  4722. items:
  4723. properties:
  4724. key:
  4725. type: string
  4726. operator:
  4727. type: string
  4728. values:
  4729. items:
  4730. type: string
  4731. type: array
  4732. x-kubernetes-list-type: atomic
  4733. required:
  4734. - key
  4735. - operator
  4736. type: object
  4737. type: array
  4738. x-kubernetes-list-type: atomic
  4739. matchLabels:
  4740. additionalProperties:
  4741. type: string
  4742. type: object
  4743. type: object
  4744. x-kubernetes-map-type: atomic
  4745. matchLabelKeys:
  4746. items:
  4747. type: string
  4748. type: array
  4749. x-kubernetes-list-type: atomic
  4750. mismatchLabelKeys:
  4751. items:
  4752. type: string
  4753. type: array
  4754. x-kubernetes-list-type: atomic
  4755. namespaceSelector:
  4756. properties:
  4757. matchExpressions:
  4758. items:
  4759. properties:
  4760. key:
  4761. type: string
  4762. operator:
  4763. type: string
  4764. values:
  4765. items:
  4766. type: string
  4767. type: array
  4768. x-kubernetes-list-type: atomic
  4769. required:
  4770. - key
  4771. - operator
  4772. type: object
  4773. type: array
  4774. x-kubernetes-list-type: atomic
  4775. matchLabels:
  4776. additionalProperties:
  4777. type: string
  4778. type: object
  4779. type: object
  4780. x-kubernetes-map-type: atomic
  4781. namespaces:
  4782. items:
  4783. type: string
  4784. type: array
  4785. x-kubernetes-list-type: atomic
  4786. topologyKey:
  4787. type: string
  4788. required:
  4789. - topologyKey
  4790. type: object
  4791. weight:
  4792. format: int32
  4793. type: integer
  4794. required:
  4795. - podAffinityTerm
  4796. - weight
  4797. type: object
  4798. type: array
  4799. x-kubernetes-list-type: atomic
  4800. requiredDuringSchedulingIgnoredDuringExecution:
  4801. items:
  4802. properties:
  4803. labelSelector:
  4804. properties:
  4805. matchExpressions:
  4806. items:
  4807. properties:
  4808. key:
  4809. type: string
  4810. operator:
  4811. type: string
  4812. values:
  4813. items:
  4814. type: string
  4815. type: array
  4816. x-kubernetes-list-type: atomic
  4817. required:
  4818. - key
  4819. - operator
  4820. type: object
  4821. type: array
  4822. x-kubernetes-list-type: atomic
  4823. matchLabels:
  4824. additionalProperties:
  4825. type: string
  4826. type: object
  4827. type: object
  4828. x-kubernetes-map-type: atomic
  4829. matchLabelKeys:
  4830. items:
  4831. type: string
  4832. type: array
  4833. x-kubernetes-list-type: atomic
  4834. mismatchLabelKeys:
  4835. items:
  4836. type: string
  4837. type: array
  4838. x-kubernetes-list-type: atomic
  4839. namespaceSelector:
  4840. properties:
  4841. matchExpressions:
  4842. items:
  4843. properties:
  4844. key:
  4845. type: string
  4846. operator:
  4847. type: string
  4848. values:
  4849. items:
  4850. type: string
  4851. type: array
  4852. x-kubernetes-list-type: atomic
  4853. required:
  4854. - key
  4855. - operator
  4856. type: object
  4857. type: array
  4858. x-kubernetes-list-type: atomic
  4859. matchLabels:
  4860. additionalProperties:
  4861. type: string
  4862. type: object
  4863. type: object
  4864. x-kubernetes-map-type: atomic
  4865. namespaces:
  4866. items:
  4867. type: string
  4868. type: array
  4869. x-kubernetes-list-type: atomic
  4870. topologyKey:
  4871. type: string
  4872. required:
  4873. - topologyKey
  4874. type: object
  4875. type: array
  4876. x-kubernetes-list-type: atomic
  4877. type: object
  4878. podAntiAffinity:
  4879. properties:
  4880. preferredDuringSchedulingIgnoredDuringExecution:
  4881. items:
  4882. properties:
  4883. podAffinityTerm:
  4884. properties:
  4885. labelSelector:
  4886. properties:
  4887. matchExpressions:
  4888. items:
  4889. properties:
  4890. key:
  4891. type: string
  4892. operator:
  4893. type: string
  4894. values:
  4895. items:
  4896. type: string
  4897. type: array
  4898. x-kubernetes-list-type: atomic
  4899. required:
  4900. - key
  4901. - operator
  4902. type: object
  4903. type: array
  4904. x-kubernetes-list-type: atomic
  4905. matchLabels:
  4906. additionalProperties:
  4907. type: string
  4908. type: object
  4909. type: object
  4910. x-kubernetes-map-type: atomic
  4911. matchLabelKeys:
  4912. items:
  4913. type: string
  4914. type: array
  4915. x-kubernetes-list-type: atomic
  4916. mismatchLabelKeys:
  4917. items:
  4918. type: string
  4919. type: array
  4920. x-kubernetes-list-type: atomic
  4921. namespaceSelector:
  4922. properties:
  4923. matchExpressions:
  4924. items:
  4925. properties:
  4926. key:
  4927. type: string
  4928. operator:
  4929. type: string
  4930. values:
  4931. items:
  4932. type: string
  4933. type: array
  4934. x-kubernetes-list-type: atomic
  4935. required:
  4936. - key
  4937. - operator
  4938. type: object
  4939. type: array
  4940. x-kubernetes-list-type: atomic
  4941. matchLabels:
  4942. additionalProperties:
  4943. type: string
  4944. type: object
  4945. type: object
  4946. x-kubernetes-map-type: atomic
  4947. namespaces:
  4948. items:
  4949. type: string
  4950. type: array
  4951. x-kubernetes-list-type: atomic
  4952. topologyKey:
  4953. type: string
  4954. required:
  4955. - topologyKey
  4956. type: object
  4957. weight:
  4958. format: int32
  4959. type: integer
  4960. required:
  4961. - podAffinityTerm
  4962. - weight
  4963. type: object
  4964. type: array
  4965. x-kubernetes-list-type: atomic
  4966. requiredDuringSchedulingIgnoredDuringExecution:
  4967. items:
  4968. properties:
  4969. labelSelector:
  4970. properties:
  4971. matchExpressions:
  4972. items:
  4973. properties:
  4974. key:
  4975. type: string
  4976. operator:
  4977. type: string
  4978. values:
  4979. items:
  4980. type: string
  4981. type: array
  4982. x-kubernetes-list-type: atomic
  4983. required:
  4984. - key
  4985. - operator
  4986. type: object
  4987. type: array
  4988. x-kubernetes-list-type: atomic
  4989. matchLabels:
  4990. additionalProperties:
  4991. type: string
  4992. type: object
  4993. type: object
  4994. x-kubernetes-map-type: atomic
  4995. matchLabelKeys:
  4996. items:
  4997. type: string
  4998. type: array
  4999. x-kubernetes-list-type: atomic
  5000. mismatchLabelKeys:
  5001. items:
  5002. type: string
  5003. type: array
  5004. x-kubernetes-list-type: atomic
  5005. namespaceSelector:
  5006. properties:
  5007. matchExpressions:
  5008. items:
  5009. properties:
  5010. key:
  5011. type: string
  5012. operator:
  5013. type: string
  5014. values:
  5015. items:
  5016. type: string
  5017. type: array
  5018. x-kubernetes-list-type: atomic
  5019. required:
  5020. - key
  5021. - operator
  5022. type: object
  5023. type: array
  5024. x-kubernetes-list-type: atomic
  5025. matchLabels:
  5026. additionalProperties:
  5027. type: string
  5028. type: object
  5029. type: object
  5030. x-kubernetes-map-type: atomic
  5031. namespaces:
  5032. items:
  5033. type: string
  5034. type: array
  5035. x-kubernetes-list-type: atomic
  5036. topologyKey:
  5037. type: string
  5038. required:
  5039. - topologyKey
  5040. type: object
  5041. type: array
  5042. x-kubernetes-list-type: atomic
  5043. type: object
  5044. tolerations:
  5045. items:
  5046. properties:
  5047. effect:
  5048. type: string
  5049. key:
  5050. type: string
  5051. operator:
  5052. type: string
  5053. tolerationSeconds:
  5054. format: int64
  5055. type: integer
  5056. value:
  5057. type: string
  5058. type: object
  5059. type: array
  5060. topologySpreadConstraints:
  5061. items:
  5062. properties:
  5063. labelSelector:
  5064. properties:
  5065. matchExpressions:
  5066. items:
  5067. properties:
  5068. key:
  5069. type: string
  5070. operator:
  5071. type: string
  5072. values:
  5073. items:
  5074. type: string
  5075. type: array
  5076. x-kubernetes-list-type: atomic
  5077. required:
  5078. - key
  5079. - operator
  5080. type: object
  5081. type: array
  5082. x-kubernetes-list-type: atomic
  5083. matchLabels:
  5084. additionalProperties:
  5085. type: string
  5086. type: object
  5087. type: object
  5088. x-kubernetes-map-type: atomic
  5089. matchLabelKeys:
  5090. items:
  5091. type: string
  5092. type: array
  5093. x-kubernetes-list-type: atomic
  5094. maxSkew:
  5095. format: int32
  5096. type: integer
  5097. minDomains:
  5098. format: int32
  5099. type: integer
  5100. nodeAffinityPolicy:
  5101. type: string
  5102. nodeTaintsPolicy:
  5103. type: string
  5104. topologyKey:
  5105. type: string
  5106. whenUnsatisfiable:
  5107. type: string
  5108. required:
  5109. - maxSkew
  5110. - topologyKey
  5111. - whenUnsatisfiable
  5112. type: object
  5113. type: array
  5114. type: object
  5115. x-kubernetes-preserve-unknown-fields: true
  5116. resources:
  5117. description: ResourceRequirements describes the compute resource requirements.
  5118. nullable: true
  5119. properties:
  5120. claims:
  5121. description: |-
  5122. Claims lists the names of resources, defined in spec.resourceClaims,
  5123. that are used by this container.
  5124. This is an alpha field and requires enabling the
  5125. DynamicResourceAllocation feature gate.
  5126. This field is immutable. It can only be set for containers.
  5127. items:
  5128. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  5129. properties:
  5130. name:
  5131. description: |-
  5132. Name must match the name of one entry in pod.spec.resourceClaims of
  5133. the Pod where this field is used. It makes that resource available
  5134. inside a container.
  5135. type: string
  5136. request:
  5137. description: |-
  5138. Request is the name chosen for a request in the referenced claim.
  5139. If empty, everything from the claim is made available, otherwise
  5140. only the result of this request.
  5141. type: string
  5142. required:
  5143. - name
  5144. type: object
  5145. type: array
  5146. x-kubernetes-list-map-keys:
  5147. - name
  5148. x-kubernetes-list-type: map
  5149. limits:
  5150. additionalProperties:
  5151. anyOf:
  5152. - type: integer
  5153. - type: string
  5154. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5155. x-kubernetes-int-or-string: true
  5156. description: |-
  5157. Limits describes the maximum amount of compute resources allowed.
  5158. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5159. type: object
  5160. requests:
  5161. additionalProperties:
  5162. anyOf:
  5163. - type: integer
  5164. - type: string
  5165. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5166. x-kubernetes-int-or-string: true
  5167. description: |-
  5168. Requests describes the minimum amount of compute resources required.
  5169. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  5170. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  5171. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5172. type: object
  5173. type: object
  5174. x-kubernetes-preserve-unknown-fields: true
  5175. schedulerName:
  5176. description: Scheduler name for OSD pod placement
  5177. type: string
  5178. tuneDeviceClass:
  5179. description: TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
  5180. type: boolean
  5181. tuneFastDeviceClass:
  5182. description: TuneFastDeviceClass Tune the OSD when running on a fast Device Class
  5183. type: boolean
  5184. volumeClaimTemplates:
  5185. description: VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
  5186. items:
  5187. description: VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
  5188. properties:
  5189. metadata:
  5190. description: |-
  5191. Standard object's metadata.
  5192. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  5193. properties:
  5194. annotations:
  5195. additionalProperties:
  5196. type: string
  5197. type: object
  5198. x-kubernetes-preserve-unknown-fields: true
  5199. finalizers:
  5200. items:
  5201. type: string
  5202. type: array
  5203. labels:
  5204. additionalProperties:
  5205. type: string
  5206. type: object
  5207. name:
  5208. type: string
  5209. namespace:
  5210. type: string
  5211. type: object
  5212. spec:
  5213. description: |-
  5214. spec defines the desired characteristics of a volume requested by a pod author.
  5215. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  5216. properties:
  5217. accessModes:
  5218. description: |-
  5219. accessModes contains the desired access modes the volume should have.
  5220. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  5221. items:
  5222. type: string
  5223. type: array
  5224. x-kubernetes-list-type: atomic
  5225. dataSource:
  5226. description: |-
  5227. dataSource field can be used to specify either:
  5228. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  5229. * An existing PVC (PersistentVolumeClaim)
  5230. If the provisioner or an external controller can support the specified data source,
  5231. it will create a new volume based on the contents of the specified data source.
  5232. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  5233. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  5234. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  5235. properties:
  5236. apiGroup:
  5237. description: |-
  5238. APIGroup is the group for the resource being referenced.
  5239. If APIGroup is not specified, the specified Kind must be in the core API group.
  5240. For any other third-party types, APIGroup is required.
  5241. type: string
  5242. kind:
  5243. description: Kind is the type of resource being referenced
  5244. type: string
  5245. name:
  5246. description: Name is the name of resource being referenced
  5247. type: string
  5248. required:
  5249. - kind
  5250. - name
  5251. type: object
  5252. x-kubernetes-map-type: atomic
  5253. dataSourceRef:
  5254. description: |-
  5255. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  5256. volume is desired. This may be any object from a non-empty API group (non
  5257. core object) or a PersistentVolumeClaim object.
  5258. When this field is specified, volume binding will only succeed if the type of
  5259. the specified object matches some installed volume populator or dynamic
  5260. provisioner.
  5261. This field will replace the functionality of the dataSource field and as such
  5262. if both fields are non-empty, they must have the same value. For backwards
  5263. compatibility, when namespace isn't specified in dataSourceRef,
  5264. both fields (dataSource and dataSourceRef) will be set to the same
  5265. value automatically if one of them is empty and the other is non-empty.
  5266. When namespace is specified in dataSourceRef,
  5267. dataSource isn't set to the same value and must be empty.
  5268. There are three important differences between dataSource and dataSourceRef:
  5269. * While dataSource only allows two specific types of objects, dataSourceRef
  5270. allows any non-core object, as well as PersistentVolumeClaim objects.
  5271. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  5272. preserves all values, and generates an error if a disallowed value is
  5273. specified.
  5274. * While dataSource only allows local objects, dataSourceRef allows objects
  5275. in any namespaces.
  5276. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  5277. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  5278. properties:
  5279. apiGroup:
  5280. description: |-
  5281. APIGroup is the group for the resource being referenced.
  5282. If APIGroup is not specified, the specified Kind must be in the core API group.
  5283. For any other third-party types, APIGroup is required.
  5284. type: string
  5285. kind:
  5286. description: Kind is the type of resource being referenced
  5287. type: string
  5288. name:
  5289. description: Name is the name of resource being referenced
  5290. type: string
  5291. namespace:
  5292. description: |-
  5293. Namespace is the namespace of resource being referenced
  5294. 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.
  5295. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  5296. type: string
  5297. required:
  5298. - kind
  5299. - name
  5300. type: object
  5301. resources:
  5302. description: |-
  5303. resources represents the minimum resources the volume should have.
  5304. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  5305. that are lower than previous value but must still be higher than capacity recorded in the
  5306. status field of the claim.
  5307. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  5308. properties:
  5309. limits:
  5310. additionalProperties:
  5311. anyOf:
  5312. - type: integer
  5313. - type: string
  5314. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5315. x-kubernetes-int-or-string: true
  5316. description: |-
  5317. Limits describes the maximum amount of compute resources allowed.
  5318. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5319. type: object
  5320. requests:
  5321. additionalProperties:
  5322. anyOf:
  5323. - type: integer
  5324. - type: string
  5325. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5326. x-kubernetes-int-or-string: true
  5327. description: |-
  5328. Requests describes the minimum amount of compute resources required.
  5329. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  5330. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  5331. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5332. type: object
  5333. type: object
  5334. selector:
  5335. description: selector is a label query over volumes to consider for binding.
  5336. properties:
  5337. matchExpressions:
  5338. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5339. items:
  5340. description: |-
  5341. A label selector requirement is a selector that contains values, a key, and an operator that
  5342. relates the key and values.
  5343. properties:
  5344. key:
  5345. description: key is the label key that the selector applies to.
  5346. type: string
  5347. operator:
  5348. description: |-
  5349. operator represents a key's relationship to a set of values.
  5350. Valid operators are In, NotIn, Exists and DoesNotExist.
  5351. type: string
  5352. values:
  5353. description: |-
  5354. values is an array of string values. If the operator is In or NotIn,
  5355. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  5356. the values array must be empty. This array is replaced during a strategic
  5357. merge patch.
  5358. items:
  5359. type: string
  5360. type: array
  5361. x-kubernetes-list-type: atomic
  5362. required:
  5363. - key
  5364. - operator
  5365. type: object
  5366. type: array
  5367. x-kubernetes-list-type: atomic
  5368. matchLabels:
  5369. additionalProperties:
  5370. type: string
  5371. description: |-
  5372. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  5373. map is equivalent to an element of matchExpressions, whose key field is "key", the
  5374. operator is "In", and the values array contains only "value". The requirements are ANDed.
  5375. type: object
  5376. type: object
  5377. x-kubernetes-map-type: atomic
  5378. storageClassName:
  5379. description: |-
  5380. storageClassName is the name of the StorageClass required by the claim.
  5381. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  5382. type: string
  5383. volumeAttributesClassName:
  5384. description: |-
  5385. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  5386. If specified, the CSI driver will create or update the volume with the attributes defined
  5387. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  5388. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  5389. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  5390. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  5391. will be set by the persistentvolume controller if it exists.
  5392. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  5393. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  5394. exists.
  5395. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  5396. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  5397. type: string
  5398. volumeMode:
  5399. description: |-
  5400. volumeMode defines what type of volume is required by the claim.
  5401. Value of Filesystem is implied when not included in claim spec.
  5402. type: string
  5403. volumeName:
  5404. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  5405. type: string
  5406. type: object
  5407. type: object
  5408. type: array
  5409. required:
  5410. - count
  5411. - name
  5412. - volumeClaimTemplates
  5413. type: object
  5414. nullable: true
  5415. type: array
  5416. store:
  5417. description: OSDStore is the backend storage type used for creating the OSDs
  5418. properties:
  5419. type:
  5420. description: Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used
  5421. enum:
  5422. - bluestore
  5423. - bluestore-rdr
  5424. type: string
  5425. updateStore:
  5426. description: |-
  5427. UpdateStore updates the backend store for existing OSDs. It destroys each OSD one at a time, cleans up the backing disk
  5428. and prepares same OSD on that disk
  5429. pattern: ^$|^yes-really-update-store$
  5430. type: string
  5431. type: object
  5432. useAllDevices:
  5433. description: Whether to consume all the storage devices found on a machine
  5434. type: boolean
  5435. useAllNodes:
  5436. type: boolean
  5437. volumeClaimTemplates:
  5438. description: PersistentVolumeClaims to use as storage
  5439. items:
  5440. description: VolumeClaimTemplate is a simplified version of K8s corev1's PVC. It has no type meta or status.
  5441. properties:
  5442. metadata:
  5443. description: |-
  5444. Standard object's metadata.
  5445. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  5446. properties:
  5447. annotations:
  5448. additionalProperties:
  5449. type: string
  5450. type: object
  5451. finalizers:
  5452. items:
  5453. type: string
  5454. type: array
  5455. labels:
  5456. additionalProperties:
  5457. type: string
  5458. type: object
  5459. name:
  5460. type: string
  5461. namespace:
  5462. type: string
  5463. type: object
  5464. spec:
  5465. description: |-
  5466. spec defines the desired characteristics of a volume requested by a pod author.
  5467. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  5468. properties:
  5469. accessModes:
  5470. description: |-
  5471. accessModes contains the desired access modes the volume should have.
  5472. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  5473. items:
  5474. type: string
  5475. type: array
  5476. x-kubernetes-list-type: atomic
  5477. dataSource:
  5478. description: |-
  5479. dataSource field can be used to specify either:
  5480. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  5481. * An existing PVC (PersistentVolumeClaim)
  5482. If the provisioner or an external controller can support the specified data source,
  5483. it will create a new volume based on the contents of the specified data source.
  5484. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  5485. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  5486. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  5487. properties:
  5488. apiGroup:
  5489. description: |-
  5490. APIGroup is the group for the resource being referenced.
  5491. If APIGroup is not specified, the specified Kind must be in the core API group.
  5492. For any other third-party types, APIGroup is required.
  5493. type: string
  5494. kind:
  5495. description: Kind is the type of resource being referenced
  5496. type: string
  5497. name:
  5498. description: Name is the name of resource being referenced
  5499. type: string
  5500. required:
  5501. - kind
  5502. - name
  5503. type: object
  5504. x-kubernetes-map-type: atomic
  5505. dataSourceRef:
  5506. description: |-
  5507. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  5508. volume is desired. This may be any object from a non-empty API group (non
  5509. core object) or a PersistentVolumeClaim object.
  5510. When this field is specified, volume binding will only succeed if the type of
  5511. the specified object matches some installed volume populator or dynamic
  5512. provisioner.
  5513. This field will replace the functionality of the dataSource field and as such
  5514. if both fields are non-empty, they must have the same value. For backwards
  5515. compatibility, when namespace isn't specified in dataSourceRef,
  5516. both fields (dataSource and dataSourceRef) will be set to the same
  5517. value automatically if one of them is empty and the other is non-empty.
  5518. When namespace is specified in dataSourceRef,
  5519. dataSource isn't set to the same value and must be empty.
  5520. There are three important differences between dataSource and dataSourceRef:
  5521. * While dataSource only allows two specific types of objects, dataSourceRef
  5522. allows any non-core object, as well as PersistentVolumeClaim objects.
  5523. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  5524. preserves all values, and generates an error if a disallowed value is
  5525. specified.
  5526. * While dataSource only allows local objects, dataSourceRef allows objects
  5527. in any namespaces.
  5528. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  5529. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  5530. properties:
  5531. apiGroup:
  5532. description: |-
  5533. APIGroup is the group for the resource being referenced.
  5534. If APIGroup is not specified, the specified Kind must be in the core API group.
  5535. For any other third-party types, APIGroup is required.
  5536. type: string
  5537. kind:
  5538. description: Kind is the type of resource being referenced
  5539. type: string
  5540. name:
  5541. description: Name is the name of resource being referenced
  5542. type: string
  5543. namespace:
  5544. description: |-
  5545. Namespace is the namespace of resource being referenced
  5546. 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.
  5547. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  5548. type: string
  5549. required:
  5550. - kind
  5551. - name
  5552. type: object
  5553. resources:
  5554. description: |-
  5555. resources represents the minimum resources the volume should have.
  5556. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  5557. that are lower than previous value but must still be higher than capacity recorded in the
  5558. status field of the claim.
  5559. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  5560. properties:
  5561. limits:
  5562. additionalProperties:
  5563. anyOf:
  5564. - type: integer
  5565. - type: string
  5566. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5567. x-kubernetes-int-or-string: true
  5568. description: |-
  5569. Limits describes the maximum amount of compute resources allowed.
  5570. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5571. type: object
  5572. requests:
  5573. additionalProperties:
  5574. anyOf:
  5575. - type: integer
  5576. - type: string
  5577. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5578. x-kubernetes-int-or-string: true
  5579. description: |-
  5580. Requests describes the minimum amount of compute resources required.
  5581. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  5582. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  5583. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5584. type: object
  5585. type: object
  5586. selector:
  5587. description: selector is a label query over volumes to consider for binding.
  5588. properties:
  5589. matchExpressions:
  5590. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5591. items:
  5592. description: |-
  5593. A label selector requirement is a selector that contains values, a key, and an operator that
  5594. relates the key and values.
  5595. properties:
  5596. key:
  5597. description: key is the label key that the selector applies to.
  5598. type: string
  5599. operator:
  5600. description: |-
  5601. operator represents a key's relationship to a set of values.
  5602. Valid operators are In, NotIn, Exists and DoesNotExist.
  5603. type: string
  5604. values:
  5605. description: |-
  5606. values is an array of string values. If the operator is In or NotIn,
  5607. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  5608. the values array must be empty. This array is replaced during a strategic
  5609. merge patch.
  5610. items:
  5611. type: string
  5612. type: array
  5613. x-kubernetes-list-type: atomic
  5614. required:
  5615. - key
  5616. - operator
  5617. type: object
  5618. type: array
  5619. x-kubernetes-list-type: atomic
  5620. matchLabels:
  5621. additionalProperties:
  5622. type: string
  5623. description: |-
  5624. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  5625. map is equivalent to an element of matchExpressions, whose key field is "key", the
  5626. operator is "In", and the values array contains only "value". The requirements are ANDed.
  5627. type: object
  5628. type: object
  5629. x-kubernetes-map-type: atomic
  5630. storageClassName:
  5631. description: |-
  5632. storageClassName is the name of the StorageClass required by the claim.
  5633. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  5634. type: string
  5635. volumeAttributesClassName:
  5636. description: |-
  5637. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  5638. If specified, the CSI driver will create or update the volume with the attributes defined
  5639. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  5640. it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
  5641. will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
  5642. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
  5643. will be set by the persistentvolume controller if it exists.
  5644. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  5645. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  5646. exists.
  5647. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  5648. (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).
  5649. type: string
  5650. volumeMode:
  5651. description: |-
  5652. volumeMode defines what type of volume is required by the claim.
  5653. Value of Filesystem is implied when not included in claim spec.
  5654. type: string
  5655. volumeName:
  5656. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  5657. type: string
  5658. type: object
  5659. type: object
  5660. type: array
  5661. type: object
  5662. upgradeOSDRequiresHealthyPGs:
  5663. description: |-
  5664. UpgradeOSDRequiresHealthyPGs defines if OSD upgrade requires PGs are clean. If set to `true` OSD upgrade process won't start until PGs are healthy.
  5665. This configuration will be ignored if `skipUpgradeChecks` is `true`.
  5666. Default is false.
  5667. type: boolean
  5668. waitTimeoutForHealthyOSDInMinutes:
  5669. description: |-
  5670. WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart.
  5671. 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
  5672. if `continueUpgradeAfterChecksEvenIfNotHealthy` is `false`. If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would
  5673. 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`.
  5674. The default wait timeout is 10 minutes.
  5675. format: int64
  5676. type: integer
  5677. type: object
  5678. status:
  5679. description: ClusterStatus represents the status of a Ceph cluster
  5680. nullable: true
  5681. properties:
  5682. ceph:
  5683. description: CephStatus is the details health of a Ceph Cluster
  5684. properties:
  5685. capacity:
  5686. description: Capacity is the capacity information of a Ceph Cluster
  5687. properties:
  5688. bytesAvailable:
  5689. format: int64
  5690. type: integer
  5691. bytesTotal:
  5692. format: int64
  5693. type: integer
  5694. bytesUsed:
  5695. format: int64
  5696. type: integer
  5697. lastUpdated:
  5698. type: string
  5699. type: object
  5700. details:
  5701. additionalProperties:
  5702. description: CephHealthMessage represents the health message of a Ceph Cluster
  5703. properties:
  5704. message:
  5705. type: string
  5706. severity:
  5707. type: string
  5708. required:
  5709. - message
  5710. - severity
  5711. type: object
  5712. type: object
  5713. fsid:
  5714. type: string
  5715. health:
  5716. type: string
  5717. lastChanged:
  5718. type: string
  5719. lastChecked:
  5720. type: string
  5721. previousHealth:
  5722. type: string
  5723. versions:
  5724. description: CephDaemonsVersions show the current ceph version for different ceph daemons
  5725. properties:
  5726. cephfs-mirror:
  5727. additionalProperties:
  5728. type: integer
  5729. description: CephFSMirror shows CephFSMirror Ceph version
  5730. type: object
  5731. mds:
  5732. additionalProperties:
  5733. type: integer
  5734. description: Mds shows Mds Ceph version
  5735. type: object
  5736. mgr:
  5737. additionalProperties:
  5738. type: integer
  5739. description: Mgr shows Mgr Ceph version
  5740. type: object
  5741. mon:
  5742. additionalProperties:
  5743. type: integer
  5744. description: Mon shows Mon Ceph version
  5745. type: object
  5746. osd:
  5747. additionalProperties:
  5748. type: integer
  5749. description: Osd shows Osd Ceph version
  5750. type: object
  5751. overall:
  5752. additionalProperties:
  5753. type: integer
  5754. description: Overall shows overall Ceph version
  5755. type: object
  5756. rbd-mirror:
  5757. additionalProperties:
  5758. type: integer
  5759. description: RbdMirror shows RbdMirror Ceph version
  5760. type: object
  5761. rgw:
  5762. additionalProperties:
  5763. type: integer
  5764. description: Rgw shows Rgw Ceph version
  5765. type: object
  5766. type: object
  5767. type: object
  5768. conditions:
  5769. items:
  5770. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  5771. properties:
  5772. lastHeartbeatTime:
  5773. format: date-time
  5774. type: string
  5775. lastTransitionTime:
  5776. format: date-time
  5777. type: string
  5778. message:
  5779. type: string
  5780. reason:
  5781. description: ConditionReason is a reason for a condition
  5782. type: string
  5783. status:
  5784. type: string
  5785. type:
  5786. description: ConditionType represent a resource's status
  5787. type: string
  5788. type: object
  5789. type: array
  5790. message:
  5791. type: string
  5792. observedGeneration:
  5793. description: ObservedGeneration is the latest generation observed by the controller.
  5794. format: int64
  5795. type: integer
  5796. phase:
  5797. description: ConditionType represent a resource's status
  5798. type: string
  5799. state:
  5800. description: ClusterState represents the state of a Ceph Cluster
  5801. type: string
  5802. storage:
  5803. description: CephStorage represents flavors of Ceph Cluster Storage
  5804. properties:
  5805. deprecatedOSDs:
  5806. additionalProperties:
  5807. items:
  5808. type: integer
  5809. type: array
  5810. type: object
  5811. deviceClasses:
  5812. items:
  5813. description: DeviceClasses represents device classes of a Ceph Cluster
  5814. properties:
  5815. name:
  5816. type: string
  5817. type: object
  5818. type: array
  5819. osd:
  5820. description: OSDStatus represents OSD status of the ceph Cluster
  5821. properties:
  5822. migrationStatus:
  5823. description: MigrationStatus status represents the current status of any OSD migration.
  5824. properties:
  5825. pending:
  5826. type: integer
  5827. type: object
  5828. storeType:
  5829. additionalProperties:
  5830. type: integer
  5831. description: StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
  5832. type: object
  5833. type: object
  5834. type: object
  5835. version:
  5836. description: ClusterVersion represents the version of a Ceph Cluster
  5837. properties:
  5838. image:
  5839. type: string
  5840. version:
  5841. type: string
  5842. type: object
  5843. type: object
  5844. x-kubernetes-preserve-unknown-fields: true
  5845. required:
  5846. - metadata
  5847. - spec
  5848. type: object
  5849. served: true
  5850. storage: true
  5851. subresources:
  5852. status: {}
  5853. ---
  5854. apiVersion: apiextensions.k8s.io/v1
  5855. kind: CustomResourceDefinition
  5856. metadata:
  5857. annotations:
  5858. controller-gen.kubebuilder.io/version: v0.16.1
  5859. name: cephcosidrivers.ceph.rook.io
  5860. spec:
  5861. group: ceph.rook.io
  5862. names:
  5863. kind: CephCOSIDriver
  5864. listKind: CephCOSIDriverList
  5865. plural: cephcosidrivers
  5866. shortNames:
  5867. - cephcosi
  5868. singular: cephcosidriver
  5869. scope: Namespaced
  5870. versions:
  5871. - name: v1
  5872. schema:
  5873. openAPIV3Schema:
  5874. description: CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment
  5875. properties:
  5876. apiVersion:
  5877. description: |-
  5878. APIVersion defines the versioned schema of this representation of an object.
  5879. Servers should convert recognized schemas to the latest internal value, and
  5880. may reject unrecognized values.
  5881. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  5882. type: string
  5883. kind:
  5884. description: |-
  5885. Kind is a string value representing the REST resource this object represents.
  5886. Servers may infer this from the endpoint the client submits requests to.
  5887. Cannot be updated.
  5888. In CamelCase.
  5889. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  5890. type: string
  5891. metadata:
  5892. type: object
  5893. spec:
  5894. description: Spec represents the specification of a Ceph COSI Driver
  5895. properties:
  5896. deploymentStrategy:
  5897. description: DeploymentStrategy is the strategy to use to deploy the COSI driver.
  5898. enum:
  5899. - Never
  5900. - Auto
  5901. - Always
  5902. type: string
  5903. image:
  5904. description: Image is the container image to run the Ceph COSI driver
  5905. type: string
  5906. objectProvisionerImage:
  5907. description: ObjectProvisionerImage is the container image to run the COSI driver sidecar
  5908. type: string
  5909. placement:
  5910. properties:
  5911. nodeAffinity:
  5912. properties:
  5913. preferredDuringSchedulingIgnoredDuringExecution:
  5914. items:
  5915. properties:
  5916. preference:
  5917. properties:
  5918. matchExpressions:
  5919. items:
  5920. properties:
  5921. key:
  5922. type: string
  5923. operator:
  5924. type: string
  5925. values:
  5926. items:
  5927. type: string
  5928. type: array
  5929. x-kubernetes-list-type: atomic
  5930. required:
  5931. - key
  5932. - operator
  5933. type: object
  5934. type: array
  5935. x-kubernetes-list-type: atomic
  5936. matchFields:
  5937. items:
  5938. properties:
  5939. key:
  5940. type: string
  5941. operator:
  5942. type: string
  5943. values:
  5944. items:
  5945. type: string
  5946. type: array
  5947. x-kubernetes-list-type: atomic
  5948. required:
  5949. - key
  5950. - operator
  5951. type: object
  5952. type: array
  5953. x-kubernetes-list-type: atomic
  5954. type: object
  5955. x-kubernetes-map-type: atomic
  5956. weight:
  5957. format: int32
  5958. type: integer
  5959. required:
  5960. - preference
  5961. - weight
  5962. type: object
  5963. type: array
  5964. x-kubernetes-list-type: atomic
  5965. requiredDuringSchedulingIgnoredDuringExecution:
  5966. properties:
  5967. nodeSelectorTerms:
  5968. items:
  5969. properties:
  5970. matchExpressions:
  5971. items:
  5972. properties:
  5973. key:
  5974. type: string
  5975. operator:
  5976. type: string
  5977. values:
  5978. items:
  5979. type: string
  5980. type: array
  5981. x-kubernetes-list-type: atomic
  5982. required:
  5983. - key
  5984. - operator
  5985. type: object
  5986. type: array
  5987. x-kubernetes-list-type: atomic
  5988. matchFields:
  5989. items:
  5990. properties:
  5991. key:
  5992. type: string
  5993. operator:
  5994. type: string
  5995. values:
  5996. items:
  5997. type: string
  5998. type: array
  5999. x-kubernetes-list-type: atomic
  6000. required:
  6001. - key
  6002. - operator
  6003. type: object
  6004. type: array
  6005. x-kubernetes-list-type: atomic
  6006. type: object
  6007. x-kubernetes-map-type: atomic
  6008. type: array
  6009. x-kubernetes-list-type: atomic
  6010. required:
  6011. - nodeSelectorTerms
  6012. type: object
  6013. x-kubernetes-map-type: atomic
  6014. type: object
  6015. podAffinity:
  6016. properties:
  6017. preferredDuringSchedulingIgnoredDuringExecution:
  6018. items:
  6019. properties:
  6020. podAffinityTerm:
  6021. properties:
  6022. labelSelector:
  6023. properties:
  6024. matchExpressions:
  6025. items:
  6026. properties:
  6027. key:
  6028. type: string
  6029. operator:
  6030. type: string
  6031. values:
  6032. items:
  6033. type: string
  6034. type: array
  6035. x-kubernetes-list-type: atomic
  6036. required:
  6037. - key
  6038. - operator
  6039. type: object
  6040. type: array
  6041. x-kubernetes-list-type: atomic
  6042. matchLabels:
  6043. additionalProperties:
  6044. type: string
  6045. type: object
  6046. type: object
  6047. x-kubernetes-map-type: atomic
  6048. matchLabelKeys:
  6049. items:
  6050. type: string
  6051. type: array
  6052. x-kubernetes-list-type: atomic
  6053. mismatchLabelKeys:
  6054. items:
  6055. type: string
  6056. type: array
  6057. x-kubernetes-list-type: atomic
  6058. namespaceSelector:
  6059. properties:
  6060. matchExpressions:
  6061. items:
  6062. properties:
  6063. key:
  6064. type: string
  6065. operator:
  6066. type: string
  6067. values:
  6068. items:
  6069. type: string
  6070. type: array
  6071. x-kubernetes-list-type: atomic
  6072. required:
  6073. - key
  6074. - operator
  6075. type: object
  6076. type: array
  6077. x-kubernetes-list-type: atomic
  6078. matchLabels:
  6079. additionalProperties:
  6080. type: string
  6081. type: object
  6082. type: object
  6083. x-kubernetes-map-type: atomic
  6084. namespaces:
  6085. items:
  6086. type: string
  6087. type: array
  6088. x-kubernetes-list-type: atomic
  6089. topologyKey:
  6090. type: string
  6091. required:
  6092. - topologyKey
  6093. type: object
  6094. weight:
  6095. format: int32
  6096. type: integer
  6097. required:
  6098. - podAffinityTerm
  6099. - weight
  6100. type: object
  6101. type: array
  6102. x-kubernetes-list-type: atomic
  6103. requiredDuringSchedulingIgnoredDuringExecution:
  6104. items:
  6105. properties:
  6106. labelSelector:
  6107. properties:
  6108. matchExpressions:
  6109. items:
  6110. properties:
  6111. key:
  6112. type: string
  6113. operator:
  6114. type: string
  6115. values:
  6116. items:
  6117. type: string
  6118. type: array
  6119. x-kubernetes-list-type: atomic
  6120. required:
  6121. - key
  6122. - operator
  6123. type: object
  6124. type: array
  6125. x-kubernetes-list-type: atomic
  6126. matchLabels:
  6127. additionalProperties:
  6128. type: string
  6129. type: object
  6130. type: object
  6131. x-kubernetes-map-type: atomic
  6132. matchLabelKeys:
  6133. items:
  6134. type: string
  6135. type: array
  6136. x-kubernetes-list-type: atomic
  6137. mismatchLabelKeys:
  6138. items:
  6139. type: string
  6140. type: array
  6141. x-kubernetes-list-type: atomic
  6142. namespaceSelector:
  6143. properties:
  6144. matchExpressions:
  6145. items:
  6146. properties:
  6147. key:
  6148. type: string
  6149. operator:
  6150. type: string
  6151. values:
  6152. items:
  6153. type: string
  6154. type: array
  6155. x-kubernetes-list-type: atomic
  6156. required:
  6157. - key
  6158. - operator
  6159. type: object
  6160. type: array
  6161. x-kubernetes-list-type: atomic
  6162. matchLabels:
  6163. additionalProperties:
  6164. type: string
  6165. type: object
  6166. type: object
  6167. x-kubernetes-map-type: atomic
  6168. namespaces:
  6169. items:
  6170. type: string
  6171. type: array
  6172. x-kubernetes-list-type: atomic
  6173. topologyKey:
  6174. type: string
  6175. required:
  6176. - topologyKey
  6177. type: object
  6178. type: array
  6179. x-kubernetes-list-type: atomic
  6180. type: object
  6181. podAntiAffinity:
  6182. properties:
  6183. preferredDuringSchedulingIgnoredDuringExecution:
  6184. items:
  6185. properties:
  6186. podAffinityTerm:
  6187. properties:
  6188. labelSelector:
  6189. properties:
  6190. matchExpressions:
  6191. items:
  6192. properties:
  6193. key:
  6194. type: string
  6195. operator:
  6196. type: string
  6197. values:
  6198. items:
  6199. type: string
  6200. type: array
  6201. x-kubernetes-list-type: atomic
  6202. required:
  6203. - key
  6204. - operator
  6205. type: object
  6206. type: array
  6207. x-kubernetes-list-type: atomic
  6208. matchLabels:
  6209. additionalProperties:
  6210. type: string
  6211. type: object
  6212. type: object
  6213. x-kubernetes-map-type: atomic
  6214. matchLabelKeys:
  6215. items:
  6216. type: string
  6217. type: array
  6218. x-kubernetes-list-type: atomic
  6219. mismatchLabelKeys:
  6220. items:
  6221. type: string
  6222. type: array
  6223. x-kubernetes-list-type: atomic
  6224. namespaceSelector:
  6225. properties:
  6226. matchExpressions:
  6227. items:
  6228. properties:
  6229. key:
  6230. type: string
  6231. operator:
  6232. type: string
  6233. values:
  6234. items:
  6235. type: string
  6236. type: array
  6237. x-kubernetes-list-type: atomic
  6238. required:
  6239. - key
  6240. - operator
  6241. type: object
  6242. type: array
  6243. x-kubernetes-list-type: atomic
  6244. matchLabels:
  6245. additionalProperties:
  6246. type: string
  6247. type: object
  6248. type: object
  6249. x-kubernetes-map-type: atomic
  6250. namespaces:
  6251. items:
  6252. type: string
  6253. type: array
  6254. x-kubernetes-list-type: atomic
  6255. topologyKey:
  6256. type: string
  6257. required:
  6258. - topologyKey
  6259. type: object
  6260. weight:
  6261. format: int32
  6262. type: integer
  6263. required:
  6264. - podAffinityTerm
  6265. - weight
  6266. type: object
  6267. type: array
  6268. x-kubernetes-list-type: atomic
  6269. requiredDuringSchedulingIgnoredDuringExecution:
  6270. items:
  6271. properties:
  6272. labelSelector:
  6273. properties:
  6274. matchExpressions:
  6275. items:
  6276. properties:
  6277. key:
  6278. type: string
  6279. operator:
  6280. type: string
  6281. values:
  6282. items:
  6283. type: string
  6284. type: array
  6285. x-kubernetes-list-type: atomic
  6286. required:
  6287. - key
  6288. - operator
  6289. type: object
  6290. type: array
  6291. x-kubernetes-list-type: atomic
  6292. matchLabels:
  6293. additionalProperties:
  6294. type: string
  6295. type: object
  6296. type: object
  6297. x-kubernetes-map-type: atomic
  6298. matchLabelKeys:
  6299. items:
  6300. type: string
  6301. type: array
  6302. x-kubernetes-list-type: atomic
  6303. mismatchLabelKeys:
  6304. items:
  6305. type: string
  6306. type: array
  6307. x-kubernetes-list-type: atomic
  6308. namespaceSelector:
  6309. properties:
  6310. matchExpressions:
  6311. items:
  6312. properties:
  6313. key:
  6314. type: string
  6315. operator:
  6316. type: string
  6317. values:
  6318. items:
  6319. type: string
  6320. type: array
  6321. x-kubernetes-list-type: atomic
  6322. required:
  6323. - key
  6324. - operator
  6325. type: object
  6326. type: array
  6327. x-kubernetes-list-type: atomic
  6328. matchLabels:
  6329. additionalProperties:
  6330. type: string
  6331. type: object
  6332. type: object
  6333. x-kubernetes-map-type: atomic
  6334. namespaces:
  6335. items:
  6336. type: string
  6337. type: array
  6338. x-kubernetes-list-type: atomic
  6339. topologyKey:
  6340. type: string
  6341. required:
  6342. - topologyKey
  6343. type: object
  6344. type: array
  6345. x-kubernetes-list-type: atomic
  6346. type: object
  6347. tolerations:
  6348. items:
  6349. properties:
  6350. effect:
  6351. type: string
  6352. key:
  6353. type: string
  6354. operator:
  6355. type: string
  6356. tolerationSeconds:
  6357. format: int64
  6358. type: integer
  6359. value:
  6360. type: string
  6361. type: object
  6362. type: array
  6363. topologySpreadConstraints:
  6364. items:
  6365. properties:
  6366. labelSelector:
  6367. properties:
  6368. matchExpressions:
  6369. items:
  6370. properties:
  6371. key:
  6372. type: string
  6373. operator:
  6374. type: string
  6375. values:
  6376. items:
  6377. type: string
  6378. type: array
  6379. x-kubernetes-list-type: atomic
  6380. required:
  6381. - key
  6382. - operator
  6383. type: object
  6384. type: array
  6385. x-kubernetes-list-type: atomic
  6386. matchLabels:
  6387. additionalProperties:
  6388. type: string
  6389. type: object
  6390. type: object
  6391. x-kubernetes-map-type: atomic
  6392. matchLabelKeys:
  6393. items:
  6394. type: string
  6395. type: array
  6396. x-kubernetes-list-type: atomic
  6397. maxSkew:
  6398. format: int32
  6399. type: integer
  6400. minDomains:
  6401. format: int32
  6402. type: integer
  6403. nodeAffinityPolicy:
  6404. type: string
  6405. nodeTaintsPolicy:
  6406. type: string
  6407. topologyKey:
  6408. type: string
  6409. whenUnsatisfiable:
  6410. type: string
  6411. required:
  6412. - maxSkew
  6413. - topologyKey
  6414. - whenUnsatisfiable
  6415. type: object
  6416. type: array
  6417. type: object
  6418. resources:
  6419. description: Resources is the resource requirements for the COSI driver
  6420. properties:
  6421. claims:
  6422. description: |-
  6423. Claims lists the names of resources, defined in spec.resourceClaims,
  6424. that are used by this container.
  6425. This is an alpha field and requires enabling the
  6426. DynamicResourceAllocation feature gate.
  6427. This field is immutable. It can only be set for containers.
  6428. items:
  6429. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  6430. properties:
  6431. name:
  6432. description: |-
  6433. Name must match the name of one entry in pod.spec.resourceClaims of
  6434. the Pod where this field is used. It makes that resource available
  6435. inside a container.
  6436. type: string
  6437. request:
  6438. description: |-
  6439. Request is the name chosen for a request in the referenced claim.
  6440. If empty, everything from the claim is made available, otherwise
  6441. only the result of this request.
  6442. type: string
  6443. required:
  6444. - name
  6445. type: object
  6446. type: array
  6447. x-kubernetes-list-map-keys:
  6448. - name
  6449. x-kubernetes-list-type: map
  6450. limits:
  6451. additionalProperties:
  6452. anyOf:
  6453. - type: integer
  6454. - type: string
  6455. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6456. x-kubernetes-int-or-string: true
  6457. description: |-
  6458. Limits describes the maximum amount of compute resources allowed.
  6459. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6460. type: object
  6461. requests:
  6462. additionalProperties:
  6463. anyOf:
  6464. - type: integer
  6465. - type: string
  6466. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6467. x-kubernetes-int-or-string: true
  6468. description: |-
  6469. Requests describes the minimum amount of compute resources required.
  6470. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  6471. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  6472. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6473. type: object
  6474. type: object
  6475. type: object
  6476. required:
  6477. - metadata
  6478. - spec
  6479. type: object
  6480. served: true
  6481. storage: true
  6482. ---
  6483. apiVersion: apiextensions.k8s.io/v1
  6484. kind: CustomResourceDefinition
  6485. metadata:
  6486. annotations:
  6487. controller-gen.kubebuilder.io/version: v0.16.1
  6488. name: cephfilesystemmirrors.ceph.rook.io
  6489. spec:
  6490. group: ceph.rook.io
  6491. names:
  6492. kind: CephFilesystemMirror
  6493. listKind: CephFilesystemMirrorList
  6494. plural: cephfilesystemmirrors
  6495. shortNames:
  6496. - cephfsm
  6497. singular: cephfilesystemmirror
  6498. scope: Namespaced
  6499. versions:
  6500. - additionalPrinterColumns:
  6501. - jsonPath: .status.phase
  6502. name: Phase
  6503. type: string
  6504. - jsonPath: .metadata.creationTimestamp
  6505. name: Age
  6506. type: date
  6507. name: v1
  6508. schema:
  6509. openAPIV3Schema:
  6510. description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
  6511. properties:
  6512. apiVersion:
  6513. description: |-
  6514. APIVersion defines the versioned schema of this representation of an object.
  6515. Servers should convert recognized schemas to the latest internal value, and
  6516. may reject unrecognized values.
  6517. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  6518. type: string
  6519. kind:
  6520. description: |-
  6521. Kind is a string value representing the REST resource this object represents.
  6522. Servers may infer this from the endpoint the client submits requests to.
  6523. Cannot be updated.
  6524. In CamelCase.
  6525. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  6526. type: string
  6527. metadata:
  6528. type: object
  6529. spec:
  6530. description: FilesystemMirroringSpec is the filesystem mirroring specification
  6531. properties:
  6532. annotations:
  6533. additionalProperties:
  6534. type: string
  6535. description: The annotations-related configuration to add/set on each Pod related object.
  6536. nullable: true
  6537. type: object
  6538. labels:
  6539. additionalProperties:
  6540. type: string
  6541. description: The labels-related configuration to add/set on each Pod related object.
  6542. nullable: true
  6543. type: object
  6544. placement:
  6545. nullable: true
  6546. properties:
  6547. nodeAffinity:
  6548. properties:
  6549. preferredDuringSchedulingIgnoredDuringExecution:
  6550. items:
  6551. properties:
  6552. preference:
  6553. properties:
  6554. matchExpressions:
  6555. items:
  6556. properties:
  6557. key:
  6558. type: string
  6559. operator:
  6560. type: string
  6561. values:
  6562. items:
  6563. type: string
  6564. type: array
  6565. x-kubernetes-list-type: atomic
  6566. required:
  6567. - key
  6568. - operator
  6569. type: object
  6570. type: array
  6571. x-kubernetes-list-type: atomic
  6572. matchFields:
  6573. items:
  6574. properties:
  6575. key:
  6576. type: string
  6577. operator:
  6578. type: string
  6579. values:
  6580. items:
  6581. type: string
  6582. type: array
  6583. x-kubernetes-list-type: atomic
  6584. required:
  6585. - key
  6586. - operator
  6587. type: object
  6588. type: array
  6589. x-kubernetes-list-type: atomic
  6590. type: object
  6591. x-kubernetes-map-type: atomic
  6592. weight:
  6593. format: int32
  6594. type: integer
  6595. required:
  6596. - preference
  6597. - weight
  6598. type: object
  6599. type: array
  6600. x-kubernetes-list-type: atomic
  6601. requiredDuringSchedulingIgnoredDuringExecution:
  6602. properties:
  6603. nodeSelectorTerms:
  6604. items:
  6605. properties:
  6606. matchExpressions:
  6607. items:
  6608. properties:
  6609. key:
  6610. type: string
  6611. operator:
  6612. type: string
  6613. values:
  6614. items:
  6615. type: string
  6616. type: array
  6617. x-kubernetes-list-type: atomic
  6618. required:
  6619. - key
  6620. - operator
  6621. type: object
  6622. type: array
  6623. x-kubernetes-list-type: atomic
  6624. matchFields:
  6625. items:
  6626. properties:
  6627. key:
  6628. type: string
  6629. operator:
  6630. type: string
  6631. values:
  6632. items:
  6633. type: string
  6634. type: array
  6635. x-kubernetes-list-type: atomic
  6636. required:
  6637. - key
  6638. - operator
  6639. type: object
  6640. type: array
  6641. x-kubernetes-list-type: atomic
  6642. type: object
  6643. x-kubernetes-map-type: atomic
  6644. type: array
  6645. x-kubernetes-list-type: atomic
  6646. required:
  6647. - nodeSelectorTerms
  6648. type: object
  6649. x-kubernetes-map-type: atomic
  6650. type: object
  6651. podAffinity:
  6652. properties:
  6653. preferredDuringSchedulingIgnoredDuringExecution:
  6654. items:
  6655. properties:
  6656. podAffinityTerm:
  6657. properties:
  6658. labelSelector:
  6659. properties:
  6660. matchExpressions:
  6661. items:
  6662. properties:
  6663. key:
  6664. type: string
  6665. operator:
  6666. type: string
  6667. values:
  6668. items:
  6669. type: string
  6670. type: array
  6671. x-kubernetes-list-type: atomic
  6672. required:
  6673. - key
  6674. - operator
  6675. type: object
  6676. type: array
  6677. x-kubernetes-list-type: atomic
  6678. matchLabels:
  6679. additionalProperties:
  6680. type: string
  6681. type: object
  6682. type: object
  6683. x-kubernetes-map-type: atomic
  6684. matchLabelKeys:
  6685. items:
  6686. type: string
  6687. type: array
  6688. x-kubernetes-list-type: atomic
  6689. mismatchLabelKeys:
  6690. items:
  6691. type: string
  6692. type: array
  6693. x-kubernetes-list-type: atomic
  6694. namespaceSelector:
  6695. properties:
  6696. matchExpressions:
  6697. items:
  6698. properties:
  6699. key:
  6700. type: string
  6701. operator:
  6702. type: string
  6703. values:
  6704. items:
  6705. type: string
  6706. type: array
  6707. x-kubernetes-list-type: atomic
  6708. required:
  6709. - key
  6710. - operator
  6711. type: object
  6712. type: array
  6713. x-kubernetes-list-type: atomic
  6714. matchLabels:
  6715. additionalProperties:
  6716. type: string
  6717. type: object
  6718. type: object
  6719. x-kubernetes-map-type: atomic
  6720. namespaces:
  6721. items:
  6722. type: string
  6723. type: array
  6724. x-kubernetes-list-type: atomic
  6725. topologyKey:
  6726. type: string
  6727. required:
  6728. - topologyKey
  6729. type: object
  6730. weight:
  6731. format: int32
  6732. type: integer
  6733. required:
  6734. - podAffinityTerm
  6735. - weight
  6736. type: object
  6737. type: array
  6738. x-kubernetes-list-type: atomic
  6739. requiredDuringSchedulingIgnoredDuringExecution:
  6740. items:
  6741. properties:
  6742. labelSelector:
  6743. properties:
  6744. matchExpressions:
  6745. items:
  6746. properties:
  6747. key:
  6748. type: string
  6749. operator:
  6750. type: string
  6751. values:
  6752. items:
  6753. type: string
  6754. type: array
  6755. x-kubernetes-list-type: atomic
  6756. required:
  6757. - key
  6758. - operator
  6759. type: object
  6760. type: array
  6761. x-kubernetes-list-type: atomic
  6762. matchLabels:
  6763. additionalProperties:
  6764. type: string
  6765. type: object
  6766. type: object
  6767. x-kubernetes-map-type: atomic
  6768. matchLabelKeys:
  6769. items:
  6770. type: string
  6771. type: array
  6772. x-kubernetes-list-type: atomic
  6773. mismatchLabelKeys:
  6774. items:
  6775. type: string
  6776. type: array
  6777. x-kubernetes-list-type: atomic
  6778. namespaceSelector:
  6779. properties:
  6780. matchExpressions:
  6781. items:
  6782. properties:
  6783. key:
  6784. type: string
  6785. operator:
  6786. type: string
  6787. values:
  6788. items:
  6789. type: string
  6790. type: array
  6791. x-kubernetes-list-type: atomic
  6792. required:
  6793. - key
  6794. - operator
  6795. type: object
  6796. type: array
  6797. x-kubernetes-list-type: atomic
  6798. matchLabels:
  6799. additionalProperties:
  6800. type: string
  6801. type: object
  6802. type: object
  6803. x-kubernetes-map-type: atomic
  6804. namespaces:
  6805. items:
  6806. type: string
  6807. type: array
  6808. x-kubernetes-list-type: atomic
  6809. topologyKey:
  6810. type: string
  6811. required:
  6812. - topologyKey
  6813. type: object
  6814. type: array
  6815. x-kubernetes-list-type: atomic
  6816. type: object
  6817. podAntiAffinity:
  6818. properties:
  6819. preferredDuringSchedulingIgnoredDuringExecution:
  6820. items:
  6821. properties:
  6822. podAffinityTerm:
  6823. properties:
  6824. labelSelector:
  6825. properties:
  6826. matchExpressions:
  6827. items:
  6828. properties:
  6829. key:
  6830. type: string
  6831. operator:
  6832. type: string
  6833. values:
  6834. items:
  6835. type: string
  6836. type: array
  6837. x-kubernetes-list-type: atomic
  6838. required:
  6839. - key
  6840. - operator
  6841. type: object
  6842. type: array
  6843. x-kubernetes-list-type: atomic
  6844. matchLabels:
  6845. additionalProperties:
  6846. type: string
  6847. type: object
  6848. type: object
  6849. x-kubernetes-map-type: atomic
  6850. matchLabelKeys:
  6851. items:
  6852. type: string
  6853. type: array
  6854. x-kubernetes-list-type: atomic
  6855. mismatchLabelKeys:
  6856. items:
  6857. type: string
  6858. type: array
  6859. x-kubernetes-list-type: atomic
  6860. namespaceSelector:
  6861. properties:
  6862. matchExpressions:
  6863. items:
  6864. properties:
  6865. key:
  6866. type: string
  6867. operator:
  6868. type: string
  6869. values:
  6870. items:
  6871. type: string
  6872. type: array
  6873. x-kubernetes-list-type: atomic
  6874. required:
  6875. - key
  6876. - operator
  6877. type: object
  6878. type: array
  6879. x-kubernetes-list-type: atomic
  6880. matchLabels:
  6881. additionalProperties:
  6882. type: string
  6883. type: object
  6884. type: object
  6885. x-kubernetes-map-type: atomic
  6886. namespaces:
  6887. items:
  6888. type: string
  6889. type: array
  6890. x-kubernetes-list-type: atomic
  6891. topologyKey:
  6892. type: string
  6893. required:
  6894. - topologyKey
  6895. type: object
  6896. weight:
  6897. format: int32
  6898. type: integer
  6899. required:
  6900. - podAffinityTerm
  6901. - weight
  6902. type: object
  6903. type: array
  6904. x-kubernetes-list-type: atomic
  6905. requiredDuringSchedulingIgnoredDuringExecution:
  6906. items:
  6907. properties:
  6908. labelSelector:
  6909. properties:
  6910. matchExpressions:
  6911. items:
  6912. properties:
  6913. key:
  6914. type: string
  6915. operator:
  6916. type: string
  6917. values:
  6918. items:
  6919. type: string
  6920. type: array
  6921. x-kubernetes-list-type: atomic
  6922. required:
  6923. - key
  6924. - operator
  6925. type: object
  6926. type: array
  6927. x-kubernetes-list-type: atomic
  6928. matchLabels:
  6929. additionalProperties:
  6930. type: string
  6931. type: object
  6932. type: object
  6933. x-kubernetes-map-type: atomic
  6934. matchLabelKeys:
  6935. items:
  6936. type: string
  6937. type: array
  6938. x-kubernetes-list-type: atomic
  6939. mismatchLabelKeys:
  6940. items:
  6941. type: string
  6942. type: array
  6943. x-kubernetes-list-type: atomic
  6944. namespaceSelector:
  6945. properties:
  6946. matchExpressions:
  6947. items:
  6948. properties:
  6949. key:
  6950. type: string
  6951. operator:
  6952. type: string
  6953. values:
  6954. items:
  6955. type: string
  6956. type: array
  6957. x-kubernetes-list-type: atomic
  6958. required:
  6959. - key
  6960. - operator
  6961. type: object
  6962. type: array
  6963. x-kubernetes-list-type: atomic
  6964. matchLabels:
  6965. additionalProperties:
  6966. type: string
  6967. type: object
  6968. type: object
  6969. x-kubernetes-map-type: atomic
  6970. namespaces:
  6971. items:
  6972. type: string
  6973. type: array
  6974. x-kubernetes-list-type: atomic
  6975. topologyKey:
  6976. type: string
  6977. required:
  6978. - topologyKey
  6979. type: object
  6980. type: array
  6981. x-kubernetes-list-type: atomic
  6982. type: object
  6983. tolerations:
  6984. items:
  6985. properties:
  6986. effect:
  6987. type: string
  6988. key:
  6989. type: string
  6990. operator:
  6991. type: string
  6992. tolerationSeconds:
  6993. format: int64
  6994. type: integer
  6995. value:
  6996. type: string
  6997. type: object
  6998. type: array
  6999. topologySpreadConstraints:
  7000. items:
  7001. properties:
  7002. labelSelector:
  7003. properties:
  7004. matchExpressions:
  7005. items:
  7006. properties:
  7007. key:
  7008. type: string
  7009. operator:
  7010. type: string
  7011. values:
  7012. items:
  7013. type: string
  7014. type: array
  7015. x-kubernetes-list-type: atomic
  7016. required:
  7017. - key
  7018. - operator
  7019. type: object
  7020. type: array
  7021. x-kubernetes-list-type: atomic
  7022. matchLabels:
  7023. additionalProperties:
  7024. type: string
  7025. type: object
  7026. type: object
  7027. x-kubernetes-map-type: atomic
  7028. matchLabelKeys:
  7029. items:
  7030. type: string
  7031. type: array
  7032. x-kubernetes-list-type: atomic
  7033. maxSkew:
  7034. format: int32
  7035. type: integer
  7036. minDomains:
  7037. format: int32
  7038. type: integer
  7039. nodeAffinityPolicy:
  7040. type: string
  7041. nodeTaintsPolicy:
  7042. type: string
  7043. topologyKey:
  7044. type: string
  7045. whenUnsatisfiable:
  7046. type: string
  7047. required:
  7048. - maxSkew
  7049. - topologyKey
  7050. - whenUnsatisfiable
  7051. type: object
  7052. type: array
  7053. type: object
  7054. priorityClassName:
  7055. description: PriorityClassName sets priority class on the cephfs-mirror pods
  7056. type: string
  7057. resources:
  7058. description: The resource requirements for the cephfs-mirror pods
  7059. nullable: true
  7060. properties:
  7061. claims:
  7062. description: |-
  7063. Claims lists the names of resources, defined in spec.resourceClaims,
  7064. that are used by this container.
  7065. This is an alpha field and requires enabling the
  7066. DynamicResourceAllocation feature gate.
  7067. This field is immutable. It can only be set for containers.
  7068. items:
  7069. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  7070. properties:
  7071. name:
  7072. description: |-
  7073. Name must match the name of one entry in pod.spec.resourceClaims of
  7074. the Pod where this field is used. It makes that resource available
  7075. inside a container.
  7076. type: string
  7077. request:
  7078. description: |-
  7079. Request is the name chosen for a request in the referenced claim.
  7080. If empty, everything from the claim is made available, otherwise
  7081. only the result of this request.
  7082. type: string
  7083. required:
  7084. - name
  7085. type: object
  7086. type: array
  7087. x-kubernetes-list-map-keys:
  7088. - name
  7089. x-kubernetes-list-type: map
  7090. limits:
  7091. additionalProperties:
  7092. anyOf:
  7093. - type: integer
  7094. - type: string
  7095. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7096. x-kubernetes-int-or-string: true
  7097. description: |-
  7098. Limits describes the maximum amount of compute resources allowed.
  7099. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  7100. type: object
  7101. requests:
  7102. additionalProperties:
  7103. anyOf:
  7104. - type: integer
  7105. - type: string
  7106. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7107. x-kubernetes-int-or-string: true
  7108. description: |-
  7109. Requests describes the minimum amount of compute resources required.
  7110. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  7111. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  7112. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  7113. type: object
  7114. type: object
  7115. type: object
  7116. status:
  7117. description: Status represents the status of an object
  7118. properties:
  7119. conditions:
  7120. items:
  7121. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  7122. properties:
  7123. lastHeartbeatTime:
  7124. format: date-time
  7125. type: string
  7126. lastTransitionTime:
  7127. format: date-time
  7128. type: string
  7129. message:
  7130. type: string
  7131. reason:
  7132. description: ConditionReason is a reason for a condition
  7133. type: string
  7134. status:
  7135. type: string
  7136. type:
  7137. description: ConditionType represent a resource's status
  7138. type: string
  7139. type: object
  7140. type: array
  7141. observedGeneration:
  7142. description: ObservedGeneration is the latest generation observed by the controller.
  7143. format: int64
  7144. type: integer
  7145. phase:
  7146. type: string
  7147. type: object
  7148. required:
  7149. - metadata
  7150. - spec
  7151. type: object
  7152. served: true
  7153. storage: true
  7154. subresources:
  7155. status: {}
  7156. ---
  7157. apiVersion: apiextensions.k8s.io/v1
  7158. kind: CustomResourceDefinition
  7159. metadata:
  7160. annotations:
  7161. controller-gen.kubebuilder.io/version: v0.16.1
  7162. name: cephfilesystems.ceph.rook.io
  7163. spec:
  7164. group: ceph.rook.io
  7165. names:
  7166. kind: CephFilesystem
  7167. listKind: CephFilesystemList
  7168. plural: cephfilesystems
  7169. shortNames:
  7170. - cephfs
  7171. singular: cephfilesystem
  7172. scope: Namespaced
  7173. versions:
  7174. - additionalPrinterColumns:
  7175. - description: Number of desired active MDS daemons
  7176. jsonPath: .spec.metadataServer.activeCount
  7177. name: ActiveMDS
  7178. type: string
  7179. - jsonPath: .metadata.creationTimestamp
  7180. name: Age
  7181. type: date
  7182. - jsonPath: .status.phase
  7183. name: Phase
  7184. type: string
  7185. name: v1
  7186. schema:
  7187. openAPIV3Schema:
  7188. description: CephFilesystem represents a Ceph Filesystem
  7189. properties:
  7190. apiVersion:
  7191. description: |-
  7192. APIVersion defines the versioned schema of this representation of an object.
  7193. Servers should convert recognized schemas to the latest internal value, and
  7194. may reject unrecognized values.
  7195. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  7196. type: string
  7197. kind:
  7198. description: |-
  7199. Kind is a string value representing the REST resource this object represents.
  7200. Servers may infer this from the endpoint the client submits requests to.
  7201. Cannot be updated.
  7202. In CamelCase.
  7203. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  7204. type: string
  7205. metadata:
  7206. type: object
  7207. spec:
  7208. description: FilesystemSpec represents the spec of a file system
  7209. properties:
  7210. dataPools:
  7211. description: The data pool settings, with optional predefined pool name.
  7212. items:
  7213. description: NamedPoolSpec represents the named ceph pool spec
  7214. properties:
  7215. application:
  7216. description: The application name to set on the pool. Only expected to be set for rgw pools.
  7217. type: string
  7218. compressionMode:
  7219. description: |-
  7220. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  7221. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  7222. Do NOT set a default value for kubebuilder as this will override the Parameters
  7223. enum:
  7224. - none
  7225. - passive
  7226. - aggressive
  7227. - force
  7228. - ""
  7229. nullable: true
  7230. type: string
  7231. crushRoot:
  7232. description: The root of the crush hierarchy utilized by the pool
  7233. nullable: true
  7234. type: string
  7235. deviceClass:
  7236. description: The device class the OSD should set to for use in the pool
  7237. nullable: true
  7238. type: string
  7239. enableCrushUpdates:
  7240. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  7241. type: boolean
  7242. enableRBDStats:
  7243. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  7244. type: boolean
  7245. erasureCoded:
  7246. description: The erasure code settings
  7247. properties:
  7248. algorithm:
  7249. description: The algorithm for erasure coding
  7250. type: string
  7251. codingChunks:
  7252. description: |-
  7253. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  7254. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  7255. minimum: 0
  7256. type: integer
  7257. dataChunks:
  7258. description: |-
  7259. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  7260. The number of chunks required to recover an object when any single OSD is lost is the same
  7261. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  7262. minimum: 0
  7263. type: integer
  7264. required:
  7265. - codingChunks
  7266. - dataChunks
  7267. type: object
  7268. failureDomain:
  7269. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  7270. type: string
  7271. mirroring:
  7272. description: The mirroring settings
  7273. properties:
  7274. enabled:
  7275. description: Enabled whether this pool is mirrored or not
  7276. type: boolean
  7277. mode:
  7278. description: 'Mode is the mirroring mode: pool, image or init-only.'
  7279. enum:
  7280. - pool
  7281. - image
  7282. - init-only
  7283. type: string
  7284. peers:
  7285. description: Peers represents the peers spec
  7286. nullable: true
  7287. properties:
  7288. secretNames:
  7289. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  7290. items:
  7291. type: string
  7292. type: array
  7293. type: object
  7294. snapshotSchedules:
  7295. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  7296. items:
  7297. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  7298. properties:
  7299. interval:
  7300. description: Interval represent the periodicity of the snapshot.
  7301. type: string
  7302. path:
  7303. description: Path is the path to snapshot, only valid for CephFS
  7304. type: string
  7305. startTime:
  7306. description: StartTime indicates when to start the snapshot
  7307. type: string
  7308. type: object
  7309. type: array
  7310. type: object
  7311. name:
  7312. description: Name of the pool
  7313. type: string
  7314. parameters:
  7315. additionalProperties:
  7316. type: string
  7317. description: Parameters is a list of properties to enable on a given pool
  7318. nullable: true
  7319. type: object
  7320. x-kubernetes-preserve-unknown-fields: true
  7321. quotas:
  7322. description: The quota settings
  7323. nullable: true
  7324. properties:
  7325. maxBytes:
  7326. description: |-
  7327. MaxBytes represents the quota in bytes
  7328. Deprecated in favor of MaxSize
  7329. format: int64
  7330. type: integer
  7331. maxObjects:
  7332. description: MaxObjects represents the quota in objects
  7333. format: int64
  7334. type: integer
  7335. maxSize:
  7336. description: MaxSize represents the quota in bytes as a string
  7337. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  7338. type: string
  7339. type: object
  7340. replicated:
  7341. description: The replication settings
  7342. properties:
  7343. hybridStorage:
  7344. description: HybridStorage represents hybrid storage tier settings
  7345. nullable: true
  7346. properties:
  7347. primaryDeviceClass:
  7348. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  7349. minLength: 1
  7350. type: string
  7351. secondaryDeviceClass:
  7352. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  7353. minLength: 1
  7354. type: string
  7355. required:
  7356. - primaryDeviceClass
  7357. - secondaryDeviceClass
  7358. type: object
  7359. replicasPerFailureDomain:
  7360. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  7361. minimum: 1
  7362. type: integer
  7363. requireSafeReplicaSize:
  7364. description: RequireSafeReplicaSize if false allows you to set replica 1
  7365. type: boolean
  7366. size:
  7367. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  7368. minimum: 0
  7369. type: integer
  7370. subFailureDomain:
  7371. description: SubFailureDomain the name of the sub-failure domain
  7372. type: string
  7373. targetSizeRatio:
  7374. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  7375. minimum: 0
  7376. type: number
  7377. required:
  7378. - size
  7379. type: object
  7380. statusCheck:
  7381. description: The mirroring statusCheck
  7382. properties:
  7383. mirror:
  7384. description: HealthCheckSpec represents the health check of an object store bucket
  7385. nullable: true
  7386. properties:
  7387. disabled:
  7388. type: boolean
  7389. interval:
  7390. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7391. type: string
  7392. timeout:
  7393. type: string
  7394. type: object
  7395. type: object
  7396. x-kubernetes-preserve-unknown-fields: true
  7397. type: object
  7398. nullable: true
  7399. type: array
  7400. metadataPool:
  7401. description: The metadata pool settings
  7402. nullable: true
  7403. properties:
  7404. application:
  7405. description: The application name to set on the pool. Only expected to be set for rgw pools.
  7406. type: string
  7407. compressionMode:
  7408. description: |-
  7409. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  7410. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  7411. Do NOT set a default value for kubebuilder as this will override the Parameters
  7412. enum:
  7413. - none
  7414. - passive
  7415. - aggressive
  7416. - force
  7417. - ""
  7418. nullable: true
  7419. type: string
  7420. crushRoot:
  7421. description: The root of the crush hierarchy utilized by the pool
  7422. nullable: true
  7423. type: string
  7424. deviceClass:
  7425. description: The device class the OSD should set to for use in the pool
  7426. nullable: true
  7427. type: string
  7428. enableCrushUpdates:
  7429. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  7430. type: boolean
  7431. enableRBDStats:
  7432. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  7433. type: boolean
  7434. erasureCoded:
  7435. description: The erasure code settings
  7436. properties:
  7437. algorithm:
  7438. description: The algorithm for erasure coding
  7439. type: string
  7440. codingChunks:
  7441. description: |-
  7442. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  7443. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  7444. minimum: 0
  7445. type: integer
  7446. dataChunks:
  7447. description: |-
  7448. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  7449. The number of chunks required to recover an object when any single OSD is lost is the same
  7450. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  7451. minimum: 0
  7452. type: integer
  7453. required:
  7454. - codingChunks
  7455. - dataChunks
  7456. type: object
  7457. failureDomain:
  7458. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  7459. type: string
  7460. mirroring:
  7461. description: The mirroring settings
  7462. properties:
  7463. enabled:
  7464. description: Enabled whether this pool is mirrored or not
  7465. type: boolean
  7466. mode:
  7467. description: 'Mode is the mirroring mode: pool, image or init-only.'
  7468. enum:
  7469. - pool
  7470. - image
  7471. - init-only
  7472. type: string
  7473. peers:
  7474. description: Peers represents the peers spec
  7475. nullable: true
  7476. properties:
  7477. secretNames:
  7478. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  7479. items:
  7480. type: string
  7481. type: array
  7482. type: object
  7483. snapshotSchedules:
  7484. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  7485. items:
  7486. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  7487. properties:
  7488. interval:
  7489. description: Interval represent the periodicity of the snapshot.
  7490. type: string
  7491. path:
  7492. description: Path is the path to snapshot, only valid for CephFS
  7493. type: string
  7494. startTime:
  7495. description: StartTime indicates when to start the snapshot
  7496. type: string
  7497. type: object
  7498. type: array
  7499. type: object
  7500. name:
  7501. description: Name of the pool
  7502. type: string
  7503. parameters:
  7504. additionalProperties:
  7505. type: string
  7506. description: Parameters is a list of properties to enable on a given pool
  7507. nullable: true
  7508. type: object
  7509. x-kubernetes-preserve-unknown-fields: true
  7510. quotas:
  7511. description: The quota settings
  7512. nullable: true
  7513. properties:
  7514. maxBytes:
  7515. description: |-
  7516. MaxBytes represents the quota in bytes
  7517. Deprecated in favor of MaxSize
  7518. format: int64
  7519. type: integer
  7520. maxObjects:
  7521. description: MaxObjects represents the quota in objects
  7522. format: int64
  7523. type: integer
  7524. maxSize:
  7525. description: MaxSize represents the quota in bytes as a string
  7526. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  7527. type: string
  7528. type: object
  7529. replicated:
  7530. description: The replication settings
  7531. properties:
  7532. hybridStorage:
  7533. description: HybridStorage represents hybrid storage tier settings
  7534. nullable: true
  7535. properties:
  7536. primaryDeviceClass:
  7537. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  7538. minLength: 1
  7539. type: string
  7540. secondaryDeviceClass:
  7541. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  7542. minLength: 1
  7543. type: string
  7544. required:
  7545. - primaryDeviceClass
  7546. - secondaryDeviceClass
  7547. type: object
  7548. replicasPerFailureDomain:
  7549. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  7550. minimum: 1
  7551. type: integer
  7552. requireSafeReplicaSize:
  7553. description: RequireSafeReplicaSize if false allows you to set replica 1
  7554. type: boolean
  7555. size:
  7556. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  7557. minimum: 0
  7558. type: integer
  7559. subFailureDomain:
  7560. description: SubFailureDomain the name of the sub-failure domain
  7561. type: string
  7562. targetSizeRatio:
  7563. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  7564. minimum: 0
  7565. type: number
  7566. required:
  7567. - size
  7568. type: object
  7569. statusCheck:
  7570. description: The mirroring statusCheck
  7571. properties:
  7572. mirror:
  7573. description: HealthCheckSpec represents the health check of an object store bucket
  7574. nullable: true
  7575. properties:
  7576. disabled:
  7577. type: boolean
  7578. interval:
  7579. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7580. type: string
  7581. timeout:
  7582. type: string
  7583. type: object
  7584. type: object
  7585. x-kubernetes-preserve-unknown-fields: true
  7586. type: object
  7587. metadataServer:
  7588. description: The mds pod info
  7589. properties:
  7590. activeCount:
  7591. description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
  7592. format: int32
  7593. maximum: 50
  7594. minimum: 1
  7595. type: integer
  7596. activeStandby:
  7597. description: |-
  7598. Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover.
  7599. If false, standbys will still be available, but will not have a warm metadata cache.
  7600. type: boolean
  7601. annotations:
  7602. additionalProperties:
  7603. type: string
  7604. description: The annotations-related configuration to add/set on each Pod related object.
  7605. nullable: true
  7606. type: object
  7607. x-kubernetes-preserve-unknown-fields: true
  7608. labels:
  7609. additionalProperties:
  7610. type: string
  7611. description: The labels-related configuration to add/set on each Pod related object.
  7612. nullable: true
  7613. type: object
  7614. x-kubernetes-preserve-unknown-fields: true
  7615. livenessProbe:
  7616. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  7617. properties:
  7618. disabled:
  7619. description: Disabled determines whether probe is disable or not
  7620. type: boolean
  7621. probe:
  7622. description: |-
  7623. Probe describes a health check to be performed against a container to determine whether it is
  7624. alive or ready to receive traffic.
  7625. properties:
  7626. exec:
  7627. description: Exec specifies a command to execute in the container.
  7628. properties:
  7629. command:
  7630. description: |-
  7631. Command is the command line to execute inside the container, the working directory for the
  7632. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  7633. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  7634. a shell, you need to explicitly call out to that shell.
  7635. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  7636. items:
  7637. type: string
  7638. type: array
  7639. x-kubernetes-list-type: atomic
  7640. type: object
  7641. failureThreshold:
  7642. description: |-
  7643. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  7644. Defaults to 3. Minimum value is 1.
  7645. format: int32
  7646. type: integer
  7647. grpc:
  7648. description: GRPC specifies a GRPC HealthCheckRequest.
  7649. properties:
  7650. port:
  7651. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7652. format: int32
  7653. type: integer
  7654. service:
  7655. default: ""
  7656. description: |-
  7657. Service is the name of the service to place in the gRPC HealthCheckRequest
  7658. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  7659. If this is not specified, the default behavior is defined by gRPC.
  7660. type: string
  7661. required:
  7662. - port
  7663. type: object
  7664. httpGet:
  7665. description: HTTPGet specifies an HTTP GET request to perform.
  7666. properties:
  7667. host:
  7668. description: |-
  7669. Host name to connect to, defaults to the pod IP. You probably want to set
  7670. "Host" in httpHeaders instead.
  7671. type: string
  7672. httpHeaders:
  7673. description: Custom headers to set in the request. HTTP allows repeated headers.
  7674. items:
  7675. description: HTTPHeader describes a custom header to be used in HTTP probes
  7676. properties:
  7677. name:
  7678. description: |-
  7679. The header field name.
  7680. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7681. type: string
  7682. value:
  7683. description: The header field value
  7684. type: string
  7685. required:
  7686. - name
  7687. - value
  7688. type: object
  7689. type: array
  7690. x-kubernetes-list-type: atomic
  7691. path:
  7692. description: Path to access on the HTTP server.
  7693. type: string
  7694. port:
  7695. anyOf:
  7696. - type: integer
  7697. - type: string
  7698. description: |-
  7699. Name or number of the port to access on the container.
  7700. Number must be in the range 1 to 65535.
  7701. Name must be an IANA_SVC_NAME.
  7702. x-kubernetes-int-or-string: true
  7703. scheme:
  7704. description: |-
  7705. Scheme to use for connecting to the host.
  7706. Defaults to HTTP.
  7707. type: string
  7708. required:
  7709. - port
  7710. type: object
  7711. initialDelaySeconds:
  7712. description: |-
  7713. Number of seconds after the container has started before liveness probes are initiated.
  7714. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  7715. format: int32
  7716. type: integer
  7717. periodSeconds:
  7718. description: |-
  7719. How often (in seconds) to perform the probe.
  7720. Default to 10 seconds. Minimum value is 1.
  7721. format: int32
  7722. type: integer
  7723. successThreshold:
  7724. description: |-
  7725. Minimum consecutive successes for the probe to be considered successful after having failed.
  7726. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  7727. format: int32
  7728. type: integer
  7729. tcpSocket:
  7730. description: TCPSocket specifies a connection to a TCP port.
  7731. properties:
  7732. host:
  7733. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7734. type: string
  7735. port:
  7736. anyOf:
  7737. - type: integer
  7738. - type: string
  7739. description: |-
  7740. Number or name of the port to access on the container.
  7741. Number must be in the range 1 to 65535.
  7742. Name must be an IANA_SVC_NAME.
  7743. x-kubernetes-int-or-string: true
  7744. required:
  7745. - port
  7746. type: object
  7747. terminationGracePeriodSeconds:
  7748. format: int64
  7749. type: integer
  7750. timeoutSeconds:
  7751. description: |-
  7752. Number of seconds after which the probe times out.
  7753. Defaults to 1 second. Minimum value is 1.
  7754. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  7755. format: int32
  7756. type: integer
  7757. type: object
  7758. type: object
  7759. placement:
  7760. nullable: true
  7761. properties:
  7762. nodeAffinity:
  7763. properties:
  7764. preferredDuringSchedulingIgnoredDuringExecution:
  7765. items:
  7766. properties:
  7767. preference:
  7768. properties:
  7769. matchExpressions:
  7770. items:
  7771. properties:
  7772. key:
  7773. type: string
  7774. operator:
  7775. type: string
  7776. values:
  7777. items:
  7778. type: string
  7779. type: array
  7780. x-kubernetes-list-type: atomic
  7781. required:
  7782. - key
  7783. - operator
  7784. type: object
  7785. type: array
  7786. x-kubernetes-list-type: atomic
  7787. matchFields:
  7788. items:
  7789. properties:
  7790. key:
  7791. type: string
  7792. operator:
  7793. type: string
  7794. values:
  7795. items:
  7796. type: string
  7797. type: array
  7798. x-kubernetes-list-type: atomic
  7799. required:
  7800. - key
  7801. - operator
  7802. type: object
  7803. type: array
  7804. x-kubernetes-list-type: atomic
  7805. type: object
  7806. x-kubernetes-map-type: atomic
  7807. weight:
  7808. format: int32
  7809. type: integer
  7810. required:
  7811. - preference
  7812. - weight
  7813. type: object
  7814. type: array
  7815. x-kubernetes-list-type: atomic
  7816. requiredDuringSchedulingIgnoredDuringExecution:
  7817. properties:
  7818. nodeSelectorTerms:
  7819. items:
  7820. properties:
  7821. matchExpressions:
  7822. items:
  7823. properties:
  7824. key:
  7825. type: string
  7826. operator:
  7827. type: string
  7828. values:
  7829. items:
  7830. type: string
  7831. type: array
  7832. x-kubernetes-list-type: atomic
  7833. required:
  7834. - key
  7835. - operator
  7836. type: object
  7837. type: array
  7838. x-kubernetes-list-type: atomic
  7839. matchFields:
  7840. items:
  7841. properties:
  7842. key:
  7843. type: string
  7844. operator:
  7845. type: string
  7846. values:
  7847. items:
  7848. type: string
  7849. type: array
  7850. x-kubernetes-list-type: atomic
  7851. required:
  7852. - key
  7853. - operator
  7854. type: object
  7855. type: array
  7856. x-kubernetes-list-type: atomic
  7857. type: object
  7858. x-kubernetes-map-type: atomic
  7859. type: array
  7860. x-kubernetes-list-type: atomic
  7861. required:
  7862. - nodeSelectorTerms
  7863. type: object
  7864. x-kubernetes-map-type: atomic
  7865. type: object
  7866. podAffinity:
  7867. properties:
  7868. preferredDuringSchedulingIgnoredDuringExecution:
  7869. items:
  7870. properties:
  7871. podAffinityTerm:
  7872. properties:
  7873. labelSelector:
  7874. properties:
  7875. matchExpressions:
  7876. items:
  7877. properties:
  7878. key:
  7879. type: string
  7880. operator:
  7881. type: string
  7882. values:
  7883. items:
  7884. type: string
  7885. type: array
  7886. x-kubernetes-list-type: atomic
  7887. required:
  7888. - key
  7889. - operator
  7890. type: object
  7891. type: array
  7892. x-kubernetes-list-type: atomic
  7893. matchLabels:
  7894. additionalProperties:
  7895. type: string
  7896. type: object
  7897. type: object
  7898. x-kubernetes-map-type: atomic
  7899. matchLabelKeys:
  7900. items:
  7901. type: string
  7902. type: array
  7903. x-kubernetes-list-type: atomic
  7904. mismatchLabelKeys:
  7905. items:
  7906. type: string
  7907. type: array
  7908. x-kubernetes-list-type: atomic
  7909. namespaceSelector:
  7910. properties:
  7911. matchExpressions:
  7912. items:
  7913. properties:
  7914. key:
  7915. type: string
  7916. operator:
  7917. type: string
  7918. values:
  7919. items:
  7920. type: string
  7921. type: array
  7922. x-kubernetes-list-type: atomic
  7923. required:
  7924. - key
  7925. - operator
  7926. type: object
  7927. type: array
  7928. x-kubernetes-list-type: atomic
  7929. matchLabels:
  7930. additionalProperties:
  7931. type: string
  7932. type: object
  7933. type: object
  7934. x-kubernetes-map-type: atomic
  7935. namespaces:
  7936. items:
  7937. type: string
  7938. type: array
  7939. x-kubernetes-list-type: atomic
  7940. topologyKey:
  7941. type: string
  7942. required:
  7943. - topologyKey
  7944. type: object
  7945. weight:
  7946. format: int32
  7947. type: integer
  7948. required:
  7949. - podAffinityTerm
  7950. - weight
  7951. type: object
  7952. type: array
  7953. x-kubernetes-list-type: atomic
  7954. requiredDuringSchedulingIgnoredDuringExecution:
  7955. items:
  7956. properties:
  7957. labelSelector:
  7958. properties:
  7959. matchExpressions:
  7960. items:
  7961. properties:
  7962. key:
  7963. type: string
  7964. operator:
  7965. type: string
  7966. values:
  7967. items:
  7968. type: string
  7969. type: array
  7970. x-kubernetes-list-type: atomic
  7971. required:
  7972. - key
  7973. - operator
  7974. type: object
  7975. type: array
  7976. x-kubernetes-list-type: atomic
  7977. matchLabels:
  7978. additionalProperties:
  7979. type: string
  7980. type: object
  7981. type: object
  7982. x-kubernetes-map-type: atomic
  7983. matchLabelKeys:
  7984. items:
  7985. type: string
  7986. type: array
  7987. x-kubernetes-list-type: atomic
  7988. mismatchLabelKeys:
  7989. items:
  7990. type: string
  7991. type: array
  7992. x-kubernetes-list-type: atomic
  7993. namespaceSelector:
  7994. properties:
  7995. matchExpressions:
  7996. items:
  7997. properties:
  7998. key:
  7999. type: string
  8000. operator:
  8001. type: string
  8002. values:
  8003. items:
  8004. type: string
  8005. type: array
  8006. x-kubernetes-list-type: atomic
  8007. required:
  8008. - key
  8009. - operator
  8010. type: object
  8011. type: array
  8012. x-kubernetes-list-type: atomic
  8013. matchLabels:
  8014. additionalProperties:
  8015. type: string
  8016. type: object
  8017. type: object
  8018. x-kubernetes-map-type: atomic
  8019. namespaces:
  8020. items:
  8021. type: string
  8022. type: array
  8023. x-kubernetes-list-type: atomic
  8024. topologyKey:
  8025. type: string
  8026. required:
  8027. - topologyKey
  8028. type: object
  8029. type: array
  8030. x-kubernetes-list-type: atomic
  8031. type: object
  8032. podAntiAffinity:
  8033. properties:
  8034. preferredDuringSchedulingIgnoredDuringExecution:
  8035. items:
  8036. properties:
  8037. podAffinityTerm:
  8038. properties:
  8039. labelSelector:
  8040. properties:
  8041. matchExpressions:
  8042. items:
  8043. properties:
  8044. key:
  8045. type: string
  8046. operator:
  8047. type: string
  8048. values:
  8049. items:
  8050. type: string
  8051. type: array
  8052. x-kubernetes-list-type: atomic
  8053. required:
  8054. - key
  8055. - operator
  8056. type: object
  8057. type: array
  8058. x-kubernetes-list-type: atomic
  8059. matchLabels:
  8060. additionalProperties:
  8061. type: string
  8062. type: object
  8063. type: object
  8064. x-kubernetes-map-type: atomic
  8065. matchLabelKeys:
  8066. items:
  8067. type: string
  8068. type: array
  8069. x-kubernetes-list-type: atomic
  8070. mismatchLabelKeys:
  8071. items:
  8072. type: string
  8073. type: array
  8074. x-kubernetes-list-type: atomic
  8075. namespaceSelector:
  8076. properties:
  8077. matchExpressions:
  8078. items:
  8079. properties:
  8080. key:
  8081. type: string
  8082. operator:
  8083. type: string
  8084. values:
  8085. items:
  8086. type: string
  8087. type: array
  8088. x-kubernetes-list-type: atomic
  8089. required:
  8090. - key
  8091. - operator
  8092. type: object
  8093. type: array
  8094. x-kubernetes-list-type: atomic
  8095. matchLabels:
  8096. additionalProperties:
  8097. type: string
  8098. type: object
  8099. type: object
  8100. x-kubernetes-map-type: atomic
  8101. namespaces:
  8102. items:
  8103. type: string
  8104. type: array
  8105. x-kubernetes-list-type: atomic
  8106. topologyKey:
  8107. type: string
  8108. required:
  8109. - topologyKey
  8110. type: object
  8111. weight:
  8112. format: int32
  8113. type: integer
  8114. required:
  8115. - podAffinityTerm
  8116. - weight
  8117. type: object
  8118. type: array
  8119. x-kubernetes-list-type: atomic
  8120. requiredDuringSchedulingIgnoredDuringExecution:
  8121. items:
  8122. properties:
  8123. labelSelector:
  8124. properties:
  8125. matchExpressions:
  8126. items:
  8127. properties:
  8128. key:
  8129. type: string
  8130. operator:
  8131. type: string
  8132. values:
  8133. items:
  8134. type: string
  8135. type: array
  8136. x-kubernetes-list-type: atomic
  8137. required:
  8138. - key
  8139. - operator
  8140. type: object
  8141. type: array
  8142. x-kubernetes-list-type: atomic
  8143. matchLabels:
  8144. additionalProperties:
  8145. type: string
  8146. type: object
  8147. type: object
  8148. x-kubernetes-map-type: atomic
  8149. matchLabelKeys:
  8150. items:
  8151. type: string
  8152. type: array
  8153. x-kubernetes-list-type: atomic
  8154. mismatchLabelKeys:
  8155. items:
  8156. type: string
  8157. type: array
  8158. x-kubernetes-list-type: atomic
  8159. namespaceSelector:
  8160. properties:
  8161. matchExpressions:
  8162. items:
  8163. properties:
  8164. key:
  8165. type: string
  8166. operator:
  8167. type: string
  8168. values:
  8169. items:
  8170. type: string
  8171. type: array
  8172. x-kubernetes-list-type: atomic
  8173. required:
  8174. - key
  8175. - operator
  8176. type: object
  8177. type: array
  8178. x-kubernetes-list-type: atomic
  8179. matchLabels:
  8180. additionalProperties:
  8181. type: string
  8182. type: object
  8183. type: object
  8184. x-kubernetes-map-type: atomic
  8185. namespaces:
  8186. items:
  8187. type: string
  8188. type: array
  8189. x-kubernetes-list-type: atomic
  8190. topologyKey:
  8191. type: string
  8192. required:
  8193. - topologyKey
  8194. type: object
  8195. type: array
  8196. x-kubernetes-list-type: atomic
  8197. type: object
  8198. tolerations:
  8199. items:
  8200. properties:
  8201. effect:
  8202. type: string
  8203. key:
  8204. type: string
  8205. operator:
  8206. type: string
  8207. tolerationSeconds:
  8208. format: int64
  8209. type: integer
  8210. value:
  8211. type: string
  8212. type: object
  8213. type: array
  8214. topologySpreadConstraints:
  8215. items:
  8216. properties:
  8217. labelSelector:
  8218. properties:
  8219. matchExpressions:
  8220. items:
  8221. properties:
  8222. key:
  8223. type: string
  8224. operator:
  8225. type: string
  8226. values:
  8227. items:
  8228. type: string
  8229. type: array
  8230. x-kubernetes-list-type: atomic
  8231. required:
  8232. - key
  8233. - operator
  8234. type: object
  8235. type: array
  8236. x-kubernetes-list-type: atomic
  8237. matchLabels:
  8238. additionalProperties:
  8239. type: string
  8240. type: object
  8241. type: object
  8242. x-kubernetes-map-type: atomic
  8243. matchLabelKeys:
  8244. items:
  8245. type: string
  8246. type: array
  8247. x-kubernetes-list-type: atomic
  8248. maxSkew:
  8249. format: int32
  8250. type: integer
  8251. minDomains:
  8252. format: int32
  8253. type: integer
  8254. nodeAffinityPolicy:
  8255. type: string
  8256. nodeTaintsPolicy:
  8257. type: string
  8258. topologyKey:
  8259. type: string
  8260. whenUnsatisfiable:
  8261. type: string
  8262. required:
  8263. - maxSkew
  8264. - topologyKey
  8265. - whenUnsatisfiable
  8266. type: object
  8267. type: array
  8268. type: object
  8269. x-kubernetes-preserve-unknown-fields: true
  8270. priorityClassName:
  8271. description: PriorityClassName sets priority classes on components
  8272. type: string
  8273. resources:
  8274. description: The resource requirements for the mds pods
  8275. nullable: true
  8276. properties:
  8277. claims:
  8278. description: |-
  8279. Claims lists the names of resources, defined in spec.resourceClaims,
  8280. that are used by this container.
  8281. This is an alpha field and requires enabling the
  8282. DynamicResourceAllocation feature gate.
  8283. This field is immutable. It can only be set for containers.
  8284. items:
  8285. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  8286. properties:
  8287. name:
  8288. description: |-
  8289. Name must match the name of one entry in pod.spec.resourceClaims of
  8290. the Pod where this field is used. It makes that resource available
  8291. inside a container.
  8292. type: string
  8293. request:
  8294. description: |-
  8295. Request is the name chosen for a request in the referenced claim.
  8296. If empty, everything from the claim is made available, otherwise
  8297. only the result of this request.
  8298. type: string
  8299. required:
  8300. - name
  8301. type: object
  8302. type: array
  8303. x-kubernetes-list-map-keys:
  8304. - name
  8305. x-kubernetes-list-type: map
  8306. limits:
  8307. additionalProperties:
  8308. anyOf:
  8309. - type: integer
  8310. - type: string
  8311. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8312. x-kubernetes-int-or-string: true
  8313. description: |-
  8314. Limits describes the maximum amount of compute resources allowed.
  8315. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  8316. type: object
  8317. requests:
  8318. additionalProperties:
  8319. anyOf:
  8320. - type: integer
  8321. - type: string
  8322. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8323. x-kubernetes-int-or-string: true
  8324. description: |-
  8325. Requests describes the minimum amount of compute resources required.
  8326. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  8327. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  8328. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  8329. type: object
  8330. type: object
  8331. x-kubernetes-preserve-unknown-fields: true
  8332. startupProbe:
  8333. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  8334. properties:
  8335. disabled:
  8336. description: Disabled determines whether probe is disable or not
  8337. type: boolean
  8338. probe:
  8339. description: |-
  8340. Probe describes a health check to be performed against a container to determine whether it is
  8341. alive or ready to receive traffic.
  8342. properties:
  8343. exec:
  8344. description: Exec specifies a command to execute in the container.
  8345. properties:
  8346. command:
  8347. description: |-
  8348. Command is the command line to execute inside the container, the working directory for the
  8349. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  8350. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  8351. a shell, you need to explicitly call out to that shell.
  8352. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  8353. items:
  8354. type: string
  8355. type: array
  8356. x-kubernetes-list-type: atomic
  8357. type: object
  8358. failureThreshold:
  8359. description: |-
  8360. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  8361. Defaults to 3. Minimum value is 1.
  8362. format: int32
  8363. type: integer
  8364. grpc:
  8365. description: GRPC specifies a GRPC HealthCheckRequest.
  8366. properties:
  8367. port:
  8368. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  8369. format: int32
  8370. type: integer
  8371. service:
  8372. default: ""
  8373. description: |-
  8374. Service is the name of the service to place in the gRPC HealthCheckRequest
  8375. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  8376. If this is not specified, the default behavior is defined by gRPC.
  8377. type: string
  8378. required:
  8379. - port
  8380. type: object
  8381. httpGet:
  8382. description: HTTPGet specifies an HTTP GET request to perform.
  8383. properties:
  8384. host:
  8385. description: |-
  8386. Host name to connect to, defaults to the pod IP. You probably want to set
  8387. "Host" in httpHeaders instead.
  8388. type: string
  8389. httpHeaders:
  8390. description: Custom headers to set in the request. HTTP allows repeated headers.
  8391. items:
  8392. description: HTTPHeader describes a custom header to be used in HTTP probes
  8393. properties:
  8394. name:
  8395. description: |-
  8396. The header field name.
  8397. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  8398. type: string
  8399. value:
  8400. description: The header field value
  8401. type: string
  8402. required:
  8403. - name
  8404. - value
  8405. type: object
  8406. type: array
  8407. x-kubernetes-list-type: atomic
  8408. path:
  8409. description: Path to access on the HTTP server.
  8410. type: string
  8411. port:
  8412. anyOf:
  8413. - type: integer
  8414. - type: string
  8415. description: |-
  8416. Name or number of the port to access on the container.
  8417. Number must be in the range 1 to 65535.
  8418. Name must be an IANA_SVC_NAME.
  8419. x-kubernetes-int-or-string: true
  8420. scheme:
  8421. description: |-
  8422. Scheme to use for connecting to the host.
  8423. Defaults to HTTP.
  8424. type: string
  8425. required:
  8426. - port
  8427. type: object
  8428. initialDelaySeconds:
  8429. description: |-
  8430. Number of seconds after the container has started before liveness probes are initiated.
  8431. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  8432. format: int32
  8433. type: integer
  8434. periodSeconds:
  8435. description: |-
  8436. How often (in seconds) to perform the probe.
  8437. Default to 10 seconds. Minimum value is 1.
  8438. format: int32
  8439. type: integer
  8440. successThreshold:
  8441. description: |-
  8442. Minimum consecutive successes for the probe to be considered successful after having failed.
  8443. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  8444. format: int32
  8445. type: integer
  8446. tcpSocket:
  8447. description: TCPSocket specifies a connection to a TCP port.
  8448. properties:
  8449. host:
  8450. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  8451. type: string
  8452. port:
  8453. anyOf:
  8454. - type: integer
  8455. - type: string
  8456. description: |-
  8457. Number or name of the port to access on the container.
  8458. Number must be in the range 1 to 65535.
  8459. Name must be an IANA_SVC_NAME.
  8460. x-kubernetes-int-or-string: true
  8461. required:
  8462. - port
  8463. type: object
  8464. terminationGracePeriodSeconds:
  8465. format: int64
  8466. type: integer
  8467. timeoutSeconds:
  8468. description: |-
  8469. Number of seconds after which the probe times out.
  8470. Defaults to 1 second. Minimum value is 1.
  8471. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  8472. format: int32
  8473. type: integer
  8474. type: object
  8475. type: object
  8476. required:
  8477. - activeCount
  8478. type: object
  8479. mirroring:
  8480. description: The mirroring settings
  8481. nullable: true
  8482. properties:
  8483. enabled:
  8484. description: Enabled whether this filesystem is mirrored or not
  8485. type: boolean
  8486. peers:
  8487. description: Peers represents the peers spec
  8488. nullable: true
  8489. properties:
  8490. secretNames:
  8491. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  8492. items:
  8493. type: string
  8494. type: array
  8495. type: object
  8496. snapshotRetention:
  8497. description: |-
  8498. Retention is the retention policy for a snapshot schedule
  8499. One path has exactly one retention policy.
  8500. A policy can however contain multiple count-time period pairs in order to specify complex retention policies
  8501. items:
  8502. description: SnapshotScheduleRetentionSpec is a retention policy
  8503. properties:
  8504. duration:
  8505. description: Duration represents the retention duration for a snapshot
  8506. type: string
  8507. path:
  8508. description: Path is the path to snapshot
  8509. type: string
  8510. type: object
  8511. type: array
  8512. snapshotSchedules:
  8513. description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
  8514. items:
  8515. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  8516. properties:
  8517. interval:
  8518. description: Interval represent the periodicity of the snapshot.
  8519. type: string
  8520. path:
  8521. description: Path is the path to snapshot, only valid for CephFS
  8522. type: string
  8523. startTime:
  8524. description: StartTime indicates when to start the snapshot
  8525. type: string
  8526. type: object
  8527. type: array
  8528. type: object
  8529. preserveFilesystemOnDelete:
  8530. description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
  8531. type: boolean
  8532. preservePoolNames:
  8533. description: Preserve pool names as specified
  8534. type: boolean
  8535. preservePoolsOnDelete:
  8536. description: Preserve pools on filesystem deletion
  8537. type: boolean
  8538. statusCheck:
  8539. description: The mirroring statusCheck
  8540. properties:
  8541. mirror:
  8542. description: HealthCheckSpec represents the health check of an object store bucket
  8543. nullable: true
  8544. properties:
  8545. disabled:
  8546. type: boolean
  8547. interval:
  8548. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  8549. type: string
  8550. timeout:
  8551. type: string
  8552. type: object
  8553. type: object
  8554. x-kubernetes-preserve-unknown-fields: true
  8555. required:
  8556. - dataPools
  8557. - metadataPool
  8558. - metadataServer
  8559. type: object
  8560. status:
  8561. description: CephFilesystemStatus represents the status of a Ceph Filesystem
  8562. properties:
  8563. conditions:
  8564. items:
  8565. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  8566. properties:
  8567. lastHeartbeatTime:
  8568. format: date-time
  8569. type: string
  8570. lastTransitionTime:
  8571. format: date-time
  8572. type: string
  8573. message:
  8574. type: string
  8575. reason:
  8576. description: ConditionReason is a reason for a condition
  8577. type: string
  8578. status:
  8579. type: string
  8580. type:
  8581. description: ConditionType represent a resource's status
  8582. type: string
  8583. type: object
  8584. type: array
  8585. info:
  8586. additionalProperties:
  8587. type: string
  8588. description: Use only info and put mirroringStatus in it?
  8589. nullable: true
  8590. type: object
  8591. mirroringStatus:
  8592. description: MirroringStatus is the filesystem mirroring status
  8593. properties:
  8594. daemonsStatus:
  8595. description: PoolMirroringStatus is the mirroring status of a filesystem
  8596. items:
  8597. description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem
  8598. properties:
  8599. daemon_id:
  8600. description: DaemonID is the cephfs-mirror name
  8601. type: integer
  8602. filesystems:
  8603. description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
  8604. items:
  8605. description: FilesystemsSpec is spec for the mirrored filesystem
  8606. properties:
  8607. directory_count:
  8608. description: DirectoryCount is the number of directories in the filesystem
  8609. type: integer
  8610. filesystem_id:
  8611. description: FilesystemID is the filesystem identifier
  8612. type: integer
  8613. name:
  8614. description: Name is name of the filesystem
  8615. type: string
  8616. peers:
  8617. description: Peers represents the mirroring peers
  8618. items:
  8619. description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror
  8620. properties:
  8621. remote:
  8622. description: Remote are the remote cluster information
  8623. properties:
  8624. client_name:
  8625. description: ClientName is cephx name
  8626. type: string
  8627. cluster_name:
  8628. description: ClusterName is the name of the cluster
  8629. type: string
  8630. fs_name:
  8631. description: FsName is the filesystem name
  8632. type: string
  8633. type: object
  8634. stats:
  8635. description: Stats are the stat a peer mirror
  8636. properties:
  8637. failure_count:
  8638. description: FailureCount is the number of mirroring failure
  8639. type: integer
  8640. recovery_count:
  8641. description: RecoveryCount is the number of recovery attempted after failures
  8642. type: integer
  8643. type: object
  8644. uuid:
  8645. description: UUID is the peer unique identifier
  8646. type: string
  8647. type: object
  8648. type: array
  8649. type: object
  8650. type: array
  8651. type: object
  8652. nullable: true
  8653. type: array
  8654. details:
  8655. description: Details contains potential status errors
  8656. type: string
  8657. lastChanged:
  8658. description: LastChanged is the last time time the status last changed
  8659. type: string
  8660. lastChecked:
  8661. description: LastChecked is the last time time the status was checked
  8662. type: string
  8663. type: object
  8664. observedGeneration:
  8665. description: ObservedGeneration is the latest generation observed by the controller.
  8666. format: int64
  8667. type: integer
  8668. phase:
  8669. description: ConditionType represent a resource's status
  8670. type: string
  8671. snapshotScheduleStatus:
  8672. description: FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
  8673. properties:
  8674. details:
  8675. description: Details contains potential status errors
  8676. type: string
  8677. lastChanged:
  8678. description: LastChanged is the last time time the status last changed
  8679. type: string
  8680. lastChecked:
  8681. description: LastChecked is the last time time the status was checked
  8682. type: string
  8683. snapshotSchedules:
  8684. description: SnapshotSchedules is the list of snapshots scheduled
  8685. items:
  8686. description: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  8687. properties:
  8688. fs:
  8689. description: Fs is the name of the Ceph Filesystem
  8690. type: string
  8691. path:
  8692. description: Path is the path on the filesystem
  8693. type: string
  8694. rel_path:
  8695. type: string
  8696. retention:
  8697. description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
  8698. properties:
  8699. active:
  8700. description: Active is whether the scheduled is active or not
  8701. type: boolean
  8702. created:
  8703. description: Created is when the snapshot schedule was created
  8704. type: string
  8705. created_count:
  8706. description: CreatedCount is total amount of snapshots
  8707. type: integer
  8708. first:
  8709. description: First is when the first snapshot schedule was taken
  8710. type: string
  8711. last:
  8712. description: Last is when the last snapshot schedule was taken
  8713. type: string
  8714. last_pruned:
  8715. description: LastPruned is when the last snapshot schedule was pruned
  8716. type: string
  8717. pruned_count:
  8718. description: PrunedCount is total amount of pruned snapshots
  8719. type: integer
  8720. start:
  8721. description: Start is when the snapshot schedule starts
  8722. type: string
  8723. type: object
  8724. schedule:
  8725. type: string
  8726. subvol:
  8727. description: Subvol is the name of the sub volume
  8728. type: string
  8729. type: object
  8730. nullable: true
  8731. type: array
  8732. type: object
  8733. type: object
  8734. x-kubernetes-preserve-unknown-fields: true
  8735. required:
  8736. - metadata
  8737. - spec
  8738. type: object
  8739. served: true
  8740. storage: true
  8741. subresources:
  8742. status: {}
  8743. ---
  8744. apiVersion: apiextensions.k8s.io/v1
  8745. kind: CustomResourceDefinition
  8746. metadata:
  8747. annotations:
  8748. controller-gen.kubebuilder.io/version: v0.16.1
  8749. name: cephfilesystemsubvolumegroups.ceph.rook.io
  8750. spec:
  8751. group: ceph.rook.io
  8752. names:
  8753. kind: CephFilesystemSubVolumeGroup
  8754. listKind: CephFilesystemSubVolumeGroupList
  8755. plural: cephfilesystemsubvolumegroups
  8756. shortNames:
  8757. - cephfssvg
  8758. - cephsvg
  8759. singular: cephfilesystemsubvolumegroup
  8760. scope: Namespaced
  8761. versions:
  8762. - additionalPrinterColumns:
  8763. - jsonPath: .status.phase
  8764. name: Phase
  8765. type: string
  8766. - description: Name of the CephFileSystem
  8767. jsonPath: .spec.filesystemName
  8768. name: Filesystem
  8769. type: string
  8770. - jsonPath: .spec.quota
  8771. name: Quota
  8772. type: string
  8773. - jsonPath: .status.info.pinning
  8774. name: Pinning
  8775. priority: 1
  8776. type: string
  8777. - jsonPath: .metadata.creationTimestamp
  8778. name: Age
  8779. type: date
  8780. name: v1
  8781. schema:
  8782. openAPIV3Schema:
  8783. description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
  8784. properties:
  8785. apiVersion:
  8786. description: |-
  8787. APIVersion defines the versioned schema of this representation of an object.
  8788. Servers should convert recognized schemas to the latest internal value, and
  8789. may reject unrecognized values.
  8790. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  8791. type: string
  8792. kind:
  8793. description: |-
  8794. Kind is a string value representing the REST resource this object represents.
  8795. Servers may infer this from the endpoint the client submits requests to.
  8796. Cannot be updated.
  8797. In CamelCase.
  8798. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  8799. type: string
  8800. metadata:
  8801. type: object
  8802. spec:
  8803. description: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
  8804. properties:
  8805. dataPoolName:
  8806. description: The data pool name for the Ceph Filesystem subvolume group layout, if the default CephFS pool is not desired.
  8807. type: string
  8808. filesystemName:
  8809. description: |-
  8810. FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of
  8811. the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the
  8812. list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem
  8813. abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
  8814. type: string
  8815. x-kubernetes-validations:
  8816. - message: filesystemName is immutable
  8817. rule: self == oldSelf
  8818. name:
  8819. description: The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR.
  8820. type: string
  8821. x-kubernetes-validations:
  8822. - message: name is immutable
  8823. rule: self == oldSelf
  8824. pinning:
  8825. description: |-
  8826. Pinning configuration of CephFilesystemSubVolumeGroup,
  8827. reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups
  8828. only one out of (export, distributed, random) can be set at a time
  8829. properties:
  8830. distributed:
  8831. maximum: 1
  8832. minimum: 0
  8833. nullable: true
  8834. type: integer
  8835. export:
  8836. maximum: 256
  8837. minimum: -1
  8838. nullable: true
  8839. type: integer
  8840. random:
  8841. maximum: 1
  8842. minimum: 0
  8843. nullable: true
  8844. type: number
  8845. type: object
  8846. x-kubernetes-validations:
  8847. - message: only one pinning type should be set
  8848. rule: (has(self.export) && !has(self.distributed) && !has(self.random)) || (!has(self.export) && has(self.distributed) && !has(self.random)) || (!has(self.export) && !has(self.distributed) && has(self.random)) || (!has(self.export) && !has(self.distributed) && !has(self.random))
  8849. quota:
  8850. anyOf:
  8851. - type: integer
  8852. - type: string
  8853. description: Quota size of the Ceph Filesystem subvolume group.
  8854. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8855. x-kubernetes-int-or-string: true
  8856. required:
  8857. - filesystemName
  8858. type: object
  8859. status:
  8860. description: Status represents the status of a CephFilesystem SubvolumeGroup
  8861. properties:
  8862. info:
  8863. additionalProperties:
  8864. type: string
  8865. nullable: true
  8866. type: object
  8867. observedGeneration:
  8868. description: ObservedGeneration is the latest generation observed by the controller.
  8869. format: int64
  8870. type: integer
  8871. phase:
  8872. description: ConditionType represent a resource's status
  8873. type: string
  8874. type: object
  8875. x-kubernetes-preserve-unknown-fields: true
  8876. required:
  8877. - metadata
  8878. - spec
  8879. type: object
  8880. served: true
  8881. storage: true
  8882. subresources:
  8883. status: {}
  8884. ---
  8885. apiVersion: apiextensions.k8s.io/v1
  8886. kind: CustomResourceDefinition
  8887. metadata:
  8888. annotations:
  8889. controller-gen.kubebuilder.io/version: v0.16.1
  8890. name: cephnfses.ceph.rook.io
  8891. spec:
  8892. group: ceph.rook.io
  8893. names:
  8894. kind: CephNFS
  8895. listKind: CephNFSList
  8896. plural: cephnfses
  8897. shortNames:
  8898. - nfs
  8899. singular: cephnfs
  8900. scope: Namespaced
  8901. versions:
  8902. - name: v1
  8903. schema:
  8904. openAPIV3Schema:
  8905. description: CephNFS represents a Ceph NFS
  8906. properties:
  8907. apiVersion:
  8908. description: |-
  8909. APIVersion defines the versioned schema of this representation of an object.
  8910. Servers should convert recognized schemas to the latest internal value, and
  8911. may reject unrecognized values.
  8912. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  8913. type: string
  8914. kind:
  8915. description: |-
  8916. Kind is a string value representing the REST resource this object represents.
  8917. Servers may infer this from the endpoint the client submits requests to.
  8918. Cannot be updated.
  8919. In CamelCase.
  8920. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  8921. type: string
  8922. metadata:
  8923. type: object
  8924. spec:
  8925. description: NFSGaneshaSpec represents the spec of an nfs ganesha server
  8926. properties:
  8927. rados:
  8928. description: RADOS is the Ganesha RADOS specification
  8929. nullable: true
  8930. properties:
  8931. namespace:
  8932. description: |-
  8933. The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored.
  8934. This setting is deprecated as it is internally set to the name of the CephNFS.
  8935. type: string
  8936. pool:
  8937. description: |-
  8938. The Ceph pool used store the shared configuration for NFS-Ganesha daemons.
  8939. This setting is deprecated, as it is internally required to be ".nfs".
  8940. type: string
  8941. type: object
  8942. security:
  8943. description: Security allows specifying security configurations for the NFS cluster
  8944. nullable: true
  8945. properties:
  8946. kerberos:
  8947. description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
  8948. nullable: true
  8949. properties:
  8950. configFiles:
  8951. description: |-
  8952. ConfigFiles defines where the Kerberos configuration should be sourced from. Config files
  8953. will be placed into the `/etc/krb5.conf.rook/` directory.
  8954. If this is left empty, Rook will not add any files. This allows you to manage the files
  8955. yourself however you wish. For example, you may build them into your custom Ceph container
  8956. image or use the Vault agent injector to securely add the files via annotations on the
  8957. CephNFS spec (passed to the NFS server pods).
  8958. Rook configures Kerberos to log to stderr. We suggest removing logging sections from config
  8959. files to avoid consuming unnecessary disk space from logging to files.
  8960. properties:
  8961. volumeSource:
  8962. properties:
  8963. configMap:
  8964. properties:
  8965. defaultMode:
  8966. format: int32
  8967. type: integer
  8968. items:
  8969. items:
  8970. properties:
  8971. key:
  8972. type: string
  8973. mode:
  8974. format: int32
  8975. type: integer
  8976. path:
  8977. type: string
  8978. required:
  8979. - key
  8980. - path
  8981. type: object
  8982. type: array
  8983. x-kubernetes-list-type: atomic
  8984. name:
  8985. default: ""
  8986. type: string
  8987. optional:
  8988. type: boolean
  8989. type: object
  8990. x-kubernetes-map-type: atomic
  8991. emptyDir:
  8992. properties:
  8993. medium:
  8994. type: string
  8995. sizeLimit:
  8996. anyOf:
  8997. - type: integer
  8998. - type: string
  8999. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9000. x-kubernetes-int-or-string: true
  9001. type: object
  9002. hostPath:
  9003. properties:
  9004. path:
  9005. type: string
  9006. type:
  9007. type: string
  9008. required:
  9009. - path
  9010. type: object
  9011. persistentVolumeClaim:
  9012. properties:
  9013. claimName:
  9014. type: string
  9015. readOnly:
  9016. type: boolean
  9017. required:
  9018. - claimName
  9019. type: object
  9020. projected:
  9021. properties:
  9022. defaultMode:
  9023. format: int32
  9024. type: integer
  9025. sources:
  9026. items:
  9027. properties:
  9028. clusterTrustBundle:
  9029. properties:
  9030. labelSelector:
  9031. properties:
  9032. matchExpressions:
  9033. items:
  9034. properties:
  9035. key:
  9036. type: string
  9037. operator:
  9038. type: string
  9039. values:
  9040. items:
  9041. type: string
  9042. type: array
  9043. x-kubernetes-list-type: atomic
  9044. required:
  9045. - key
  9046. - operator
  9047. type: object
  9048. type: array
  9049. x-kubernetes-list-type: atomic
  9050. matchLabels:
  9051. additionalProperties:
  9052. type: string
  9053. type: object
  9054. type: object
  9055. x-kubernetes-map-type: atomic
  9056. name:
  9057. type: string
  9058. optional:
  9059. type: boolean
  9060. path:
  9061. type: string
  9062. signerName:
  9063. type: string
  9064. required:
  9065. - path
  9066. type: object
  9067. configMap:
  9068. properties:
  9069. items:
  9070. items:
  9071. properties:
  9072. key:
  9073. type: string
  9074. mode:
  9075. format: int32
  9076. type: integer
  9077. path:
  9078. type: string
  9079. required:
  9080. - key
  9081. - path
  9082. type: object
  9083. type: array
  9084. x-kubernetes-list-type: atomic
  9085. name:
  9086. default: ""
  9087. type: string
  9088. optional:
  9089. type: boolean
  9090. type: object
  9091. x-kubernetes-map-type: atomic
  9092. downwardAPI:
  9093. properties:
  9094. items:
  9095. items:
  9096. properties:
  9097. fieldRef:
  9098. properties:
  9099. apiVersion:
  9100. type: string
  9101. fieldPath:
  9102. type: string
  9103. required:
  9104. - fieldPath
  9105. type: object
  9106. x-kubernetes-map-type: atomic
  9107. mode:
  9108. format: int32
  9109. type: integer
  9110. path:
  9111. type: string
  9112. resourceFieldRef:
  9113. properties:
  9114. containerName:
  9115. type: string
  9116. divisor:
  9117. anyOf:
  9118. - type: integer
  9119. - type: string
  9120. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9121. x-kubernetes-int-or-string: true
  9122. resource:
  9123. type: string
  9124. required:
  9125. - resource
  9126. type: object
  9127. x-kubernetes-map-type: atomic
  9128. required:
  9129. - path
  9130. type: object
  9131. type: array
  9132. x-kubernetes-list-type: atomic
  9133. type: object
  9134. secret:
  9135. properties:
  9136. items:
  9137. items:
  9138. properties:
  9139. key:
  9140. type: string
  9141. mode:
  9142. format: int32
  9143. type: integer
  9144. path:
  9145. type: string
  9146. required:
  9147. - key
  9148. - path
  9149. type: object
  9150. type: array
  9151. x-kubernetes-list-type: atomic
  9152. name:
  9153. default: ""
  9154. type: string
  9155. optional:
  9156. type: boolean
  9157. type: object
  9158. x-kubernetes-map-type: atomic
  9159. serviceAccountToken:
  9160. properties:
  9161. audience:
  9162. type: string
  9163. expirationSeconds:
  9164. format: int64
  9165. type: integer
  9166. path:
  9167. type: string
  9168. required:
  9169. - path
  9170. type: object
  9171. type: object
  9172. type: array
  9173. x-kubernetes-list-type: atomic
  9174. type: object
  9175. secret:
  9176. properties:
  9177. defaultMode:
  9178. format: int32
  9179. type: integer
  9180. items:
  9181. items:
  9182. properties:
  9183. key:
  9184. type: string
  9185. mode:
  9186. format: int32
  9187. type: integer
  9188. path:
  9189. type: string
  9190. required:
  9191. - key
  9192. - path
  9193. type: object
  9194. type: array
  9195. x-kubernetes-list-type: atomic
  9196. optional:
  9197. type: boolean
  9198. secretName:
  9199. type: string
  9200. type: object
  9201. type: object
  9202. type: object
  9203. domainName:
  9204. description: DomainName should be set to the Kerberos Realm.
  9205. type: string
  9206. keytabFile:
  9207. description: |-
  9208. KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be
  9209. placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file.
  9210. This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you
  9211. may build it into your custom Ceph container image or use the Vault agent injector to
  9212. securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  9213. properties:
  9214. volumeSource:
  9215. properties:
  9216. configMap:
  9217. properties:
  9218. defaultMode:
  9219. format: int32
  9220. type: integer
  9221. items:
  9222. items:
  9223. properties:
  9224. key:
  9225. type: string
  9226. mode:
  9227. format: int32
  9228. type: integer
  9229. path:
  9230. type: string
  9231. required:
  9232. - key
  9233. - path
  9234. type: object
  9235. type: array
  9236. x-kubernetes-list-type: atomic
  9237. name:
  9238. default: ""
  9239. type: string
  9240. optional:
  9241. type: boolean
  9242. type: object
  9243. x-kubernetes-map-type: atomic
  9244. emptyDir:
  9245. properties:
  9246. medium:
  9247. type: string
  9248. sizeLimit:
  9249. anyOf:
  9250. - type: integer
  9251. - type: string
  9252. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9253. x-kubernetes-int-or-string: true
  9254. type: object
  9255. hostPath:
  9256. properties:
  9257. path:
  9258. type: string
  9259. type:
  9260. type: string
  9261. required:
  9262. - path
  9263. type: object
  9264. persistentVolumeClaim:
  9265. properties:
  9266. claimName:
  9267. type: string
  9268. readOnly:
  9269. type: boolean
  9270. required:
  9271. - claimName
  9272. type: object
  9273. projected:
  9274. properties:
  9275. defaultMode:
  9276. format: int32
  9277. type: integer
  9278. sources:
  9279. items:
  9280. properties:
  9281. clusterTrustBundle:
  9282. properties:
  9283. labelSelector:
  9284. properties:
  9285. matchExpressions:
  9286. items:
  9287. properties:
  9288. key:
  9289. type: string
  9290. operator:
  9291. type: string
  9292. values:
  9293. items:
  9294. type: string
  9295. type: array
  9296. x-kubernetes-list-type: atomic
  9297. required:
  9298. - key
  9299. - operator
  9300. type: object
  9301. type: array
  9302. x-kubernetes-list-type: atomic
  9303. matchLabels:
  9304. additionalProperties:
  9305. type: string
  9306. type: object
  9307. type: object
  9308. x-kubernetes-map-type: atomic
  9309. name:
  9310. type: string
  9311. optional:
  9312. type: boolean
  9313. path:
  9314. type: string
  9315. signerName:
  9316. type: string
  9317. required:
  9318. - path
  9319. type: object
  9320. configMap:
  9321. properties:
  9322. items:
  9323. items:
  9324. properties:
  9325. key:
  9326. type: string
  9327. mode:
  9328. format: int32
  9329. type: integer
  9330. path:
  9331. type: string
  9332. required:
  9333. - key
  9334. - path
  9335. type: object
  9336. type: array
  9337. x-kubernetes-list-type: atomic
  9338. name:
  9339. default: ""
  9340. type: string
  9341. optional:
  9342. type: boolean
  9343. type: object
  9344. x-kubernetes-map-type: atomic
  9345. downwardAPI:
  9346. properties:
  9347. items:
  9348. items:
  9349. properties:
  9350. fieldRef:
  9351. properties:
  9352. apiVersion:
  9353. type: string
  9354. fieldPath:
  9355. type: string
  9356. required:
  9357. - fieldPath
  9358. type: object
  9359. x-kubernetes-map-type: atomic
  9360. mode:
  9361. format: int32
  9362. type: integer
  9363. path:
  9364. type: string
  9365. resourceFieldRef:
  9366. properties:
  9367. containerName:
  9368. type: string
  9369. divisor:
  9370. anyOf:
  9371. - type: integer
  9372. - type: string
  9373. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9374. x-kubernetes-int-or-string: true
  9375. resource:
  9376. type: string
  9377. required:
  9378. - resource
  9379. type: object
  9380. x-kubernetes-map-type: atomic
  9381. required:
  9382. - path
  9383. type: object
  9384. type: array
  9385. x-kubernetes-list-type: atomic
  9386. type: object
  9387. secret:
  9388. properties:
  9389. items:
  9390. items:
  9391. properties:
  9392. key:
  9393. type: string
  9394. mode:
  9395. format: int32
  9396. type: integer
  9397. path:
  9398. type: string
  9399. required:
  9400. - key
  9401. - path
  9402. type: object
  9403. type: array
  9404. x-kubernetes-list-type: atomic
  9405. name:
  9406. default: ""
  9407. type: string
  9408. optional:
  9409. type: boolean
  9410. type: object
  9411. x-kubernetes-map-type: atomic
  9412. serviceAccountToken:
  9413. properties:
  9414. audience:
  9415. type: string
  9416. expirationSeconds:
  9417. format: int64
  9418. type: integer
  9419. path:
  9420. type: string
  9421. required:
  9422. - path
  9423. type: object
  9424. type: object
  9425. type: array
  9426. x-kubernetes-list-type: atomic
  9427. type: object
  9428. secret:
  9429. properties:
  9430. defaultMode:
  9431. format: int32
  9432. type: integer
  9433. items:
  9434. items:
  9435. properties:
  9436. key:
  9437. type: string
  9438. mode:
  9439. format: int32
  9440. type: integer
  9441. path:
  9442. type: string
  9443. required:
  9444. - key
  9445. - path
  9446. type: object
  9447. type: array
  9448. x-kubernetes-list-type: atomic
  9449. optional:
  9450. type: boolean
  9451. secretName:
  9452. type: string
  9453. type: object
  9454. type: object
  9455. type: object
  9456. principalName:
  9457. default: nfs
  9458. description: |-
  9459. PrincipalName corresponds directly to NFS-Ganesha's NFS_KRB5:PrincipalName config. In
  9460. practice, this is the service prefix of the principal name. The default is "nfs".
  9461. This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between)
  9462. and (b) the Realm configured in the user-provided krb5.conf to determine the full principal
  9463. name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net.
  9464. See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.
  9465. type: string
  9466. type: object
  9467. sssd:
  9468. description: |-
  9469. SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to
  9470. provide user ID mapping from a number of sources. See https://sssd.io for more information
  9471. about the SSSD project.
  9472. nullable: true
  9473. properties:
  9474. sidecar:
  9475. description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
  9476. properties:
  9477. additionalFiles:
  9478. description: |-
  9479. AdditionalFiles defines any number of additional files that should be mounted into the SSSD
  9480. sidecar with a directory root of `/etc/sssd/rook-additional/`.
  9481. These files may be referenced by the sssd.conf config file.
  9482. items:
  9483. description: |-
  9484. AdditionalVolumeMount represents the source from where additional files in pod containers
  9485. should come from and what subdirectory they are made available in.
  9486. properties:
  9487. subPath:
  9488. description: |-
  9489. SubPath defines the sub-path (subdirectory) of the directory root where the volumeSource will
  9490. be mounted. All files/keys in the volume source's volume will be mounted to the subdirectory.
  9491. This is not the same as the Kubernetes `subPath` volume mount option.
  9492. Each subPath definition must be unique and must not contain ':'.
  9493. minLength: 1
  9494. pattern: ^[^:]+$
  9495. type: string
  9496. volumeSource:
  9497. properties:
  9498. configMap:
  9499. properties:
  9500. defaultMode:
  9501. format: int32
  9502. type: integer
  9503. items:
  9504. items:
  9505. properties:
  9506. key:
  9507. type: string
  9508. mode:
  9509. format: int32
  9510. type: integer
  9511. path:
  9512. type: string
  9513. required:
  9514. - key
  9515. - path
  9516. type: object
  9517. type: array
  9518. x-kubernetes-list-type: atomic
  9519. name:
  9520. default: ""
  9521. type: string
  9522. optional:
  9523. type: boolean
  9524. type: object
  9525. x-kubernetes-map-type: atomic
  9526. emptyDir:
  9527. properties:
  9528. medium:
  9529. type: string
  9530. sizeLimit:
  9531. anyOf:
  9532. - type: integer
  9533. - type: string
  9534. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9535. x-kubernetes-int-or-string: true
  9536. type: object
  9537. hostPath:
  9538. properties:
  9539. path:
  9540. type: string
  9541. type:
  9542. type: string
  9543. required:
  9544. - path
  9545. type: object
  9546. persistentVolumeClaim:
  9547. properties:
  9548. claimName:
  9549. type: string
  9550. readOnly:
  9551. type: boolean
  9552. required:
  9553. - claimName
  9554. type: object
  9555. projected:
  9556. properties:
  9557. defaultMode:
  9558. format: int32
  9559. type: integer
  9560. sources:
  9561. items:
  9562. properties:
  9563. clusterTrustBundle:
  9564. properties:
  9565. labelSelector:
  9566. properties:
  9567. matchExpressions:
  9568. items:
  9569. properties:
  9570. key:
  9571. type: string
  9572. operator:
  9573. type: string
  9574. values:
  9575. items:
  9576. type: string
  9577. type: array
  9578. x-kubernetes-list-type: atomic
  9579. required:
  9580. - key
  9581. - operator
  9582. type: object
  9583. type: array
  9584. x-kubernetes-list-type: atomic
  9585. matchLabels:
  9586. additionalProperties:
  9587. type: string
  9588. type: object
  9589. type: object
  9590. x-kubernetes-map-type: atomic
  9591. name:
  9592. type: string
  9593. optional:
  9594. type: boolean
  9595. path:
  9596. type: string
  9597. signerName:
  9598. type: string
  9599. required:
  9600. - path
  9601. type: object
  9602. configMap:
  9603. properties:
  9604. items:
  9605. items:
  9606. properties:
  9607. key:
  9608. type: string
  9609. mode:
  9610. format: int32
  9611. type: integer
  9612. path:
  9613. type: string
  9614. required:
  9615. - key
  9616. - path
  9617. type: object
  9618. type: array
  9619. x-kubernetes-list-type: atomic
  9620. name:
  9621. default: ""
  9622. type: string
  9623. optional:
  9624. type: boolean
  9625. type: object
  9626. x-kubernetes-map-type: atomic
  9627. downwardAPI:
  9628. properties:
  9629. items:
  9630. items:
  9631. properties:
  9632. fieldRef:
  9633. properties:
  9634. apiVersion:
  9635. type: string
  9636. fieldPath:
  9637. type: string
  9638. required:
  9639. - fieldPath
  9640. type: object
  9641. x-kubernetes-map-type: atomic
  9642. mode:
  9643. format: int32
  9644. type: integer
  9645. path:
  9646. type: string
  9647. resourceFieldRef:
  9648. properties:
  9649. containerName:
  9650. type: string
  9651. divisor:
  9652. anyOf:
  9653. - type: integer
  9654. - type: string
  9655. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9656. x-kubernetes-int-or-string: true
  9657. resource:
  9658. type: string
  9659. required:
  9660. - resource
  9661. type: object
  9662. x-kubernetes-map-type: atomic
  9663. required:
  9664. - path
  9665. type: object
  9666. type: array
  9667. x-kubernetes-list-type: atomic
  9668. type: object
  9669. secret:
  9670. properties:
  9671. items:
  9672. items:
  9673. properties:
  9674. key:
  9675. type: string
  9676. mode:
  9677. format: int32
  9678. type: integer
  9679. path:
  9680. type: string
  9681. required:
  9682. - key
  9683. - path
  9684. type: object
  9685. type: array
  9686. x-kubernetes-list-type: atomic
  9687. name:
  9688. default: ""
  9689. type: string
  9690. optional:
  9691. type: boolean
  9692. type: object
  9693. x-kubernetes-map-type: atomic
  9694. serviceAccountToken:
  9695. properties:
  9696. audience:
  9697. type: string
  9698. expirationSeconds:
  9699. format: int64
  9700. type: integer
  9701. path:
  9702. type: string
  9703. required:
  9704. - path
  9705. type: object
  9706. type: object
  9707. type: array
  9708. x-kubernetes-list-type: atomic
  9709. type: object
  9710. secret:
  9711. properties:
  9712. defaultMode:
  9713. format: int32
  9714. type: integer
  9715. items:
  9716. items:
  9717. properties:
  9718. key:
  9719. type: string
  9720. mode:
  9721. format: int32
  9722. type: integer
  9723. path:
  9724. type: string
  9725. required:
  9726. - key
  9727. - path
  9728. type: object
  9729. type: array
  9730. x-kubernetes-list-type: atomic
  9731. optional:
  9732. type: boolean
  9733. secretName:
  9734. type: string
  9735. type: object
  9736. type: object
  9737. required:
  9738. - subPath
  9739. - volumeSource
  9740. type: object
  9741. type: array
  9742. debugLevel:
  9743. description: |-
  9744. DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise,
  9745. this may be a value between 1 and 10. See SSSD docs for more info:
  9746. https://sssd.io/troubleshooting/basics.html#sssd-debug-logs
  9747. maximum: 10
  9748. minimum: 0
  9749. type: integer
  9750. image:
  9751. description: Image defines the container image that should be used for the SSSD sidecar.
  9752. minLength: 1
  9753. type: string
  9754. resources:
  9755. description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
  9756. properties:
  9757. claims:
  9758. description: |-
  9759. Claims lists the names of resources, defined in spec.resourceClaims,
  9760. that are used by this container.
  9761. This is an alpha field and requires enabling the
  9762. DynamicResourceAllocation feature gate.
  9763. This field is immutable. It can only be set for containers.
  9764. items:
  9765. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9766. properties:
  9767. name:
  9768. description: |-
  9769. Name must match the name of one entry in pod.spec.resourceClaims of
  9770. the Pod where this field is used. It makes that resource available
  9771. inside a container.
  9772. type: string
  9773. request:
  9774. description: |-
  9775. Request is the name chosen for a request in the referenced claim.
  9776. If empty, everything from the claim is made available, otherwise
  9777. only the result of this request.
  9778. type: string
  9779. required:
  9780. - name
  9781. type: object
  9782. type: array
  9783. x-kubernetes-list-map-keys:
  9784. - name
  9785. x-kubernetes-list-type: map
  9786. limits:
  9787. additionalProperties:
  9788. anyOf:
  9789. - type: integer
  9790. - type: string
  9791. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9792. x-kubernetes-int-or-string: true
  9793. description: |-
  9794. Limits describes the maximum amount of compute resources allowed.
  9795. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  9796. type: object
  9797. requests:
  9798. additionalProperties:
  9799. anyOf:
  9800. - type: integer
  9801. - type: string
  9802. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9803. x-kubernetes-int-or-string: true
  9804. description: |-
  9805. Requests describes the minimum amount of compute resources required.
  9806. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  9807. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  9808. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  9809. type: object
  9810. type: object
  9811. sssdConfigFile:
  9812. description: |-
  9813. SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file
  9814. will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file.
  9815. This allows you to manage the `sssd.conf` file yourself however you wish. For example, you
  9816. may build it into your custom Ceph container image or use the Vault agent injector to
  9817. securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  9818. properties:
  9819. volumeSource:
  9820. properties:
  9821. configMap:
  9822. properties:
  9823. defaultMode:
  9824. format: int32
  9825. type: integer
  9826. items:
  9827. items:
  9828. properties:
  9829. key:
  9830. type: string
  9831. mode:
  9832. format: int32
  9833. type: integer
  9834. path:
  9835. type: string
  9836. required:
  9837. - key
  9838. - path
  9839. type: object
  9840. type: array
  9841. x-kubernetes-list-type: atomic
  9842. name:
  9843. default: ""
  9844. type: string
  9845. optional:
  9846. type: boolean
  9847. type: object
  9848. x-kubernetes-map-type: atomic
  9849. emptyDir:
  9850. properties:
  9851. medium:
  9852. type: string
  9853. sizeLimit:
  9854. anyOf:
  9855. - type: integer
  9856. - type: string
  9857. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9858. x-kubernetes-int-or-string: true
  9859. type: object
  9860. hostPath:
  9861. properties:
  9862. path:
  9863. type: string
  9864. type:
  9865. type: string
  9866. required:
  9867. - path
  9868. type: object
  9869. persistentVolumeClaim:
  9870. properties:
  9871. claimName:
  9872. type: string
  9873. readOnly:
  9874. type: boolean
  9875. required:
  9876. - claimName
  9877. type: object
  9878. projected:
  9879. properties:
  9880. defaultMode:
  9881. format: int32
  9882. type: integer
  9883. sources:
  9884. items:
  9885. properties:
  9886. clusterTrustBundle:
  9887. properties:
  9888. labelSelector:
  9889. properties:
  9890. matchExpressions:
  9891. items:
  9892. properties:
  9893. key:
  9894. type: string
  9895. operator:
  9896. type: string
  9897. values:
  9898. items:
  9899. type: string
  9900. type: array
  9901. x-kubernetes-list-type: atomic
  9902. required:
  9903. - key
  9904. - operator
  9905. type: object
  9906. type: array
  9907. x-kubernetes-list-type: atomic
  9908. matchLabels:
  9909. additionalProperties:
  9910. type: string
  9911. type: object
  9912. type: object
  9913. x-kubernetes-map-type: atomic
  9914. name:
  9915. type: string
  9916. optional:
  9917. type: boolean
  9918. path:
  9919. type: string
  9920. signerName:
  9921. type: string
  9922. required:
  9923. - path
  9924. type: object
  9925. configMap:
  9926. properties:
  9927. items:
  9928. items:
  9929. properties:
  9930. key:
  9931. type: string
  9932. mode:
  9933. format: int32
  9934. type: integer
  9935. path:
  9936. type: string
  9937. required:
  9938. - key
  9939. - path
  9940. type: object
  9941. type: array
  9942. x-kubernetes-list-type: atomic
  9943. name:
  9944. default: ""
  9945. type: string
  9946. optional:
  9947. type: boolean
  9948. type: object
  9949. x-kubernetes-map-type: atomic
  9950. downwardAPI:
  9951. properties:
  9952. items:
  9953. items:
  9954. properties:
  9955. fieldRef:
  9956. properties:
  9957. apiVersion:
  9958. type: string
  9959. fieldPath:
  9960. type: string
  9961. required:
  9962. - fieldPath
  9963. type: object
  9964. x-kubernetes-map-type: atomic
  9965. mode:
  9966. format: int32
  9967. type: integer
  9968. path:
  9969. type: string
  9970. resourceFieldRef:
  9971. properties:
  9972. containerName:
  9973. type: string
  9974. divisor:
  9975. anyOf:
  9976. - type: integer
  9977. - type: string
  9978. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9979. x-kubernetes-int-or-string: true
  9980. resource:
  9981. type: string
  9982. required:
  9983. - resource
  9984. type: object
  9985. x-kubernetes-map-type: atomic
  9986. required:
  9987. - path
  9988. type: object
  9989. type: array
  9990. x-kubernetes-list-type: atomic
  9991. type: object
  9992. secret:
  9993. properties:
  9994. items:
  9995. items:
  9996. properties:
  9997. key:
  9998. type: string
  9999. mode:
  10000. format: int32
  10001. type: integer
  10002. path:
  10003. type: string
  10004. required:
  10005. - key
  10006. - path
  10007. type: object
  10008. type: array
  10009. x-kubernetes-list-type: atomic
  10010. name:
  10011. default: ""
  10012. type: string
  10013. optional:
  10014. type: boolean
  10015. type: object
  10016. x-kubernetes-map-type: atomic
  10017. serviceAccountToken:
  10018. properties:
  10019. audience:
  10020. type: string
  10021. expirationSeconds:
  10022. format: int64
  10023. type: integer
  10024. path:
  10025. type: string
  10026. required:
  10027. - path
  10028. type: object
  10029. type: object
  10030. type: array
  10031. x-kubernetes-list-type: atomic
  10032. type: object
  10033. secret:
  10034. properties:
  10035. defaultMode:
  10036. format: int32
  10037. type: integer
  10038. items:
  10039. items:
  10040. properties:
  10041. key:
  10042. type: string
  10043. mode:
  10044. format: int32
  10045. type: integer
  10046. path:
  10047. type: string
  10048. required:
  10049. - key
  10050. - path
  10051. type: object
  10052. type: array
  10053. x-kubernetes-list-type: atomic
  10054. optional:
  10055. type: boolean
  10056. secretName:
  10057. type: string
  10058. type: object
  10059. type: object
  10060. type: object
  10061. required:
  10062. - image
  10063. type: object
  10064. type: object
  10065. type: object
  10066. server:
  10067. description: Server is the Ganesha Server specification
  10068. properties:
  10069. active:
  10070. description: The number of active Ganesha servers
  10071. type: integer
  10072. annotations:
  10073. additionalProperties:
  10074. type: string
  10075. description: The annotations-related configuration to add/set on each Pod related object.
  10076. nullable: true
  10077. type: object
  10078. x-kubernetes-preserve-unknown-fields: true
  10079. hostNetwork:
  10080. description: Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
  10081. nullable: true
  10082. type: boolean
  10083. labels:
  10084. additionalProperties:
  10085. type: string
  10086. description: The labels-related configuration to add/set on each Pod related object.
  10087. nullable: true
  10088. type: object
  10089. x-kubernetes-preserve-unknown-fields: true
  10090. livenessProbe:
  10091. description: |-
  10092. A liveness-probe to verify that Ganesha server has valid run-time state.
  10093. If LivenessProbe.Disabled is false and LivenessProbe.Probe is nil uses default probe.
  10094. properties:
  10095. disabled:
  10096. description: Disabled determines whether probe is disable or not
  10097. type: boolean
  10098. probe:
  10099. description: |-
  10100. Probe describes a health check to be performed against a container to determine whether it is
  10101. alive or ready to receive traffic.
  10102. properties:
  10103. exec:
  10104. description: Exec specifies a command to execute in the container.
  10105. properties:
  10106. command:
  10107. description: |-
  10108. Command is the command line to execute inside the container, the working directory for the
  10109. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  10110. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  10111. a shell, you need to explicitly call out to that shell.
  10112. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10113. items:
  10114. type: string
  10115. type: array
  10116. x-kubernetes-list-type: atomic
  10117. type: object
  10118. failureThreshold:
  10119. description: |-
  10120. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  10121. Defaults to 3. Minimum value is 1.
  10122. format: int32
  10123. type: integer
  10124. grpc:
  10125. description: GRPC specifies a GRPC HealthCheckRequest.
  10126. properties:
  10127. port:
  10128. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  10129. format: int32
  10130. type: integer
  10131. service:
  10132. default: ""
  10133. description: |-
  10134. Service is the name of the service to place in the gRPC HealthCheckRequest
  10135. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  10136. If this is not specified, the default behavior is defined by gRPC.
  10137. type: string
  10138. required:
  10139. - port
  10140. type: object
  10141. httpGet:
  10142. description: HTTPGet specifies an HTTP GET request to perform.
  10143. properties:
  10144. host:
  10145. description: |-
  10146. Host name to connect to, defaults to the pod IP. You probably want to set
  10147. "Host" in httpHeaders instead.
  10148. type: string
  10149. httpHeaders:
  10150. description: Custom headers to set in the request. HTTP allows repeated headers.
  10151. items:
  10152. description: HTTPHeader describes a custom header to be used in HTTP probes
  10153. properties:
  10154. name:
  10155. description: |-
  10156. The header field name.
  10157. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  10158. type: string
  10159. value:
  10160. description: The header field value
  10161. type: string
  10162. required:
  10163. - name
  10164. - value
  10165. type: object
  10166. type: array
  10167. x-kubernetes-list-type: atomic
  10168. path:
  10169. description: Path to access on the HTTP server.
  10170. type: string
  10171. port:
  10172. anyOf:
  10173. - type: integer
  10174. - type: string
  10175. description: |-
  10176. Name or number of the port to access on the container.
  10177. Number must be in the range 1 to 65535.
  10178. Name must be an IANA_SVC_NAME.
  10179. x-kubernetes-int-or-string: true
  10180. scheme:
  10181. description: |-
  10182. Scheme to use for connecting to the host.
  10183. Defaults to HTTP.
  10184. type: string
  10185. required:
  10186. - port
  10187. type: object
  10188. initialDelaySeconds:
  10189. description: |-
  10190. Number of seconds after the container has started before liveness probes are initiated.
  10191. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10192. format: int32
  10193. type: integer
  10194. periodSeconds:
  10195. description: |-
  10196. How often (in seconds) to perform the probe.
  10197. Default to 10 seconds. Minimum value is 1.
  10198. format: int32
  10199. type: integer
  10200. successThreshold:
  10201. description: |-
  10202. Minimum consecutive successes for the probe to be considered successful after having failed.
  10203. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  10204. format: int32
  10205. type: integer
  10206. tcpSocket:
  10207. description: TCPSocket specifies a connection to a TCP port.
  10208. properties:
  10209. host:
  10210. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  10211. type: string
  10212. port:
  10213. anyOf:
  10214. - type: integer
  10215. - type: string
  10216. description: |-
  10217. Number or name of the port to access on the container.
  10218. Number must be in the range 1 to 65535.
  10219. Name must be an IANA_SVC_NAME.
  10220. x-kubernetes-int-or-string: true
  10221. required:
  10222. - port
  10223. type: object
  10224. terminationGracePeriodSeconds:
  10225. format: int64
  10226. type: integer
  10227. timeoutSeconds:
  10228. description: |-
  10229. Number of seconds after which the probe times out.
  10230. Defaults to 1 second. Minimum value is 1.
  10231. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10232. format: int32
  10233. type: integer
  10234. type: object
  10235. type: object
  10236. logLevel:
  10237. description: LogLevel set logging level
  10238. type: string
  10239. placement:
  10240. nullable: true
  10241. properties:
  10242. nodeAffinity:
  10243. properties:
  10244. preferredDuringSchedulingIgnoredDuringExecution:
  10245. items:
  10246. properties:
  10247. preference:
  10248. properties:
  10249. matchExpressions:
  10250. items:
  10251. properties:
  10252. key:
  10253. type: string
  10254. operator:
  10255. type: string
  10256. values:
  10257. items:
  10258. type: string
  10259. type: array
  10260. x-kubernetes-list-type: atomic
  10261. required:
  10262. - key
  10263. - operator
  10264. type: object
  10265. type: array
  10266. x-kubernetes-list-type: atomic
  10267. matchFields:
  10268. items:
  10269. properties:
  10270. key:
  10271. type: string
  10272. operator:
  10273. type: string
  10274. values:
  10275. items:
  10276. type: string
  10277. type: array
  10278. x-kubernetes-list-type: atomic
  10279. required:
  10280. - key
  10281. - operator
  10282. type: object
  10283. type: array
  10284. x-kubernetes-list-type: atomic
  10285. type: object
  10286. x-kubernetes-map-type: atomic
  10287. weight:
  10288. format: int32
  10289. type: integer
  10290. required:
  10291. - preference
  10292. - weight
  10293. type: object
  10294. type: array
  10295. x-kubernetes-list-type: atomic
  10296. requiredDuringSchedulingIgnoredDuringExecution:
  10297. properties:
  10298. nodeSelectorTerms:
  10299. items:
  10300. properties:
  10301. matchExpressions:
  10302. items:
  10303. properties:
  10304. key:
  10305. type: string
  10306. operator:
  10307. type: string
  10308. values:
  10309. items:
  10310. type: string
  10311. type: array
  10312. x-kubernetes-list-type: atomic
  10313. required:
  10314. - key
  10315. - operator
  10316. type: object
  10317. type: array
  10318. x-kubernetes-list-type: atomic
  10319. matchFields:
  10320. items:
  10321. properties:
  10322. key:
  10323. type: string
  10324. operator:
  10325. type: string
  10326. values:
  10327. items:
  10328. type: string
  10329. type: array
  10330. x-kubernetes-list-type: atomic
  10331. required:
  10332. - key
  10333. - operator
  10334. type: object
  10335. type: array
  10336. x-kubernetes-list-type: atomic
  10337. type: object
  10338. x-kubernetes-map-type: atomic
  10339. type: array
  10340. x-kubernetes-list-type: atomic
  10341. required:
  10342. - nodeSelectorTerms
  10343. type: object
  10344. x-kubernetes-map-type: atomic
  10345. type: object
  10346. podAffinity:
  10347. properties:
  10348. preferredDuringSchedulingIgnoredDuringExecution:
  10349. items:
  10350. properties:
  10351. podAffinityTerm:
  10352. properties:
  10353. labelSelector:
  10354. properties:
  10355. matchExpressions:
  10356. items:
  10357. properties:
  10358. key:
  10359. type: string
  10360. operator:
  10361. type: string
  10362. values:
  10363. items:
  10364. type: string
  10365. type: array
  10366. x-kubernetes-list-type: atomic
  10367. required:
  10368. - key
  10369. - operator
  10370. type: object
  10371. type: array
  10372. x-kubernetes-list-type: atomic
  10373. matchLabels:
  10374. additionalProperties:
  10375. type: string
  10376. type: object
  10377. type: object
  10378. x-kubernetes-map-type: atomic
  10379. matchLabelKeys:
  10380. items:
  10381. type: string
  10382. type: array
  10383. x-kubernetes-list-type: atomic
  10384. mismatchLabelKeys:
  10385. items:
  10386. type: string
  10387. type: array
  10388. x-kubernetes-list-type: atomic
  10389. namespaceSelector:
  10390. properties:
  10391. matchExpressions:
  10392. items:
  10393. properties:
  10394. key:
  10395. type: string
  10396. operator:
  10397. type: string
  10398. values:
  10399. items:
  10400. type: string
  10401. type: array
  10402. x-kubernetes-list-type: atomic
  10403. required:
  10404. - key
  10405. - operator
  10406. type: object
  10407. type: array
  10408. x-kubernetes-list-type: atomic
  10409. matchLabels:
  10410. additionalProperties:
  10411. type: string
  10412. type: object
  10413. type: object
  10414. x-kubernetes-map-type: atomic
  10415. namespaces:
  10416. items:
  10417. type: string
  10418. type: array
  10419. x-kubernetes-list-type: atomic
  10420. topologyKey:
  10421. type: string
  10422. required:
  10423. - topologyKey
  10424. type: object
  10425. weight:
  10426. format: int32
  10427. type: integer
  10428. required:
  10429. - podAffinityTerm
  10430. - weight
  10431. type: object
  10432. type: array
  10433. x-kubernetes-list-type: atomic
  10434. requiredDuringSchedulingIgnoredDuringExecution:
  10435. items:
  10436. properties:
  10437. labelSelector:
  10438. properties:
  10439. matchExpressions:
  10440. items:
  10441. properties:
  10442. key:
  10443. type: string
  10444. operator:
  10445. type: string
  10446. values:
  10447. items:
  10448. type: string
  10449. type: array
  10450. x-kubernetes-list-type: atomic
  10451. required:
  10452. - key
  10453. - operator
  10454. type: object
  10455. type: array
  10456. x-kubernetes-list-type: atomic
  10457. matchLabels:
  10458. additionalProperties:
  10459. type: string
  10460. type: object
  10461. type: object
  10462. x-kubernetes-map-type: atomic
  10463. matchLabelKeys:
  10464. items:
  10465. type: string
  10466. type: array
  10467. x-kubernetes-list-type: atomic
  10468. mismatchLabelKeys:
  10469. items:
  10470. type: string
  10471. type: array
  10472. x-kubernetes-list-type: atomic
  10473. namespaceSelector:
  10474. properties:
  10475. matchExpressions:
  10476. items:
  10477. properties:
  10478. key:
  10479. type: string
  10480. operator:
  10481. type: string
  10482. values:
  10483. items:
  10484. type: string
  10485. type: array
  10486. x-kubernetes-list-type: atomic
  10487. required:
  10488. - key
  10489. - operator
  10490. type: object
  10491. type: array
  10492. x-kubernetes-list-type: atomic
  10493. matchLabels:
  10494. additionalProperties:
  10495. type: string
  10496. type: object
  10497. type: object
  10498. x-kubernetes-map-type: atomic
  10499. namespaces:
  10500. items:
  10501. type: string
  10502. type: array
  10503. x-kubernetes-list-type: atomic
  10504. topologyKey:
  10505. type: string
  10506. required:
  10507. - topologyKey
  10508. type: object
  10509. type: array
  10510. x-kubernetes-list-type: atomic
  10511. type: object
  10512. podAntiAffinity:
  10513. properties:
  10514. preferredDuringSchedulingIgnoredDuringExecution:
  10515. items:
  10516. properties:
  10517. podAffinityTerm:
  10518. properties:
  10519. labelSelector:
  10520. properties:
  10521. matchExpressions:
  10522. items:
  10523. properties:
  10524. key:
  10525. type: string
  10526. operator:
  10527. type: string
  10528. values:
  10529. items:
  10530. type: string
  10531. type: array
  10532. x-kubernetes-list-type: atomic
  10533. required:
  10534. - key
  10535. - operator
  10536. type: object
  10537. type: array
  10538. x-kubernetes-list-type: atomic
  10539. matchLabels:
  10540. additionalProperties:
  10541. type: string
  10542. type: object
  10543. type: object
  10544. x-kubernetes-map-type: atomic
  10545. matchLabelKeys:
  10546. items:
  10547. type: string
  10548. type: array
  10549. x-kubernetes-list-type: atomic
  10550. mismatchLabelKeys:
  10551. items:
  10552. type: string
  10553. type: array
  10554. x-kubernetes-list-type: atomic
  10555. namespaceSelector:
  10556. properties:
  10557. matchExpressions:
  10558. items:
  10559. properties:
  10560. key:
  10561. type: string
  10562. operator:
  10563. type: string
  10564. values:
  10565. items:
  10566. type: string
  10567. type: array
  10568. x-kubernetes-list-type: atomic
  10569. required:
  10570. - key
  10571. - operator
  10572. type: object
  10573. type: array
  10574. x-kubernetes-list-type: atomic
  10575. matchLabels:
  10576. additionalProperties:
  10577. type: string
  10578. type: object
  10579. type: object
  10580. x-kubernetes-map-type: atomic
  10581. namespaces:
  10582. items:
  10583. type: string
  10584. type: array
  10585. x-kubernetes-list-type: atomic
  10586. topologyKey:
  10587. type: string
  10588. required:
  10589. - topologyKey
  10590. type: object
  10591. weight:
  10592. format: int32
  10593. type: integer
  10594. required:
  10595. - podAffinityTerm
  10596. - weight
  10597. type: object
  10598. type: array
  10599. x-kubernetes-list-type: atomic
  10600. requiredDuringSchedulingIgnoredDuringExecution:
  10601. items:
  10602. properties:
  10603. labelSelector:
  10604. properties:
  10605. matchExpressions:
  10606. items:
  10607. properties:
  10608. key:
  10609. type: string
  10610. operator:
  10611. type: string
  10612. values:
  10613. items:
  10614. type: string
  10615. type: array
  10616. x-kubernetes-list-type: atomic
  10617. required:
  10618. - key
  10619. - operator
  10620. type: object
  10621. type: array
  10622. x-kubernetes-list-type: atomic
  10623. matchLabels:
  10624. additionalProperties:
  10625. type: string
  10626. type: object
  10627. type: object
  10628. x-kubernetes-map-type: atomic
  10629. matchLabelKeys:
  10630. items:
  10631. type: string
  10632. type: array
  10633. x-kubernetes-list-type: atomic
  10634. mismatchLabelKeys:
  10635. items:
  10636. type: string
  10637. type: array
  10638. x-kubernetes-list-type: atomic
  10639. namespaceSelector:
  10640. properties:
  10641. matchExpressions:
  10642. items:
  10643. properties:
  10644. key:
  10645. type: string
  10646. operator:
  10647. type: string
  10648. values:
  10649. items:
  10650. type: string
  10651. type: array
  10652. x-kubernetes-list-type: atomic
  10653. required:
  10654. - key
  10655. - operator
  10656. type: object
  10657. type: array
  10658. x-kubernetes-list-type: atomic
  10659. matchLabels:
  10660. additionalProperties:
  10661. type: string
  10662. type: object
  10663. type: object
  10664. x-kubernetes-map-type: atomic
  10665. namespaces:
  10666. items:
  10667. type: string
  10668. type: array
  10669. x-kubernetes-list-type: atomic
  10670. topologyKey:
  10671. type: string
  10672. required:
  10673. - topologyKey
  10674. type: object
  10675. type: array
  10676. x-kubernetes-list-type: atomic
  10677. type: object
  10678. tolerations:
  10679. items:
  10680. properties:
  10681. effect:
  10682. type: string
  10683. key:
  10684. type: string
  10685. operator:
  10686. type: string
  10687. tolerationSeconds:
  10688. format: int64
  10689. type: integer
  10690. value:
  10691. type: string
  10692. type: object
  10693. type: array
  10694. topologySpreadConstraints:
  10695. items:
  10696. properties:
  10697. labelSelector:
  10698. properties:
  10699. matchExpressions:
  10700. items:
  10701. properties:
  10702. key:
  10703. type: string
  10704. operator:
  10705. type: string
  10706. values:
  10707. items:
  10708. type: string
  10709. type: array
  10710. x-kubernetes-list-type: atomic
  10711. required:
  10712. - key
  10713. - operator
  10714. type: object
  10715. type: array
  10716. x-kubernetes-list-type: atomic
  10717. matchLabels:
  10718. additionalProperties:
  10719. type: string
  10720. type: object
  10721. type: object
  10722. x-kubernetes-map-type: atomic
  10723. matchLabelKeys:
  10724. items:
  10725. type: string
  10726. type: array
  10727. x-kubernetes-list-type: atomic
  10728. maxSkew:
  10729. format: int32
  10730. type: integer
  10731. minDomains:
  10732. format: int32
  10733. type: integer
  10734. nodeAffinityPolicy:
  10735. type: string
  10736. nodeTaintsPolicy:
  10737. type: string
  10738. topologyKey:
  10739. type: string
  10740. whenUnsatisfiable:
  10741. type: string
  10742. required:
  10743. - maxSkew
  10744. - topologyKey
  10745. - whenUnsatisfiable
  10746. type: object
  10747. type: array
  10748. type: object
  10749. x-kubernetes-preserve-unknown-fields: true
  10750. priorityClassName:
  10751. description: PriorityClassName sets the priority class on the pods
  10752. type: string
  10753. resources:
  10754. description: Resources set resource requests and limits
  10755. nullable: true
  10756. properties:
  10757. claims:
  10758. description: |-
  10759. Claims lists the names of resources, defined in spec.resourceClaims,
  10760. that are used by this container.
  10761. This is an alpha field and requires enabling the
  10762. DynamicResourceAllocation feature gate.
  10763. This field is immutable. It can only be set for containers.
  10764. items:
  10765. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  10766. properties:
  10767. name:
  10768. description: |-
  10769. Name must match the name of one entry in pod.spec.resourceClaims of
  10770. the Pod where this field is used. It makes that resource available
  10771. inside a container.
  10772. type: string
  10773. request:
  10774. description: |-
  10775. Request is the name chosen for a request in the referenced claim.
  10776. If empty, everything from the claim is made available, otherwise
  10777. only the result of this request.
  10778. type: string
  10779. required:
  10780. - name
  10781. type: object
  10782. type: array
  10783. x-kubernetes-list-map-keys:
  10784. - name
  10785. x-kubernetes-list-type: map
  10786. limits:
  10787. additionalProperties:
  10788. anyOf:
  10789. - type: integer
  10790. - type: string
  10791. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10792. x-kubernetes-int-or-string: true
  10793. description: |-
  10794. Limits describes the maximum amount of compute resources allowed.
  10795. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  10796. type: object
  10797. requests:
  10798. additionalProperties:
  10799. anyOf:
  10800. - type: integer
  10801. - type: string
  10802. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10803. x-kubernetes-int-or-string: true
  10804. description: |-
  10805. Requests describes the minimum amount of compute resources required.
  10806. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  10807. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  10808. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  10809. type: object
  10810. type: object
  10811. x-kubernetes-preserve-unknown-fields: true
  10812. required:
  10813. - active
  10814. type: object
  10815. required:
  10816. - server
  10817. type: object
  10818. status:
  10819. description: Status represents the status of an object
  10820. properties:
  10821. conditions:
  10822. items:
  10823. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10824. properties:
  10825. lastHeartbeatTime:
  10826. format: date-time
  10827. type: string
  10828. lastTransitionTime:
  10829. format: date-time
  10830. type: string
  10831. message:
  10832. type: string
  10833. reason:
  10834. description: ConditionReason is a reason for a condition
  10835. type: string
  10836. status:
  10837. type: string
  10838. type:
  10839. description: ConditionType represent a resource's status
  10840. type: string
  10841. type: object
  10842. type: array
  10843. observedGeneration:
  10844. description: ObservedGeneration is the latest generation observed by the controller.
  10845. format: int64
  10846. type: integer
  10847. phase:
  10848. type: string
  10849. type: object
  10850. x-kubernetes-preserve-unknown-fields: true
  10851. required:
  10852. - metadata
  10853. - spec
  10854. type: object
  10855. served: true
  10856. storage: true
  10857. subresources:
  10858. status: {}
  10859. ---
  10860. apiVersion: apiextensions.k8s.io/v1
  10861. kind: CustomResourceDefinition
  10862. metadata:
  10863. annotations:
  10864. controller-gen.kubebuilder.io/version: v0.16.1
  10865. name: cephobjectrealms.ceph.rook.io
  10866. spec:
  10867. group: ceph.rook.io
  10868. names:
  10869. kind: CephObjectRealm
  10870. listKind: CephObjectRealmList
  10871. plural: cephobjectrealms
  10872. shortNames:
  10873. - cephor
  10874. singular: cephobjectrealm
  10875. scope: Namespaced
  10876. versions:
  10877. - name: v1
  10878. schema:
  10879. openAPIV3Schema:
  10880. description: CephObjectRealm represents a Ceph Object Store Gateway Realm
  10881. properties:
  10882. apiVersion:
  10883. description: |-
  10884. APIVersion defines the versioned schema of this representation of an object.
  10885. Servers should convert recognized schemas to the latest internal value, and
  10886. may reject unrecognized values.
  10887. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  10888. type: string
  10889. kind:
  10890. description: |-
  10891. Kind is a string value representing the REST resource this object represents.
  10892. Servers may infer this from the endpoint the client submits requests to.
  10893. Cannot be updated.
  10894. In CamelCase.
  10895. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  10896. type: string
  10897. metadata:
  10898. type: object
  10899. spec:
  10900. description: ObjectRealmSpec represent the spec of an ObjectRealm
  10901. nullable: true
  10902. properties:
  10903. pull:
  10904. description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
  10905. properties:
  10906. endpoint:
  10907. pattern: ^https*://
  10908. type: string
  10909. type: object
  10910. type: object
  10911. status:
  10912. description: Status represents the status of an object
  10913. properties:
  10914. conditions:
  10915. items:
  10916. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10917. properties:
  10918. lastHeartbeatTime:
  10919. format: date-time
  10920. type: string
  10921. lastTransitionTime:
  10922. format: date-time
  10923. type: string
  10924. message:
  10925. type: string
  10926. reason:
  10927. description: ConditionReason is a reason for a condition
  10928. type: string
  10929. status:
  10930. type: string
  10931. type:
  10932. description: ConditionType represent a resource's status
  10933. type: string
  10934. type: object
  10935. type: array
  10936. observedGeneration:
  10937. description: ObservedGeneration is the latest generation observed by the controller.
  10938. format: int64
  10939. type: integer
  10940. phase:
  10941. type: string
  10942. type: object
  10943. x-kubernetes-preserve-unknown-fields: true
  10944. required:
  10945. - metadata
  10946. type: object
  10947. served: true
  10948. storage: true
  10949. subresources:
  10950. status: {}
  10951. ---
  10952. apiVersion: apiextensions.k8s.io/v1
  10953. kind: CustomResourceDefinition
  10954. metadata:
  10955. annotations:
  10956. controller-gen.kubebuilder.io/version: v0.16.1
  10957. name: cephobjectstores.ceph.rook.io
  10958. spec:
  10959. group: ceph.rook.io
  10960. names:
  10961. kind: CephObjectStore
  10962. listKind: CephObjectStoreList
  10963. plural: cephobjectstores
  10964. shortNames:
  10965. - cephos
  10966. singular: cephobjectstore
  10967. scope: Namespaced
  10968. versions:
  10969. - additionalPrinterColumns:
  10970. - jsonPath: .status.phase
  10971. name: Phase
  10972. type: string
  10973. - jsonPath: .status.info.endpoint
  10974. name: Endpoint
  10975. type: string
  10976. - jsonPath: .status.info.secureEndpoint
  10977. name: SecureEndpoint
  10978. type: string
  10979. - jsonPath: .metadata.creationTimestamp
  10980. name: Age
  10981. type: date
  10982. name: v1
  10983. schema:
  10984. openAPIV3Schema:
  10985. description: CephObjectStore represents a Ceph Object Store Gateway
  10986. properties:
  10987. apiVersion:
  10988. description: |-
  10989. APIVersion defines the versioned schema of this representation of an object.
  10990. Servers should convert recognized schemas to the latest internal value, and
  10991. may reject unrecognized values.
  10992. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  10993. type: string
  10994. kind:
  10995. description: |-
  10996. Kind is a string value representing the REST resource this object represents.
  10997. Servers may infer this from the endpoint the client submits requests to.
  10998. Cannot be updated.
  10999. In CamelCase.
  11000. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  11001. type: string
  11002. metadata:
  11003. type: object
  11004. spec:
  11005. description: ObjectStoreSpec represent the spec of a pool
  11006. properties:
  11007. allowUsersInNamespaces:
  11008. description: |-
  11009. The list of allowed namespaces in addition to the object store namespace
  11010. where ceph object store users may be created. Specify "*" to allow all
  11011. namespaces, otherwise list individual namespaces that are to be allowed.
  11012. This is useful for applications that need object store credentials
  11013. to be created in their own namespace, where neither OBCs nor COSI
  11014. is being used to create buckets. The default is empty.
  11015. items:
  11016. type: string
  11017. type: array
  11018. auth:
  11019. description: The authentication configuration
  11020. properties:
  11021. keystone:
  11022. description: The spec for Keystone
  11023. nullable: true
  11024. properties:
  11025. acceptedRoles:
  11026. description: The roles requires to serve requests.
  11027. items:
  11028. type: string
  11029. type: array
  11030. implicitTenants:
  11031. description: Create new users in their own tenants of the same name. Possible values are true, false, swift and s3. The latter have the effect of splitting the identity space such that only the indicated protocol will use implicit tenants.
  11032. type: string
  11033. revocationInterval:
  11034. description: The number of seconds between token revocation checks.
  11035. nullable: true
  11036. type: integer
  11037. serviceUserSecretName:
  11038. description: The name of the secret containing the credentials for the service user account used by RGW. It has to be in the same namespace as the object store resource.
  11039. type: string
  11040. tokenCacheSize:
  11041. description: The maximum number of entries in each Keystone token cache.
  11042. nullable: true
  11043. type: integer
  11044. url:
  11045. description: The URL for the Keystone server.
  11046. type: string
  11047. required:
  11048. - acceptedRoles
  11049. - serviceUserSecretName
  11050. - url
  11051. type: object
  11052. type: object
  11053. dataPool:
  11054. description: The data pool settings
  11055. nullable: true
  11056. properties:
  11057. application:
  11058. description: The application name to set on the pool. Only expected to be set for rgw pools.
  11059. type: string
  11060. compressionMode:
  11061. description: |-
  11062. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  11063. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  11064. Do NOT set a default value for kubebuilder as this will override the Parameters
  11065. enum:
  11066. - none
  11067. - passive
  11068. - aggressive
  11069. - force
  11070. - ""
  11071. nullable: true
  11072. type: string
  11073. crushRoot:
  11074. description: The root of the crush hierarchy utilized by the pool
  11075. nullable: true
  11076. type: string
  11077. deviceClass:
  11078. description: The device class the OSD should set to for use in the pool
  11079. nullable: true
  11080. type: string
  11081. enableCrushUpdates:
  11082. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  11083. type: boolean
  11084. enableRBDStats:
  11085. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11086. type: boolean
  11087. erasureCoded:
  11088. description: The erasure code settings
  11089. properties:
  11090. algorithm:
  11091. description: The algorithm for erasure coding
  11092. type: string
  11093. codingChunks:
  11094. description: |-
  11095. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  11096. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11097. minimum: 0
  11098. type: integer
  11099. dataChunks:
  11100. description: |-
  11101. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  11102. The number of chunks required to recover an object when any single OSD is lost is the same
  11103. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11104. minimum: 0
  11105. type: integer
  11106. required:
  11107. - codingChunks
  11108. - dataChunks
  11109. type: object
  11110. failureDomain:
  11111. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11112. type: string
  11113. mirroring:
  11114. description: The mirroring settings
  11115. properties:
  11116. enabled:
  11117. description: Enabled whether this pool is mirrored or not
  11118. type: boolean
  11119. mode:
  11120. description: 'Mode is the mirroring mode: pool, image or init-only.'
  11121. enum:
  11122. - pool
  11123. - image
  11124. - init-only
  11125. type: string
  11126. peers:
  11127. description: Peers represents the peers spec
  11128. nullable: true
  11129. properties:
  11130. secretNames:
  11131. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11132. items:
  11133. type: string
  11134. type: array
  11135. type: object
  11136. snapshotSchedules:
  11137. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11138. items:
  11139. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11140. properties:
  11141. interval:
  11142. description: Interval represent the periodicity of the snapshot.
  11143. type: string
  11144. path:
  11145. description: Path is the path to snapshot, only valid for CephFS
  11146. type: string
  11147. startTime:
  11148. description: StartTime indicates when to start the snapshot
  11149. type: string
  11150. type: object
  11151. type: array
  11152. type: object
  11153. parameters:
  11154. additionalProperties:
  11155. type: string
  11156. description: Parameters is a list of properties to enable on a given pool
  11157. nullable: true
  11158. type: object
  11159. x-kubernetes-preserve-unknown-fields: true
  11160. quotas:
  11161. description: The quota settings
  11162. nullable: true
  11163. properties:
  11164. maxBytes:
  11165. description: |-
  11166. MaxBytes represents the quota in bytes
  11167. Deprecated in favor of MaxSize
  11168. format: int64
  11169. type: integer
  11170. maxObjects:
  11171. description: MaxObjects represents the quota in objects
  11172. format: int64
  11173. type: integer
  11174. maxSize:
  11175. description: MaxSize represents the quota in bytes as a string
  11176. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11177. type: string
  11178. type: object
  11179. replicated:
  11180. description: The replication settings
  11181. properties:
  11182. hybridStorage:
  11183. description: HybridStorage represents hybrid storage tier settings
  11184. nullable: true
  11185. properties:
  11186. primaryDeviceClass:
  11187. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11188. minLength: 1
  11189. type: string
  11190. secondaryDeviceClass:
  11191. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11192. minLength: 1
  11193. type: string
  11194. required:
  11195. - primaryDeviceClass
  11196. - secondaryDeviceClass
  11197. type: object
  11198. replicasPerFailureDomain:
  11199. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11200. minimum: 1
  11201. type: integer
  11202. requireSafeReplicaSize:
  11203. description: RequireSafeReplicaSize if false allows you to set replica 1
  11204. type: boolean
  11205. size:
  11206. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11207. minimum: 0
  11208. type: integer
  11209. subFailureDomain:
  11210. description: SubFailureDomain the name of the sub-failure domain
  11211. type: string
  11212. targetSizeRatio:
  11213. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11214. minimum: 0
  11215. type: number
  11216. required:
  11217. - size
  11218. type: object
  11219. statusCheck:
  11220. description: The mirroring statusCheck
  11221. properties:
  11222. mirror:
  11223. description: HealthCheckSpec represents the health check of an object store bucket
  11224. nullable: true
  11225. properties:
  11226. disabled:
  11227. type: boolean
  11228. interval:
  11229. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  11230. type: string
  11231. timeout:
  11232. type: string
  11233. type: object
  11234. type: object
  11235. x-kubernetes-preserve-unknown-fields: true
  11236. type: object
  11237. gateway:
  11238. description: The rgw pod info
  11239. nullable: true
  11240. properties:
  11241. additionalVolumeMounts:
  11242. description: |-
  11243. AdditionalVolumeMounts allows additional volumes to be mounted to the RGW pod.
  11244. The root directory for each additional volume mount is `/var/rgw`.
  11245. Example: for an additional mount at subPath `ldap`, mounted from a secret that has key
  11246. `bindpass.secret`, the file would reside at `/var/rgw/ldap/bindpass.secret`.
  11247. items:
  11248. description: |-
  11249. AdditionalVolumeMount represents the source from where additional files in pod containers
  11250. should come from and what subdirectory they are made available in.
  11251. properties:
  11252. subPath:
  11253. description: |-
  11254. SubPath defines the sub-path (subdirectory) of the directory root where the volumeSource will
  11255. be mounted. All files/keys in the volume source's volume will be mounted to the subdirectory.
  11256. This is not the same as the Kubernetes `subPath` volume mount option.
  11257. Each subPath definition must be unique and must not contain ':'.
  11258. minLength: 1
  11259. pattern: ^[^:]+$
  11260. type: string
  11261. volumeSource:
  11262. properties:
  11263. configMap:
  11264. properties:
  11265. defaultMode:
  11266. format: int32
  11267. type: integer
  11268. items:
  11269. items:
  11270. properties:
  11271. key:
  11272. type: string
  11273. mode:
  11274. format: int32
  11275. type: integer
  11276. path:
  11277. type: string
  11278. required:
  11279. - key
  11280. - path
  11281. type: object
  11282. type: array
  11283. x-kubernetes-list-type: atomic
  11284. name:
  11285. default: ""
  11286. type: string
  11287. optional:
  11288. type: boolean
  11289. type: object
  11290. x-kubernetes-map-type: atomic
  11291. emptyDir:
  11292. properties:
  11293. medium:
  11294. type: string
  11295. sizeLimit:
  11296. anyOf:
  11297. - type: integer
  11298. - type: string
  11299. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11300. x-kubernetes-int-or-string: true
  11301. type: object
  11302. hostPath:
  11303. properties:
  11304. path:
  11305. type: string
  11306. type:
  11307. type: string
  11308. required:
  11309. - path
  11310. type: object
  11311. persistentVolumeClaim:
  11312. properties:
  11313. claimName:
  11314. type: string
  11315. readOnly:
  11316. type: boolean
  11317. required:
  11318. - claimName
  11319. type: object
  11320. projected:
  11321. properties:
  11322. defaultMode:
  11323. format: int32
  11324. type: integer
  11325. sources:
  11326. items:
  11327. properties:
  11328. clusterTrustBundle:
  11329. properties:
  11330. labelSelector:
  11331. properties:
  11332. matchExpressions:
  11333. items:
  11334. properties:
  11335. key:
  11336. type: string
  11337. operator:
  11338. type: string
  11339. values:
  11340. items:
  11341. type: string
  11342. type: array
  11343. x-kubernetes-list-type: atomic
  11344. required:
  11345. - key
  11346. - operator
  11347. type: object
  11348. type: array
  11349. x-kubernetes-list-type: atomic
  11350. matchLabels:
  11351. additionalProperties:
  11352. type: string
  11353. type: object
  11354. type: object
  11355. x-kubernetes-map-type: atomic
  11356. name:
  11357. type: string
  11358. optional:
  11359. type: boolean
  11360. path:
  11361. type: string
  11362. signerName:
  11363. type: string
  11364. required:
  11365. - path
  11366. type: object
  11367. configMap:
  11368. properties:
  11369. items:
  11370. items:
  11371. properties:
  11372. key:
  11373. type: string
  11374. mode:
  11375. format: int32
  11376. type: integer
  11377. path:
  11378. type: string
  11379. required:
  11380. - key
  11381. - path
  11382. type: object
  11383. type: array
  11384. x-kubernetes-list-type: atomic
  11385. name:
  11386. default: ""
  11387. type: string
  11388. optional:
  11389. type: boolean
  11390. type: object
  11391. x-kubernetes-map-type: atomic
  11392. downwardAPI:
  11393. properties:
  11394. items:
  11395. items:
  11396. properties:
  11397. fieldRef:
  11398. properties:
  11399. apiVersion:
  11400. type: string
  11401. fieldPath:
  11402. type: string
  11403. required:
  11404. - fieldPath
  11405. type: object
  11406. x-kubernetes-map-type: atomic
  11407. mode:
  11408. format: int32
  11409. type: integer
  11410. path:
  11411. type: string
  11412. resourceFieldRef:
  11413. properties:
  11414. containerName:
  11415. type: string
  11416. divisor:
  11417. anyOf:
  11418. - type: integer
  11419. - type: string
  11420. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11421. x-kubernetes-int-or-string: true
  11422. resource:
  11423. type: string
  11424. required:
  11425. - resource
  11426. type: object
  11427. x-kubernetes-map-type: atomic
  11428. required:
  11429. - path
  11430. type: object
  11431. type: array
  11432. x-kubernetes-list-type: atomic
  11433. type: object
  11434. secret:
  11435. properties:
  11436. items:
  11437. items:
  11438. properties:
  11439. key:
  11440. type: string
  11441. mode:
  11442. format: int32
  11443. type: integer
  11444. path:
  11445. type: string
  11446. required:
  11447. - key
  11448. - path
  11449. type: object
  11450. type: array
  11451. x-kubernetes-list-type: atomic
  11452. name:
  11453. default: ""
  11454. type: string
  11455. optional:
  11456. type: boolean
  11457. type: object
  11458. x-kubernetes-map-type: atomic
  11459. serviceAccountToken:
  11460. properties:
  11461. audience:
  11462. type: string
  11463. expirationSeconds:
  11464. format: int64
  11465. type: integer
  11466. path:
  11467. type: string
  11468. required:
  11469. - path
  11470. type: object
  11471. type: object
  11472. type: array
  11473. x-kubernetes-list-type: atomic
  11474. type: object
  11475. secret:
  11476. properties:
  11477. defaultMode:
  11478. format: int32
  11479. type: integer
  11480. items:
  11481. items:
  11482. properties:
  11483. key:
  11484. type: string
  11485. mode:
  11486. format: int32
  11487. type: integer
  11488. path:
  11489. type: string
  11490. required:
  11491. - key
  11492. - path
  11493. type: object
  11494. type: array
  11495. x-kubernetes-list-type: atomic
  11496. optional:
  11497. type: boolean
  11498. secretName:
  11499. type: string
  11500. type: object
  11501. type: object
  11502. required:
  11503. - subPath
  11504. - volumeSource
  11505. type: object
  11506. type: array
  11507. annotations:
  11508. additionalProperties:
  11509. type: string
  11510. description: The annotations-related configuration to add/set on each Pod related object.
  11511. nullable: true
  11512. type: object
  11513. x-kubernetes-preserve-unknown-fields: true
  11514. caBundleRef:
  11515. description: The name of the secret that stores custom ca-bundle with root and intermediate certificates.
  11516. nullable: true
  11517. type: string
  11518. dashboardEnabled:
  11519. description: Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.
  11520. nullable: true
  11521. type: boolean
  11522. x-kubernetes-preserve-unknown-fields: true
  11523. disableMultisiteSyncTraffic:
  11524. description: |-
  11525. DisableMultisiteSyncTraffic, when true, prevents this object store's gateways from
  11526. transmitting multisite replication data. Note that this value does not affect whether
  11527. gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that.
  11528. If false or unset, this object store's gateways will be able to transmit multisite
  11529. replication data.
  11530. type: boolean
  11531. externalRgwEndpoints:
  11532. description: |-
  11533. ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but
  11534. for stability of ObjectBucketClaims, we highly recommend that users give only a single
  11535. external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
  11536. items:
  11537. description: |-
  11538. EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of
  11539. Kubernetes's v1.EndpointAddress.
  11540. properties:
  11541. hostname:
  11542. description: The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given.
  11543. type: string
  11544. ip:
  11545. description: The IP of this endpoint. As a legacy behavior, this supports being given a DNS-addressable hostname as well.
  11546. type: string
  11547. type: object
  11548. x-kubernetes-map-type: atomic
  11549. nullable: true
  11550. type: array
  11551. hostNetwork:
  11552. description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
  11553. nullable: true
  11554. type: boolean
  11555. x-kubernetes-preserve-unknown-fields: true
  11556. instances:
  11557. description: The number of pods in the rgw replicaset.
  11558. format: int32
  11559. nullable: true
  11560. type: integer
  11561. labels:
  11562. additionalProperties:
  11563. type: string
  11564. description: The labels-related configuration to add/set on each Pod related object.
  11565. nullable: true
  11566. type: object
  11567. x-kubernetes-preserve-unknown-fields: true
  11568. opsLogSidecar:
  11569. description: Enable enhanced operation Logs for S3 in a sidecar named ops-log
  11570. nullable: true
  11571. properties:
  11572. resources:
  11573. description: Resources represents the way to specify resource requirements for the ops-log sidecar
  11574. properties:
  11575. claims:
  11576. description: |-
  11577. Claims lists the names of resources, defined in spec.resourceClaims,
  11578. that are used by this container.
  11579. This is an alpha field and requires enabling the
  11580. DynamicResourceAllocation feature gate.
  11581. This field is immutable. It can only be set for containers.
  11582. items:
  11583. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  11584. properties:
  11585. name:
  11586. description: |-
  11587. Name must match the name of one entry in pod.spec.resourceClaims of
  11588. the Pod where this field is used. It makes that resource available
  11589. inside a container.
  11590. type: string
  11591. request:
  11592. description: |-
  11593. Request is the name chosen for a request in the referenced claim.
  11594. If empty, everything from the claim is made available, otherwise
  11595. only the result of this request.
  11596. type: string
  11597. required:
  11598. - name
  11599. type: object
  11600. type: array
  11601. x-kubernetes-list-map-keys:
  11602. - name
  11603. x-kubernetes-list-type: map
  11604. limits:
  11605. additionalProperties:
  11606. anyOf:
  11607. - type: integer
  11608. - type: string
  11609. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11610. x-kubernetes-int-or-string: true
  11611. description: |-
  11612. Limits describes the maximum amount of compute resources allowed.
  11613. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  11614. type: object
  11615. requests:
  11616. additionalProperties:
  11617. anyOf:
  11618. - type: integer
  11619. - type: string
  11620. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11621. x-kubernetes-int-or-string: true
  11622. description: |-
  11623. Requests describes the minimum amount of compute resources required.
  11624. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  11625. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  11626. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  11627. type: object
  11628. type: object
  11629. type: object
  11630. placement:
  11631. nullable: true
  11632. properties:
  11633. nodeAffinity:
  11634. properties:
  11635. preferredDuringSchedulingIgnoredDuringExecution:
  11636. items:
  11637. properties:
  11638. preference:
  11639. properties:
  11640. matchExpressions:
  11641. items:
  11642. properties:
  11643. key:
  11644. type: string
  11645. operator:
  11646. type: string
  11647. values:
  11648. items:
  11649. type: string
  11650. type: array
  11651. x-kubernetes-list-type: atomic
  11652. required:
  11653. - key
  11654. - operator
  11655. type: object
  11656. type: array
  11657. x-kubernetes-list-type: atomic
  11658. matchFields:
  11659. items:
  11660. properties:
  11661. key:
  11662. type: string
  11663. operator:
  11664. type: string
  11665. values:
  11666. items:
  11667. type: string
  11668. type: array
  11669. x-kubernetes-list-type: atomic
  11670. required:
  11671. - key
  11672. - operator
  11673. type: object
  11674. type: array
  11675. x-kubernetes-list-type: atomic
  11676. type: object
  11677. x-kubernetes-map-type: atomic
  11678. weight:
  11679. format: int32
  11680. type: integer
  11681. required:
  11682. - preference
  11683. - weight
  11684. type: object
  11685. type: array
  11686. x-kubernetes-list-type: atomic
  11687. requiredDuringSchedulingIgnoredDuringExecution:
  11688. properties:
  11689. nodeSelectorTerms:
  11690. items:
  11691. properties:
  11692. matchExpressions:
  11693. items:
  11694. properties:
  11695. key:
  11696. type: string
  11697. operator:
  11698. type: string
  11699. values:
  11700. items:
  11701. type: string
  11702. type: array
  11703. x-kubernetes-list-type: atomic
  11704. required:
  11705. - key
  11706. - operator
  11707. type: object
  11708. type: array
  11709. x-kubernetes-list-type: atomic
  11710. matchFields:
  11711. items:
  11712. properties:
  11713. key:
  11714. type: string
  11715. operator:
  11716. type: string
  11717. values:
  11718. items:
  11719. type: string
  11720. type: array
  11721. x-kubernetes-list-type: atomic
  11722. required:
  11723. - key
  11724. - operator
  11725. type: object
  11726. type: array
  11727. x-kubernetes-list-type: atomic
  11728. type: object
  11729. x-kubernetes-map-type: atomic
  11730. type: array
  11731. x-kubernetes-list-type: atomic
  11732. required:
  11733. - nodeSelectorTerms
  11734. type: object
  11735. x-kubernetes-map-type: atomic
  11736. type: object
  11737. podAffinity:
  11738. properties:
  11739. preferredDuringSchedulingIgnoredDuringExecution:
  11740. items:
  11741. properties:
  11742. podAffinityTerm:
  11743. properties:
  11744. labelSelector:
  11745. properties:
  11746. matchExpressions:
  11747. items:
  11748. properties:
  11749. key:
  11750. type: string
  11751. operator:
  11752. type: string
  11753. values:
  11754. items:
  11755. type: string
  11756. type: array
  11757. x-kubernetes-list-type: atomic
  11758. required:
  11759. - key
  11760. - operator
  11761. type: object
  11762. type: array
  11763. x-kubernetes-list-type: atomic
  11764. matchLabels:
  11765. additionalProperties:
  11766. type: string
  11767. type: object
  11768. type: object
  11769. x-kubernetes-map-type: atomic
  11770. matchLabelKeys:
  11771. items:
  11772. type: string
  11773. type: array
  11774. x-kubernetes-list-type: atomic
  11775. mismatchLabelKeys:
  11776. items:
  11777. type: string
  11778. type: array
  11779. x-kubernetes-list-type: atomic
  11780. namespaceSelector:
  11781. properties:
  11782. matchExpressions:
  11783. items:
  11784. properties:
  11785. key:
  11786. type: string
  11787. operator:
  11788. type: string
  11789. values:
  11790. items:
  11791. type: string
  11792. type: array
  11793. x-kubernetes-list-type: atomic
  11794. required:
  11795. - key
  11796. - operator
  11797. type: object
  11798. type: array
  11799. x-kubernetes-list-type: atomic
  11800. matchLabels:
  11801. additionalProperties:
  11802. type: string
  11803. type: object
  11804. type: object
  11805. x-kubernetes-map-type: atomic
  11806. namespaces:
  11807. items:
  11808. type: string
  11809. type: array
  11810. x-kubernetes-list-type: atomic
  11811. topologyKey:
  11812. type: string
  11813. required:
  11814. - topologyKey
  11815. type: object
  11816. weight:
  11817. format: int32
  11818. type: integer
  11819. required:
  11820. - podAffinityTerm
  11821. - weight
  11822. type: object
  11823. type: array
  11824. x-kubernetes-list-type: atomic
  11825. requiredDuringSchedulingIgnoredDuringExecution:
  11826. items:
  11827. properties:
  11828. labelSelector:
  11829. properties:
  11830. matchExpressions:
  11831. items:
  11832. properties:
  11833. key:
  11834. type: string
  11835. operator:
  11836. type: string
  11837. values:
  11838. items:
  11839. type: string
  11840. type: array
  11841. x-kubernetes-list-type: atomic
  11842. required:
  11843. - key
  11844. - operator
  11845. type: object
  11846. type: array
  11847. x-kubernetes-list-type: atomic
  11848. matchLabels:
  11849. additionalProperties:
  11850. type: string
  11851. type: object
  11852. type: object
  11853. x-kubernetes-map-type: atomic
  11854. matchLabelKeys:
  11855. items:
  11856. type: string
  11857. type: array
  11858. x-kubernetes-list-type: atomic
  11859. mismatchLabelKeys:
  11860. items:
  11861. type: string
  11862. type: array
  11863. x-kubernetes-list-type: atomic
  11864. namespaceSelector:
  11865. properties:
  11866. matchExpressions:
  11867. items:
  11868. properties:
  11869. key:
  11870. type: string
  11871. operator:
  11872. type: string
  11873. values:
  11874. items:
  11875. type: string
  11876. type: array
  11877. x-kubernetes-list-type: atomic
  11878. required:
  11879. - key
  11880. - operator
  11881. type: object
  11882. type: array
  11883. x-kubernetes-list-type: atomic
  11884. matchLabels:
  11885. additionalProperties:
  11886. type: string
  11887. type: object
  11888. type: object
  11889. x-kubernetes-map-type: atomic
  11890. namespaces:
  11891. items:
  11892. type: string
  11893. type: array
  11894. x-kubernetes-list-type: atomic
  11895. topologyKey:
  11896. type: string
  11897. required:
  11898. - topologyKey
  11899. type: object
  11900. type: array
  11901. x-kubernetes-list-type: atomic
  11902. type: object
  11903. podAntiAffinity:
  11904. properties:
  11905. preferredDuringSchedulingIgnoredDuringExecution:
  11906. items:
  11907. properties:
  11908. podAffinityTerm:
  11909. properties:
  11910. labelSelector:
  11911. properties:
  11912. matchExpressions:
  11913. items:
  11914. properties:
  11915. key:
  11916. type: string
  11917. operator:
  11918. type: string
  11919. values:
  11920. items:
  11921. type: string
  11922. type: array
  11923. x-kubernetes-list-type: atomic
  11924. required:
  11925. - key
  11926. - operator
  11927. type: object
  11928. type: array
  11929. x-kubernetes-list-type: atomic
  11930. matchLabels:
  11931. additionalProperties:
  11932. type: string
  11933. type: object
  11934. type: object
  11935. x-kubernetes-map-type: atomic
  11936. matchLabelKeys:
  11937. items:
  11938. type: string
  11939. type: array
  11940. x-kubernetes-list-type: atomic
  11941. mismatchLabelKeys:
  11942. items:
  11943. type: string
  11944. type: array
  11945. x-kubernetes-list-type: atomic
  11946. namespaceSelector:
  11947. properties:
  11948. matchExpressions:
  11949. items:
  11950. properties:
  11951. key:
  11952. type: string
  11953. operator:
  11954. type: string
  11955. values:
  11956. items:
  11957. type: string
  11958. type: array
  11959. x-kubernetes-list-type: atomic
  11960. required:
  11961. - key
  11962. - operator
  11963. type: object
  11964. type: array
  11965. x-kubernetes-list-type: atomic
  11966. matchLabels:
  11967. additionalProperties:
  11968. type: string
  11969. type: object
  11970. type: object
  11971. x-kubernetes-map-type: atomic
  11972. namespaces:
  11973. items:
  11974. type: string
  11975. type: array
  11976. x-kubernetes-list-type: atomic
  11977. topologyKey:
  11978. type: string
  11979. required:
  11980. - topologyKey
  11981. type: object
  11982. weight:
  11983. format: int32
  11984. type: integer
  11985. required:
  11986. - podAffinityTerm
  11987. - weight
  11988. type: object
  11989. type: array
  11990. x-kubernetes-list-type: atomic
  11991. requiredDuringSchedulingIgnoredDuringExecution:
  11992. items:
  11993. properties:
  11994. labelSelector:
  11995. properties:
  11996. matchExpressions:
  11997. items:
  11998. properties:
  11999. key:
  12000. type: string
  12001. operator:
  12002. type: string
  12003. values:
  12004. items:
  12005. type: string
  12006. type: array
  12007. x-kubernetes-list-type: atomic
  12008. required:
  12009. - key
  12010. - operator
  12011. type: object
  12012. type: array
  12013. x-kubernetes-list-type: atomic
  12014. matchLabels:
  12015. additionalProperties:
  12016. type: string
  12017. type: object
  12018. type: object
  12019. x-kubernetes-map-type: atomic
  12020. matchLabelKeys:
  12021. items:
  12022. type: string
  12023. type: array
  12024. x-kubernetes-list-type: atomic
  12025. mismatchLabelKeys:
  12026. items:
  12027. type: string
  12028. type: array
  12029. x-kubernetes-list-type: atomic
  12030. namespaceSelector:
  12031. properties:
  12032. matchExpressions:
  12033. items:
  12034. properties:
  12035. key:
  12036. type: string
  12037. operator:
  12038. type: string
  12039. values:
  12040. items:
  12041. type: string
  12042. type: array
  12043. x-kubernetes-list-type: atomic
  12044. required:
  12045. - key
  12046. - operator
  12047. type: object
  12048. type: array
  12049. x-kubernetes-list-type: atomic
  12050. matchLabels:
  12051. additionalProperties:
  12052. type: string
  12053. type: object
  12054. type: object
  12055. x-kubernetes-map-type: atomic
  12056. namespaces:
  12057. items:
  12058. type: string
  12059. type: array
  12060. x-kubernetes-list-type: atomic
  12061. topologyKey:
  12062. type: string
  12063. required:
  12064. - topologyKey
  12065. type: object
  12066. type: array
  12067. x-kubernetes-list-type: atomic
  12068. type: object
  12069. tolerations:
  12070. items:
  12071. properties:
  12072. effect:
  12073. type: string
  12074. key:
  12075. type: string
  12076. operator:
  12077. type: string
  12078. tolerationSeconds:
  12079. format: int64
  12080. type: integer
  12081. value:
  12082. type: string
  12083. type: object
  12084. type: array
  12085. topologySpreadConstraints:
  12086. items:
  12087. properties:
  12088. labelSelector:
  12089. properties:
  12090. matchExpressions:
  12091. items:
  12092. properties:
  12093. key:
  12094. type: string
  12095. operator:
  12096. type: string
  12097. values:
  12098. items:
  12099. type: string
  12100. type: array
  12101. x-kubernetes-list-type: atomic
  12102. required:
  12103. - key
  12104. - operator
  12105. type: object
  12106. type: array
  12107. x-kubernetes-list-type: atomic
  12108. matchLabels:
  12109. additionalProperties:
  12110. type: string
  12111. type: object
  12112. type: object
  12113. x-kubernetes-map-type: atomic
  12114. matchLabelKeys:
  12115. items:
  12116. type: string
  12117. type: array
  12118. x-kubernetes-list-type: atomic
  12119. maxSkew:
  12120. format: int32
  12121. type: integer
  12122. minDomains:
  12123. format: int32
  12124. type: integer
  12125. nodeAffinityPolicy:
  12126. type: string
  12127. nodeTaintsPolicy:
  12128. type: string
  12129. topologyKey:
  12130. type: string
  12131. whenUnsatisfiable:
  12132. type: string
  12133. required:
  12134. - maxSkew
  12135. - topologyKey
  12136. - whenUnsatisfiable
  12137. type: object
  12138. type: array
  12139. type: object
  12140. x-kubernetes-preserve-unknown-fields: true
  12141. port:
  12142. description: The port the rgw service will be listening on (http)
  12143. format: int32
  12144. type: integer
  12145. priorityClassName:
  12146. description: PriorityClassName sets priority classes on the rgw pods
  12147. type: string
  12148. readAffinity:
  12149. description: |-
  12150. ReadAffinity defines the RGW read affinity policy to optimize the read requests for the RGW clients
  12151. Note: Only supported from Ceph Tentacle (v20)
  12152. properties:
  12153. type:
  12154. description: |-
  12155. Type defines the RGW ReadAffinity type
  12156. localize: read from the nearest OSD based on crush location of the RGW client
  12157. balance: picks a random OSD from the PG's active set
  12158. default: read from the primary OSD
  12159. enum:
  12160. - localize
  12161. - balance
  12162. - default
  12163. type: string
  12164. required:
  12165. - type
  12166. type: object
  12167. resources:
  12168. description: The resource requirements for the rgw pods
  12169. nullable: true
  12170. properties:
  12171. claims:
  12172. description: |-
  12173. Claims lists the names of resources, defined in spec.resourceClaims,
  12174. that are used by this container.
  12175. This is an alpha field and requires enabling the
  12176. DynamicResourceAllocation feature gate.
  12177. This field is immutable. It can only be set for containers.
  12178. items:
  12179. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  12180. properties:
  12181. name:
  12182. description: |-
  12183. Name must match the name of one entry in pod.spec.resourceClaims of
  12184. the Pod where this field is used. It makes that resource available
  12185. inside a container.
  12186. type: string
  12187. request:
  12188. description: |-
  12189. Request is the name chosen for a request in the referenced claim.
  12190. If empty, everything from the claim is made available, otherwise
  12191. only the result of this request.
  12192. type: string
  12193. required:
  12194. - name
  12195. type: object
  12196. type: array
  12197. x-kubernetes-list-map-keys:
  12198. - name
  12199. x-kubernetes-list-type: map
  12200. limits:
  12201. additionalProperties:
  12202. anyOf:
  12203. - type: integer
  12204. - type: string
  12205. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12206. x-kubernetes-int-or-string: true
  12207. description: |-
  12208. Limits describes the maximum amount of compute resources allowed.
  12209. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12210. type: object
  12211. requests:
  12212. additionalProperties:
  12213. anyOf:
  12214. - type: integer
  12215. - type: string
  12216. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12217. x-kubernetes-int-or-string: true
  12218. description: |-
  12219. Requests describes the minimum amount of compute resources required.
  12220. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  12221. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  12222. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12223. type: object
  12224. type: object
  12225. x-kubernetes-preserve-unknown-fields: true
  12226. rgwCommandFlags:
  12227. additionalProperties:
  12228. type: string
  12229. description: |-
  12230. RgwCommandFlags sets Ceph RGW config values for the gateway clients that serve this object
  12231. store. Values are modified at RGW startup, resulting in RGW pod restarts.
  12232. This feature is intended for advanced users. It allows breaking configurations to be easily
  12233. applied. Use with caution.
  12234. nullable: true
  12235. type: object
  12236. rgwConfig:
  12237. additionalProperties:
  12238. type: string
  12239. description: |-
  12240. RgwConfig sets Ceph RGW config values for the gateway clients that serve this object store.
  12241. Values are modified at runtime without RGW restart.
  12242. This feature is intended for advanced users. It allows breaking configurations to be easily
  12243. applied. Use with caution.
  12244. nullable: true
  12245. type: object
  12246. rgwConfigFromSecret:
  12247. additionalProperties:
  12248. description: SecretKeySelector selects a key of a Secret.
  12249. properties:
  12250. key:
  12251. description: The key of the secret to select from. Must be a valid secret key.
  12252. type: string
  12253. name:
  12254. default: ""
  12255. description: |-
  12256. Name of the referent.
  12257. This field is effectively required, but due to backwards compatibility is
  12258. allowed to be empty. Instances of this type with an empty value here are
  12259. almost certainly wrong.
  12260. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  12261. type: string
  12262. optional:
  12263. description: Specify whether the Secret or its key must be defined
  12264. type: boolean
  12265. required:
  12266. - key
  12267. type: object
  12268. x-kubernetes-map-type: atomic
  12269. description: |-
  12270. RgwConfigFromSecret works exactly like RgwConfig but takes config value from Secret Key reference.
  12271. Values are modified at runtime without RGW restart.
  12272. This feature is intended for advanced users. It allows breaking configurations to be easily
  12273. applied. Use with caution.
  12274. nullable: true
  12275. type: object
  12276. securePort:
  12277. description: The port the rgw service will be listening on (https)
  12278. format: int32
  12279. maximum: 65535
  12280. minimum: 0
  12281. nullable: true
  12282. type: integer
  12283. service:
  12284. description: The configuration related to add/set on each rgw service.
  12285. nullable: true
  12286. properties:
  12287. annotations:
  12288. additionalProperties:
  12289. type: string
  12290. description: |-
  12291. The annotations-related configuration to add/set on each rgw service.
  12292. nullable
  12293. optional
  12294. type: object
  12295. type: object
  12296. sslCertificateRef:
  12297. description: The name of the secret that stores the ssl certificate for secure rgw connections
  12298. nullable: true
  12299. type: string
  12300. type: object
  12301. healthCheck:
  12302. description: The RGW health probes
  12303. nullable: true
  12304. properties:
  12305. readinessProbe:
  12306. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  12307. properties:
  12308. disabled:
  12309. description: Disabled determines whether probe is disable or not
  12310. type: boolean
  12311. probe:
  12312. description: |-
  12313. Probe describes a health check to be performed against a container to determine whether it is
  12314. alive or ready to receive traffic.
  12315. properties:
  12316. exec:
  12317. description: Exec specifies a command to execute in the container.
  12318. properties:
  12319. command:
  12320. description: |-
  12321. Command is the command line to execute inside the container, the working directory for the
  12322. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12323. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12324. a shell, you need to explicitly call out to that shell.
  12325. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12326. items:
  12327. type: string
  12328. type: array
  12329. x-kubernetes-list-type: atomic
  12330. type: object
  12331. failureThreshold:
  12332. description: |-
  12333. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  12334. Defaults to 3. Minimum value is 1.
  12335. format: int32
  12336. type: integer
  12337. grpc:
  12338. description: GRPC specifies a GRPC HealthCheckRequest.
  12339. properties:
  12340. port:
  12341. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  12342. format: int32
  12343. type: integer
  12344. service:
  12345. default: ""
  12346. description: |-
  12347. Service is the name of the service to place in the gRPC HealthCheckRequest
  12348. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  12349. If this is not specified, the default behavior is defined by gRPC.
  12350. type: string
  12351. required:
  12352. - port
  12353. type: object
  12354. httpGet:
  12355. description: HTTPGet specifies an HTTP GET request to perform.
  12356. properties:
  12357. host:
  12358. description: |-
  12359. Host name to connect to, defaults to the pod IP. You probably want to set
  12360. "Host" in httpHeaders instead.
  12361. type: string
  12362. httpHeaders:
  12363. description: Custom headers to set in the request. HTTP allows repeated headers.
  12364. items:
  12365. description: HTTPHeader describes a custom header to be used in HTTP probes
  12366. properties:
  12367. name:
  12368. description: |-
  12369. The header field name.
  12370. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12371. type: string
  12372. value:
  12373. description: The header field value
  12374. type: string
  12375. required:
  12376. - name
  12377. - value
  12378. type: object
  12379. type: array
  12380. x-kubernetes-list-type: atomic
  12381. path:
  12382. description: Path to access on the HTTP server.
  12383. type: string
  12384. port:
  12385. anyOf:
  12386. - type: integer
  12387. - type: string
  12388. description: |-
  12389. Name or number of the port to access on the container.
  12390. Number must be in the range 1 to 65535.
  12391. Name must be an IANA_SVC_NAME.
  12392. x-kubernetes-int-or-string: true
  12393. scheme:
  12394. description: |-
  12395. Scheme to use for connecting to the host.
  12396. Defaults to HTTP.
  12397. type: string
  12398. required:
  12399. - port
  12400. type: object
  12401. initialDelaySeconds:
  12402. description: |-
  12403. Number of seconds after the container has started before liveness probes are initiated.
  12404. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12405. format: int32
  12406. type: integer
  12407. periodSeconds:
  12408. description: |-
  12409. How often (in seconds) to perform the probe.
  12410. Default to 10 seconds. Minimum value is 1.
  12411. format: int32
  12412. type: integer
  12413. successThreshold:
  12414. description: |-
  12415. Minimum consecutive successes for the probe to be considered successful after having failed.
  12416. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  12417. format: int32
  12418. type: integer
  12419. tcpSocket:
  12420. description: TCPSocket specifies a connection to a TCP port.
  12421. properties:
  12422. host:
  12423. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  12424. type: string
  12425. port:
  12426. anyOf:
  12427. - type: integer
  12428. - type: string
  12429. description: |-
  12430. Number or name of the port to access on the container.
  12431. Number must be in the range 1 to 65535.
  12432. Name must be an IANA_SVC_NAME.
  12433. x-kubernetes-int-or-string: true
  12434. required:
  12435. - port
  12436. type: object
  12437. terminationGracePeriodSeconds:
  12438. format: int64
  12439. type: integer
  12440. timeoutSeconds:
  12441. description: |-
  12442. Number of seconds after which the probe times out.
  12443. Defaults to 1 second. Minimum value is 1.
  12444. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12445. format: int32
  12446. type: integer
  12447. type: object
  12448. type: object
  12449. x-kubernetes-preserve-unknown-fields: true
  12450. startupProbe:
  12451. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  12452. properties:
  12453. disabled:
  12454. description: Disabled determines whether probe is disable or not
  12455. type: boolean
  12456. probe:
  12457. description: |-
  12458. Probe describes a health check to be performed against a container to determine whether it is
  12459. alive or ready to receive traffic.
  12460. properties:
  12461. exec:
  12462. description: Exec specifies a command to execute in the container.
  12463. properties:
  12464. command:
  12465. description: |-
  12466. Command is the command line to execute inside the container, the working directory for the
  12467. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12468. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12469. a shell, you need to explicitly call out to that shell.
  12470. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12471. items:
  12472. type: string
  12473. type: array
  12474. x-kubernetes-list-type: atomic
  12475. type: object
  12476. failureThreshold:
  12477. description: |-
  12478. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  12479. Defaults to 3. Minimum value is 1.
  12480. format: int32
  12481. type: integer
  12482. grpc:
  12483. description: GRPC specifies a GRPC HealthCheckRequest.
  12484. properties:
  12485. port:
  12486. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  12487. format: int32
  12488. type: integer
  12489. service:
  12490. default: ""
  12491. description: |-
  12492. Service is the name of the service to place in the gRPC HealthCheckRequest
  12493. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  12494. If this is not specified, the default behavior is defined by gRPC.
  12495. type: string
  12496. required:
  12497. - port
  12498. type: object
  12499. httpGet:
  12500. description: HTTPGet specifies an HTTP GET request to perform.
  12501. properties:
  12502. host:
  12503. description: |-
  12504. Host name to connect to, defaults to the pod IP. You probably want to set
  12505. "Host" in httpHeaders instead.
  12506. type: string
  12507. httpHeaders:
  12508. description: Custom headers to set in the request. HTTP allows repeated headers.
  12509. items:
  12510. description: HTTPHeader describes a custom header to be used in HTTP probes
  12511. properties:
  12512. name:
  12513. description: |-
  12514. The header field name.
  12515. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12516. type: string
  12517. value:
  12518. description: The header field value
  12519. type: string
  12520. required:
  12521. - name
  12522. - value
  12523. type: object
  12524. type: array
  12525. x-kubernetes-list-type: atomic
  12526. path:
  12527. description: Path to access on the HTTP server.
  12528. type: string
  12529. port:
  12530. anyOf:
  12531. - type: integer
  12532. - type: string
  12533. description: |-
  12534. Name or number of the port to access on the container.
  12535. Number must be in the range 1 to 65535.
  12536. Name must be an IANA_SVC_NAME.
  12537. x-kubernetes-int-or-string: true
  12538. scheme:
  12539. description: |-
  12540. Scheme to use for connecting to the host.
  12541. Defaults to HTTP.
  12542. type: string
  12543. required:
  12544. - port
  12545. type: object
  12546. initialDelaySeconds:
  12547. description: |-
  12548. Number of seconds after the container has started before liveness probes are initiated.
  12549. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12550. format: int32
  12551. type: integer
  12552. periodSeconds:
  12553. description: |-
  12554. How often (in seconds) to perform the probe.
  12555. Default to 10 seconds. Minimum value is 1.
  12556. format: int32
  12557. type: integer
  12558. successThreshold:
  12559. description: |-
  12560. Minimum consecutive successes for the probe to be considered successful after having failed.
  12561. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  12562. format: int32
  12563. type: integer
  12564. tcpSocket:
  12565. description: TCPSocket specifies a connection to a TCP port.
  12566. properties:
  12567. host:
  12568. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  12569. type: string
  12570. port:
  12571. anyOf:
  12572. - type: integer
  12573. - type: string
  12574. description: |-
  12575. Number or name of the port to access on the container.
  12576. Number must be in the range 1 to 65535.
  12577. Name must be an IANA_SVC_NAME.
  12578. x-kubernetes-int-or-string: true
  12579. required:
  12580. - port
  12581. type: object
  12582. terminationGracePeriodSeconds:
  12583. format: int64
  12584. type: integer
  12585. timeoutSeconds:
  12586. description: |-
  12587. Number of seconds after which the probe times out.
  12588. Defaults to 1 second. Minimum value is 1.
  12589. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12590. format: int32
  12591. type: integer
  12592. type: object
  12593. type: object
  12594. type: object
  12595. hosting:
  12596. description: |-
  12597. Hosting settings for the object store.
  12598. A common use case for hosting configuration is to inform Rook of endpoints that support DNS
  12599. wildcards, which in turn allows virtual host-style bucket addressing.
  12600. nullable: true
  12601. properties:
  12602. advertiseEndpoint:
  12603. description: |-
  12604. AdvertiseEndpoint is the default endpoint Rook will return for resources dependent on this
  12605. object store. This endpoint will be returned to CephObjectStoreUsers, Object Bucket Claims,
  12606. and COSI Buckets/Accesses.
  12607. By default, Rook returns the endpoint for the object store's Kubernetes service using HTTPS
  12608. with `gateway.securePort` if it is defined (otherwise, HTTP with `gateway.port`).
  12609. nullable: true
  12610. properties:
  12611. dnsName:
  12612. description: |-
  12613. DnsName is the DNS name (in RFC-1123 format) of the endpoint.
  12614. If the DNS name corresponds to an endpoint with DNS wildcard support, do not include the
  12615. wildcard itself in the list of hostnames.
  12616. E.g., use "mystore.example.com" instead of "*.mystore.example.com".
  12617. minLength: 1
  12618. type: string
  12619. port:
  12620. description: Port is the port on which S3 connections can be made for this endpoint.
  12621. format: int32
  12622. maximum: 65535
  12623. minimum: 1
  12624. type: integer
  12625. useTls:
  12626. description: UseTls defines whether the endpoint uses TLS (HTTPS) or not (HTTP).
  12627. type: boolean
  12628. required:
  12629. - dnsName
  12630. - port
  12631. - useTls
  12632. type: object
  12633. dnsNames:
  12634. description: |-
  12635. A list of DNS host names on which object store gateways will accept client S3 connections.
  12636. When specified, object store gateways will reject client S3 connections to hostnames that are
  12637. not present in this list, so include all endpoints.
  12638. The object store's advertiseEndpoint and Kubernetes service endpoint, plus CephObjectZone
  12639. `customEndpoints` are automatically added to the list but may be set here again if desired.
  12640. Each DNS name must be valid according RFC-1123.
  12641. If the DNS name corresponds to an endpoint with DNS wildcard support, do not include the
  12642. wildcard itself in the list of hostnames.
  12643. E.g., use "mystore.example.com" instead of "*.mystore.example.com".
  12644. items:
  12645. type: string
  12646. type: array
  12647. type: object
  12648. metadataPool:
  12649. description: The metadata pool settings
  12650. nullable: true
  12651. properties:
  12652. application:
  12653. description: The application name to set on the pool. Only expected to be set for rgw pools.
  12654. type: string
  12655. compressionMode:
  12656. description: |-
  12657. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  12658. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  12659. Do NOT set a default value for kubebuilder as this will override the Parameters
  12660. enum:
  12661. - none
  12662. - passive
  12663. - aggressive
  12664. - force
  12665. - ""
  12666. nullable: true
  12667. type: string
  12668. crushRoot:
  12669. description: The root of the crush hierarchy utilized by the pool
  12670. nullable: true
  12671. type: string
  12672. deviceClass:
  12673. description: The device class the OSD should set to for use in the pool
  12674. nullable: true
  12675. type: string
  12676. enableCrushUpdates:
  12677. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  12678. type: boolean
  12679. enableRBDStats:
  12680. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  12681. type: boolean
  12682. erasureCoded:
  12683. description: The erasure code settings
  12684. properties:
  12685. algorithm:
  12686. description: The algorithm for erasure coding
  12687. type: string
  12688. codingChunks:
  12689. description: |-
  12690. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  12691. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  12692. minimum: 0
  12693. type: integer
  12694. dataChunks:
  12695. description: |-
  12696. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  12697. The number of chunks required to recover an object when any single OSD is lost is the same
  12698. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  12699. minimum: 0
  12700. type: integer
  12701. required:
  12702. - codingChunks
  12703. - dataChunks
  12704. type: object
  12705. failureDomain:
  12706. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  12707. type: string
  12708. mirroring:
  12709. description: The mirroring settings
  12710. properties:
  12711. enabled:
  12712. description: Enabled whether this pool is mirrored or not
  12713. type: boolean
  12714. mode:
  12715. description: 'Mode is the mirroring mode: pool, image or init-only.'
  12716. enum:
  12717. - pool
  12718. - image
  12719. - init-only
  12720. type: string
  12721. peers:
  12722. description: Peers represents the peers spec
  12723. nullable: true
  12724. properties:
  12725. secretNames:
  12726. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12727. items:
  12728. type: string
  12729. type: array
  12730. type: object
  12731. snapshotSchedules:
  12732. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  12733. items:
  12734. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  12735. properties:
  12736. interval:
  12737. description: Interval represent the periodicity of the snapshot.
  12738. type: string
  12739. path:
  12740. description: Path is the path to snapshot, only valid for CephFS
  12741. type: string
  12742. startTime:
  12743. description: StartTime indicates when to start the snapshot
  12744. type: string
  12745. type: object
  12746. type: array
  12747. type: object
  12748. parameters:
  12749. additionalProperties:
  12750. type: string
  12751. description: Parameters is a list of properties to enable on a given pool
  12752. nullable: true
  12753. type: object
  12754. x-kubernetes-preserve-unknown-fields: true
  12755. quotas:
  12756. description: The quota settings
  12757. nullable: true
  12758. properties:
  12759. maxBytes:
  12760. description: |-
  12761. MaxBytes represents the quota in bytes
  12762. Deprecated in favor of MaxSize
  12763. format: int64
  12764. type: integer
  12765. maxObjects:
  12766. description: MaxObjects represents the quota in objects
  12767. format: int64
  12768. type: integer
  12769. maxSize:
  12770. description: MaxSize represents the quota in bytes as a string
  12771. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  12772. type: string
  12773. type: object
  12774. replicated:
  12775. description: The replication settings
  12776. properties:
  12777. hybridStorage:
  12778. description: HybridStorage represents hybrid storage tier settings
  12779. nullable: true
  12780. properties:
  12781. primaryDeviceClass:
  12782. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  12783. minLength: 1
  12784. type: string
  12785. secondaryDeviceClass:
  12786. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  12787. minLength: 1
  12788. type: string
  12789. required:
  12790. - primaryDeviceClass
  12791. - secondaryDeviceClass
  12792. type: object
  12793. replicasPerFailureDomain:
  12794. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  12795. minimum: 1
  12796. type: integer
  12797. requireSafeReplicaSize:
  12798. description: RequireSafeReplicaSize if false allows you to set replica 1
  12799. type: boolean
  12800. size:
  12801. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  12802. minimum: 0
  12803. type: integer
  12804. subFailureDomain:
  12805. description: SubFailureDomain the name of the sub-failure domain
  12806. type: string
  12807. targetSizeRatio:
  12808. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  12809. minimum: 0
  12810. type: number
  12811. required:
  12812. - size
  12813. type: object
  12814. statusCheck:
  12815. description: The mirroring statusCheck
  12816. properties:
  12817. mirror:
  12818. description: HealthCheckSpec represents the health check of an object store bucket
  12819. nullable: true
  12820. properties:
  12821. disabled:
  12822. type: boolean
  12823. interval:
  12824. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12825. type: string
  12826. timeout:
  12827. type: string
  12828. type: object
  12829. type: object
  12830. x-kubernetes-preserve-unknown-fields: true
  12831. type: object
  12832. preservePoolsOnDelete:
  12833. description: Preserve pools on object store deletion
  12834. type: boolean
  12835. protocols:
  12836. description: The protocol specification
  12837. properties:
  12838. enableAPIs:
  12839. description: |-
  12840. Represents RGW 'rgw_enable_apis' config option. See: https://docs.ceph.com/en/reef/radosgw/config-ref/#confval-rgw_enable_apis
  12841. If no value provided then all APIs will be enabled: s3, s3website, swift, swift_auth, admin, sts, iam, notifications
  12842. If enabled APIs are set, all remaining APIs will be disabled.
  12843. This option overrides S3.Enabled value.
  12844. items:
  12845. enum:
  12846. - s3
  12847. - s3website
  12848. - swift
  12849. - swift_auth
  12850. - admin
  12851. - sts
  12852. - iam
  12853. - notifications
  12854. type: string
  12855. nullable: true
  12856. type: array
  12857. s3:
  12858. description: The spec for S3
  12859. nullable: true
  12860. properties:
  12861. authUseKeystone:
  12862. description: Whether to use Keystone for authentication. This option maps directly to the rgw_s3_auth_use_keystone option. Enabling it allows generating S3 credentials via an OpenStack API call, see the docs. If not given, the defaults of the corresponding RGW option apply.
  12863. nullable: true
  12864. type: boolean
  12865. enabled:
  12866. description: |-
  12867. Deprecated: use protocol.enableAPIs instead.
  12868. Whether to enable S3. This defaults to true (even if protocols.s3 is not present in the CRD). This maintains backwards compatibility – by default S3 is enabled.
  12869. nullable: true
  12870. type: boolean
  12871. type: object
  12872. swift:
  12873. description: The spec for Swift
  12874. nullable: true
  12875. properties:
  12876. accountInUrl:
  12877. description: Whether or not the Swift account name should be included in the Swift API URL. If set to false (the default), then the Swift API will listen on a URL formed like http://host:port/<rgw_swift_url_prefix>/v1. If set to true, the Swift API URL will be http://host:port/<rgw_swift_url_prefix>/v1/AUTH_<account_name>. You must set this option to true (and update the Keystone service catalog) if you want radosgw to support publicly-readable containers and temporary URLs.
  12878. nullable: true
  12879. type: boolean
  12880. urlPrefix:
  12881. description: The URL prefix for the Swift API, to distinguish it from the S3 API endpoint. The default is swift, which makes the Swift API available at the URL http://host:port/swift/v1 (or http://host:port/swift/v1/AUTH_%(tenant_id)s if rgw swift account in url is enabled).
  12882. nullable: true
  12883. type: string
  12884. versioningEnabled:
  12885. description: Enables the Object Versioning of OpenStack Object Storage API. This allows clients to put the X-Versions-Location attribute on containers that should be versioned.
  12886. nullable: true
  12887. type: boolean
  12888. type: object
  12889. type: object
  12890. security:
  12891. description: Security represents security settings
  12892. nullable: true
  12893. properties:
  12894. keyRotation:
  12895. description: KeyRotation defines options for Key Rotation.
  12896. nullable: true
  12897. properties:
  12898. enabled:
  12899. default: false
  12900. description: Enabled represents whether the key rotation is enabled.
  12901. type: boolean
  12902. schedule:
  12903. description: Schedule represents the cron schedule for key rotation.
  12904. type: string
  12905. type: object
  12906. kms:
  12907. description: KeyManagementService is the main Key Management option
  12908. nullable: true
  12909. properties:
  12910. connectionDetails:
  12911. additionalProperties:
  12912. type: string
  12913. description: ConnectionDetails contains the KMS connection details (address, port etc)
  12914. nullable: true
  12915. type: object
  12916. x-kubernetes-preserve-unknown-fields: true
  12917. tokenSecretName:
  12918. description: TokenSecretName is the kubernetes secret containing the KMS token
  12919. type: string
  12920. type: object
  12921. s3:
  12922. description: The settings for supporting AWS-SSE:S3 with RGW
  12923. nullable: true
  12924. properties:
  12925. connectionDetails:
  12926. additionalProperties:
  12927. type: string
  12928. description: ConnectionDetails contains the KMS connection details (address, port etc)
  12929. nullable: true
  12930. type: object
  12931. x-kubernetes-preserve-unknown-fields: true
  12932. tokenSecretName:
  12933. description: TokenSecretName is the kubernetes secret containing the KMS token
  12934. type: string
  12935. type: object
  12936. type: object
  12937. sharedPools:
  12938. description: The pool information when configuring RADOS namespaces in existing pools.
  12939. nullable: true
  12940. properties:
  12941. dataPoolName:
  12942. description: The data pool used for creating RADOS namespaces in the object store
  12943. type: string
  12944. x-kubernetes-validations:
  12945. - message: object store shared data pool is immutable
  12946. rule: self == oldSelf
  12947. metadataPoolName:
  12948. description: The metadata pool used for creating RADOS namespaces in the object store
  12949. type: string
  12950. x-kubernetes-validations:
  12951. - message: object store shared metadata pool is immutable
  12952. rule: self == oldSelf
  12953. poolPlacements:
  12954. description: |-
  12955. PoolPlacements control which Pools are associated with a particular RGW bucket.
  12956. Once PoolPlacements are defined, RGW client will be able to associate pool
  12957. with ObjectStore bucket by providing "<LocationConstraint>" during s3 bucket creation
  12958. or "X-Storage-Policy" header during swift container creation.
  12959. See: https://docs.ceph.com/en/latest/radosgw/placement/#placement-targets
  12960. PoolPlacement with name: "default" will be used as a default pool if no option
  12961. is provided during bucket creation.
  12962. If default placement is not provided, spec.sharedPools.dataPoolName and spec.sharedPools.MetadataPoolName will be used as default pools.
  12963. If spec.sharedPools are also empty, then RGW pools (spec.dataPool and spec.metadataPool) will be used as defaults.
  12964. items:
  12965. properties:
  12966. dataNonECPoolName:
  12967. description: |-
  12968. The data pool used to store ObjectStore data that cannot use erasure coding (ex: multi-part uploads).
  12969. If dataPoolName is not erasure coded, then there is no need for dataNonECPoolName.
  12970. type: string
  12971. dataPoolName:
  12972. description: The data pool used to store ObjectStore objects data.
  12973. minLength: 1
  12974. type: string
  12975. default:
  12976. description: |-
  12977. Sets given placement as default. Only one placement in the list can be marked as default.
  12978. Default is false.
  12979. type: boolean
  12980. metadataPoolName:
  12981. description: The metadata pool used to store ObjectStore bucket index.
  12982. minLength: 1
  12983. type: string
  12984. name:
  12985. description: Pool placement name. Name can be arbitrary. Placement with name "default" will be used as default.
  12986. minLength: 1
  12987. pattern: ^[a-zA-Z0-9._/-]+$
  12988. type: string
  12989. storageClasses:
  12990. description: |-
  12991. StorageClasses can be selected by user to override dataPoolName during object creation.
  12992. Each placement has default STANDARD StorageClass pointing to dataPoolName.
  12993. This list allows defining additional StorageClasses on top of default STANDARD storage class.
  12994. items:
  12995. properties:
  12996. dataPoolName:
  12997. description: DataPoolName is the data pool used to store ObjectStore objects data.
  12998. minLength: 1
  12999. type: string
  13000. name:
  13001. description: |-
  13002. Name is the StorageClass name. Ceph allows arbitrary name for StorageClasses,
  13003. however most clients/libs insist on AWS names so it is recommended to use
  13004. one of the valid x-amz-storage-class values for better compatibility:
  13005. REDUCED_REDUNDANCY | STANDARD_IA | ONEZONE_IA | INTELLIGENT_TIERING | GLACIER | DEEP_ARCHIVE | OUTPOSTS | GLACIER_IR | SNOW | EXPRESS_ONEZONE
  13006. See AWS docs: https://aws.amazon.com/de/s3/storage-classes/
  13007. minLength: 1
  13008. pattern: ^[a-zA-Z0-9._/-]+$
  13009. type: string
  13010. required:
  13011. - dataPoolName
  13012. - name
  13013. type: object
  13014. type: array
  13015. required:
  13016. - dataPoolName
  13017. - metadataPoolName
  13018. - name
  13019. type: object
  13020. type: array
  13021. preserveRadosNamespaceDataOnDelete:
  13022. description: Whether the RADOS namespaces should be preserved on deletion of the object store
  13023. type: boolean
  13024. type: object
  13025. zone:
  13026. description: The multisite info
  13027. nullable: true
  13028. properties:
  13029. name:
  13030. description: CephObjectStoreZone name this CephObjectStore is part of
  13031. type: string
  13032. required:
  13033. - name
  13034. type: object
  13035. type: object
  13036. status:
  13037. description: ObjectStoreStatus represents the status of a Ceph Object Store resource
  13038. properties:
  13039. conditions:
  13040. items:
  13041. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  13042. properties:
  13043. lastHeartbeatTime:
  13044. format: date-time
  13045. type: string
  13046. lastTransitionTime:
  13047. format: date-time
  13048. type: string
  13049. message:
  13050. type: string
  13051. reason:
  13052. description: ConditionReason is a reason for a condition
  13053. type: string
  13054. status:
  13055. type: string
  13056. type:
  13057. description: ConditionType represent a resource's status
  13058. type: string
  13059. type: object
  13060. type: array
  13061. endpoints:
  13062. properties:
  13063. insecure:
  13064. items:
  13065. type: string
  13066. nullable: true
  13067. type: array
  13068. secure:
  13069. items:
  13070. type: string
  13071. nullable: true
  13072. type: array
  13073. type: object
  13074. info:
  13075. additionalProperties:
  13076. type: string
  13077. nullable: true
  13078. type: object
  13079. message:
  13080. type: string
  13081. observedGeneration:
  13082. description: ObservedGeneration is the latest generation observed by the controller.
  13083. format: int64
  13084. type: integer
  13085. phase:
  13086. description: ConditionType represent a resource's status
  13087. type: string
  13088. type: object
  13089. x-kubernetes-preserve-unknown-fields: true
  13090. required:
  13091. - metadata
  13092. - spec
  13093. type: object
  13094. served: true
  13095. storage: true
  13096. subresources:
  13097. status: {}
  13098. ---
  13099. apiVersion: apiextensions.k8s.io/v1
  13100. kind: CustomResourceDefinition
  13101. metadata:
  13102. annotations:
  13103. controller-gen.kubebuilder.io/version: v0.16.1
  13104. name: cephobjectstoreusers.ceph.rook.io
  13105. spec:
  13106. group: ceph.rook.io
  13107. names:
  13108. kind: CephObjectStoreUser
  13109. listKind: CephObjectStoreUserList
  13110. plural: cephobjectstoreusers
  13111. shortNames:
  13112. - rcou
  13113. - objectuser
  13114. - cephosu
  13115. singular: cephobjectstoreuser
  13116. scope: Namespaced
  13117. versions:
  13118. - additionalPrinterColumns:
  13119. - jsonPath: .status.phase
  13120. name: Phase
  13121. type: string
  13122. - jsonPath: .metadata.creationTimestamp
  13123. name: Age
  13124. type: date
  13125. name: v1
  13126. schema:
  13127. openAPIV3Schema:
  13128. description: CephObjectStoreUser represents a Ceph Object Store Gateway User
  13129. properties:
  13130. apiVersion:
  13131. description: |-
  13132. APIVersion defines the versioned schema of this representation of an object.
  13133. Servers should convert recognized schemas to the latest internal value, and
  13134. may reject unrecognized values.
  13135. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  13136. type: string
  13137. kind:
  13138. description: |-
  13139. Kind is a string value representing the REST resource this object represents.
  13140. Servers may infer this from the endpoint the client submits requests to.
  13141. Cannot be updated.
  13142. In CamelCase.
  13143. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  13144. type: string
  13145. metadata:
  13146. type: object
  13147. spec:
  13148. description: ObjectStoreUserSpec represent the spec of an Objectstoreuser
  13149. properties:
  13150. capabilities:
  13151. description: Additional admin-level capabilities for the Ceph object store user
  13152. nullable: true
  13153. properties:
  13154. amz-cache:
  13155. description: Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/latest/radosgw/rgw-cache/#cache-api
  13156. enum:
  13157. - '*'
  13158. - read
  13159. - write
  13160. - read, write
  13161. type: string
  13162. bilog:
  13163. description: Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13164. enum:
  13165. - '*'
  13166. - read
  13167. - write
  13168. - read, write
  13169. type: string
  13170. bucket:
  13171. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13172. enum:
  13173. - '*'
  13174. - read
  13175. - write
  13176. - read, write
  13177. type: string
  13178. buckets:
  13179. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13180. enum:
  13181. - '*'
  13182. - read
  13183. - write
  13184. - read, write
  13185. type: string
  13186. datalog:
  13187. description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13188. enum:
  13189. - '*'
  13190. - read
  13191. - write
  13192. - read, write
  13193. type: string
  13194. info:
  13195. description: Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13196. enum:
  13197. - '*'
  13198. - read
  13199. - write
  13200. - read, write
  13201. type: string
  13202. mdlog:
  13203. description: Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13204. enum:
  13205. - '*'
  13206. - read
  13207. - write
  13208. - read, write
  13209. type: string
  13210. metadata:
  13211. description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13212. enum:
  13213. - '*'
  13214. - read
  13215. - write
  13216. - read, write
  13217. type: string
  13218. oidc-provider:
  13219. description: Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13220. enum:
  13221. - '*'
  13222. - read
  13223. - write
  13224. - read, write
  13225. type: string
  13226. ratelimit:
  13227. 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
  13228. enum:
  13229. - '*'
  13230. - read
  13231. - write
  13232. - read, write
  13233. type: string
  13234. roles:
  13235. description: Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13236. enum:
  13237. - '*'
  13238. - read
  13239. - write
  13240. - read, write
  13241. type: string
  13242. usage:
  13243. description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13244. enum:
  13245. - '*'
  13246. - read
  13247. - write
  13248. - read, write
  13249. type: string
  13250. user:
  13251. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13252. enum:
  13253. - '*'
  13254. - read
  13255. - write
  13256. - read, write
  13257. type: string
  13258. user-policy:
  13259. description: Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13260. enum:
  13261. - '*'
  13262. - read
  13263. - write
  13264. - read, write
  13265. type: string
  13266. users:
  13267. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13268. enum:
  13269. - '*'
  13270. - read
  13271. - write
  13272. - read, write
  13273. type: string
  13274. zone:
  13275. description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  13276. enum:
  13277. - '*'
  13278. - read
  13279. - write
  13280. - read, write
  13281. type: string
  13282. type: object
  13283. clusterNamespace:
  13284. description: The namespace where the parent CephCluster and CephObjectStore are found
  13285. type: string
  13286. displayName:
  13287. description: The display name for the ceph users
  13288. type: string
  13289. keys:
  13290. description: |-
  13291. Allows specifying credentials for the user. If not provided, the operator
  13292. will generate them.
  13293. items:
  13294. description: |-
  13295. ObjectUserKey defines a set of rgw user access credentials to be retrieved
  13296. from secret resources.
  13297. properties:
  13298. accessKeyRef:
  13299. description: Secret key selector for the access_key (commonly referred to as AWS_ACCESS_KEY_ID).
  13300. properties:
  13301. key:
  13302. description: The key of the secret to select from. Must be a valid secret key.
  13303. type: string
  13304. name:
  13305. default: ""
  13306. description: |-
  13307. Name of the referent.
  13308. This field is effectively required, but due to backwards compatibility is
  13309. allowed to be empty. Instances of this type with an empty value here are
  13310. almost certainly wrong.
  13311. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13312. type: string
  13313. optional:
  13314. description: Specify whether the Secret or its key must be defined
  13315. type: boolean
  13316. required:
  13317. - key
  13318. type: object
  13319. x-kubernetes-map-type: atomic
  13320. secretKeyRef:
  13321. description: Secret key selector for the secret_key (commonly referred to as AWS_SECRET_ACCESS_KEY).
  13322. properties:
  13323. key:
  13324. description: The key of the secret to select from. Must be a valid secret key.
  13325. type: string
  13326. name:
  13327. default: ""
  13328. description: |-
  13329. Name of the referent.
  13330. This field is effectively required, but due to backwards compatibility is
  13331. allowed to be empty. Instances of this type with an empty value here are
  13332. almost certainly wrong.
  13333. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13334. type: string
  13335. optional:
  13336. description: Specify whether the Secret or its key must be defined
  13337. type: boolean
  13338. required:
  13339. - key
  13340. type: object
  13341. x-kubernetes-map-type: atomic
  13342. type: object
  13343. type: array
  13344. quotas:
  13345. 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
  13346. nullable: true
  13347. properties:
  13348. maxBuckets:
  13349. description: Maximum bucket limit for the ceph user
  13350. nullable: true
  13351. type: integer
  13352. maxObjects:
  13353. description: Maximum number of objects across all the user's buckets
  13354. format: int64
  13355. nullable: true
  13356. type: integer
  13357. maxSize:
  13358. anyOf:
  13359. - type: integer
  13360. - type: string
  13361. description: |-
  13362. Maximum size limit of all objects across all the user's buckets
  13363. See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
  13364. nullable: true
  13365. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13366. x-kubernetes-int-or-string: true
  13367. type: object
  13368. store:
  13369. description: The store the user will be created in
  13370. type: string
  13371. type: object
  13372. status:
  13373. description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
  13374. properties:
  13375. info:
  13376. additionalProperties:
  13377. type: string
  13378. nullable: true
  13379. type: object
  13380. keys:
  13381. items:
  13382. properties:
  13383. name:
  13384. description: name is unique within a namespace to reference a secret resource.
  13385. type: string
  13386. namespace:
  13387. description: namespace defines the space within which the secret name must be unique.
  13388. type: string
  13389. resourceVersion:
  13390. type: string
  13391. uid:
  13392. description: |-
  13393. UID is a type that holds unique ID values, including UUIDs. Because we
  13394. don't ONLY use UUIDs, this is an alias to string. Being a type captures
  13395. intent and helps make sure that UIDs and names do not get conflated.
  13396. type: string
  13397. type: object
  13398. x-kubernetes-map-type: atomic
  13399. nullable: true
  13400. type: array
  13401. observedGeneration:
  13402. description: ObservedGeneration is the latest generation observed by the controller.
  13403. format: int64
  13404. type: integer
  13405. phase:
  13406. type: string
  13407. type: object
  13408. x-kubernetes-preserve-unknown-fields: true
  13409. required:
  13410. - metadata
  13411. - spec
  13412. type: object
  13413. served: true
  13414. storage: true
  13415. subresources:
  13416. status: {}
  13417. ---
  13418. apiVersion: apiextensions.k8s.io/v1
  13419. kind: CustomResourceDefinition
  13420. metadata:
  13421. annotations:
  13422. controller-gen.kubebuilder.io/version: v0.16.1
  13423. name: cephobjectzonegroups.ceph.rook.io
  13424. spec:
  13425. group: ceph.rook.io
  13426. names:
  13427. kind: CephObjectZoneGroup
  13428. listKind: CephObjectZoneGroupList
  13429. plural: cephobjectzonegroups
  13430. shortNames:
  13431. - cephozg
  13432. singular: cephobjectzonegroup
  13433. scope: Namespaced
  13434. versions:
  13435. - additionalPrinterColumns:
  13436. - jsonPath: .status.phase
  13437. name: Phase
  13438. type: string
  13439. - jsonPath: .metadata.creationTimestamp
  13440. name: Age
  13441. type: date
  13442. name: v1
  13443. schema:
  13444. openAPIV3Schema:
  13445. description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
  13446. properties:
  13447. apiVersion:
  13448. description: |-
  13449. APIVersion defines the versioned schema of this representation of an object.
  13450. Servers should convert recognized schemas to the latest internal value, and
  13451. may reject unrecognized values.
  13452. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  13453. type: string
  13454. kind:
  13455. description: |-
  13456. Kind is a string value representing the REST resource this object represents.
  13457. Servers may infer this from the endpoint the client submits requests to.
  13458. Cannot be updated.
  13459. In CamelCase.
  13460. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  13461. type: string
  13462. metadata:
  13463. type: object
  13464. spec:
  13465. description: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
  13466. properties:
  13467. realm:
  13468. description: The display name for the ceph users
  13469. type: string
  13470. required:
  13471. - realm
  13472. type: object
  13473. status:
  13474. description: Status represents the status of an object
  13475. properties:
  13476. conditions:
  13477. items:
  13478. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  13479. properties:
  13480. lastHeartbeatTime:
  13481. format: date-time
  13482. type: string
  13483. lastTransitionTime:
  13484. format: date-time
  13485. type: string
  13486. message:
  13487. type: string
  13488. reason:
  13489. description: ConditionReason is a reason for a condition
  13490. type: string
  13491. status:
  13492. type: string
  13493. type:
  13494. description: ConditionType represent a resource's status
  13495. type: string
  13496. type: object
  13497. type: array
  13498. observedGeneration:
  13499. description: ObservedGeneration is the latest generation observed by the controller.
  13500. format: int64
  13501. type: integer
  13502. phase:
  13503. type: string
  13504. type: object
  13505. x-kubernetes-preserve-unknown-fields: true
  13506. required:
  13507. - metadata
  13508. - spec
  13509. type: object
  13510. served: true
  13511. storage: true
  13512. subresources:
  13513. status: {}
  13514. ---
  13515. apiVersion: apiextensions.k8s.io/v1
  13516. kind: CustomResourceDefinition
  13517. metadata:
  13518. annotations:
  13519. controller-gen.kubebuilder.io/version: v0.16.1
  13520. name: cephobjectzones.ceph.rook.io
  13521. spec:
  13522. group: ceph.rook.io
  13523. names:
  13524. kind: CephObjectZone
  13525. listKind: CephObjectZoneList
  13526. plural: cephobjectzones
  13527. shortNames:
  13528. - cephoz
  13529. singular: cephobjectzone
  13530. scope: Namespaced
  13531. versions:
  13532. - additionalPrinterColumns:
  13533. - jsonPath: .status.phase
  13534. name: Phase
  13535. type: string
  13536. - jsonPath: .metadata.creationTimestamp
  13537. name: Age
  13538. type: date
  13539. name: v1
  13540. schema:
  13541. openAPIV3Schema:
  13542. description: CephObjectZone represents a Ceph Object Store Gateway Zone
  13543. properties:
  13544. apiVersion:
  13545. description: |-
  13546. APIVersion defines the versioned schema of this representation of an object.
  13547. Servers should convert recognized schemas to the latest internal value, and
  13548. may reject unrecognized values.
  13549. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  13550. type: string
  13551. kind:
  13552. description: |-
  13553. Kind is a string value representing the REST resource this object represents.
  13554. Servers may infer this from the endpoint the client submits requests to.
  13555. Cannot be updated.
  13556. In CamelCase.
  13557. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  13558. type: string
  13559. metadata:
  13560. type: object
  13561. spec:
  13562. description: ObjectZoneSpec represent the spec of an ObjectZone
  13563. properties:
  13564. customEndpoints:
  13565. description: |-
  13566. If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service
  13567. endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may
  13568. include the port in the definition. For example: "https://my-object-store.my-domain.net:443".
  13569. In many cases, you should set this to the endpoint of the ingress resource that makes the
  13570. CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters.
  13571. The list can have one or more endpoints pointing to different RGW servers in the zone.
  13572. If a CephObjectStore endpoint is omitted from this list, that object store's gateways will
  13573. not receive multisite replication data
  13574. (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic).
  13575. items:
  13576. type: string
  13577. nullable: true
  13578. type: array
  13579. dataPool:
  13580. description: The data pool settings
  13581. nullable: true
  13582. properties:
  13583. application:
  13584. description: The application name to set on the pool. Only expected to be set for rgw pools.
  13585. type: string
  13586. compressionMode:
  13587. description: |-
  13588. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  13589. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  13590. Do NOT set a default value for kubebuilder as this will override the Parameters
  13591. enum:
  13592. - none
  13593. - passive
  13594. - aggressive
  13595. - force
  13596. - ""
  13597. nullable: true
  13598. type: string
  13599. crushRoot:
  13600. description: The root of the crush hierarchy utilized by the pool
  13601. nullable: true
  13602. type: string
  13603. deviceClass:
  13604. description: The device class the OSD should set to for use in the pool
  13605. nullable: true
  13606. type: string
  13607. enableCrushUpdates:
  13608. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  13609. type: boolean
  13610. enableRBDStats:
  13611. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  13612. type: boolean
  13613. erasureCoded:
  13614. description: The erasure code settings
  13615. properties:
  13616. algorithm:
  13617. description: The algorithm for erasure coding
  13618. type: string
  13619. codingChunks:
  13620. description: |-
  13621. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  13622. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  13623. minimum: 0
  13624. type: integer
  13625. dataChunks:
  13626. description: |-
  13627. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  13628. The number of chunks required to recover an object when any single OSD is lost is the same
  13629. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  13630. minimum: 0
  13631. type: integer
  13632. required:
  13633. - codingChunks
  13634. - dataChunks
  13635. type: object
  13636. failureDomain:
  13637. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  13638. type: string
  13639. mirroring:
  13640. description: The mirroring settings
  13641. properties:
  13642. enabled:
  13643. description: Enabled whether this pool is mirrored or not
  13644. type: boolean
  13645. mode:
  13646. description: 'Mode is the mirroring mode: pool, image or init-only.'
  13647. enum:
  13648. - pool
  13649. - image
  13650. - init-only
  13651. type: string
  13652. peers:
  13653. description: Peers represents the peers spec
  13654. nullable: true
  13655. properties:
  13656. secretNames:
  13657. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  13658. items:
  13659. type: string
  13660. type: array
  13661. type: object
  13662. snapshotSchedules:
  13663. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  13664. items:
  13665. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  13666. properties:
  13667. interval:
  13668. description: Interval represent the periodicity of the snapshot.
  13669. type: string
  13670. path:
  13671. description: Path is the path to snapshot, only valid for CephFS
  13672. type: string
  13673. startTime:
  13674. description: StartTime indicates when to start the snapshot
  13675. type: string
  13676. type: object
  13677. type: array
  13678. type: object
  13679. parameters:
  13680. additionalProperties:
  13681. type: string
  13682. description: Parameters is a list of properties to enable on a given pool
  13683. nullable: true
  13684. type: object
  13685. x-kubernetes-preserve-unknown-fields: true
  13686. quotas:
  13687. description: The quota settings
  13688. nullable: true
  13689. properties:
  13690. maxBytes:
  13691. description: |-
  13692. MaxBytes represents the quota in bytes
  13693. Deprecated in favor of MaxSize
  13694. format: int64
  13695. type: integer
  13696. maxObjects:
  13697. description: MaxObjects represents the quota in objects
  13698. format: int64
  13699. type: integer
  13700. maxSize:
  13701. description: MaxSize represents the quota in bytes as a string
  13702. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  13703. type: string
  13704. type: object
  13705. replicated:
  13706. description: The replication settings
  13707. properties:
  13708. hybridStorage:
  13709. description: HybridStorage represents hybrid storage tier settings
  13710. nullable: true
  13711. properties:
  13712. primaryDeviceClass:
  13713. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  13714. minLength: 1
  13715. type: string
  13716. secondaryDeviceClass:
  13717. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  13718. minLength: 1
  13719. type: string
  13720. required:
  13721. - primaryDeviceClass
  13722. - secondaryDeviceClass
  13723. type: object
  13724. replicasPerFailureDomain:
  13725. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  13726. minimum: 1
  13727. type: integer
  13728. requireSafeReplicaSize:
  13729. description: RequireSafeReplicaSize if false allows you to set replica 1
  13730. type: boolean
  13731. size:
  13732. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  13733. minimum: 0
  13734. type: integer
  13735. subFailureDomain:
  13736. description: SubFailureDomain the name of the sub-failure domain
  13737. type: string
  13738. targetSizeRatio:
  13739. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  13740. minimum: 0
  13741. type: number
  13742. required:
  13743. - size
  13744. type: object
  13745. statusCheck:
  13746. description: The mirroring statusCheck
  13747. properties:
  13748. mirror:
  13749. description: HealthCheckSpec represents the health check of an object store bucket
  13750. nullable: true
  13751. properties:
  13752. disabled:
  13753. type: boolean
  13754. interval:
  13755. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  13756. type: string
  13757. timeout:
  13758. type: string
  13759. type: object
  13760. type: object
  13761. x-kubernetes-preserve-unknown-fields: true
  13762. type: object
  13763. metadataPool:
  13764. description: The metadata pool settings
  13765. nullable: true
  13766. properties:
  13767. application:
  13768. description: The application name to set on the pool. Only expected to be set for rgw pools.
  13769. type: string
  13770. compressionMode:
  13771. description: |-
  13772. DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force"
  13773. The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force)
  13774. Do NOT set a default value for kubebuilder as this will override the Parameters
  13775. enum:
  13776. - none
  13777. - passive
  13778. - aggressive
  13779. - force
  13780. - ""
  13781. nullable: true
  13782. type: string
  13783. crushRoot:
  13784. description: The root of the crush hierarchy utilized by the pool
  13785. nullable: true
  13786. type: string
  13787. deviceClass:
  13788. description: The device class the OSD should set to for use in the pool
  13789. nullable: true
  13790. type: string
  13791. enableCrushUpdates:
  13792. description: Allow rook operator to change the pool CRUSH tunables once the pool is created
  13793. type: boolean
  13794. enableRBDStats:
  13795. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  13796. type: boolean
  13797. erasureCoded:
  13798. description: The erasure code settings
  13799. properties:
  13800. algorithm:
  13801. description: The algorithm for erasure coding
  13802. type: string
  13803. codingChunks:
  13804. description: |-
  13805. Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  13806. This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  13807. minimum: 0
  13808. type: integer
  13809. dataChunks:
  13810. description: |-
  13811. Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type).
  13812. The number of chunks required to recover an object when any single OSD is lost is the same
  13813. as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  13814. minimum: 0
  13815. type: integer
  13816. required:
  13817. - codingChunks
  13818. - dataChunks
  13819. type: object
  13820. failureDomain:
  13821. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  13822. type: string
  13823. mirroring:
  13824. description: The mirroring settings
  13825. properties:
  13826. enabled:
  13827. description: Enabled whether this pool is mirrored or not
  13828. type: boolean
  13829. mode:
  13830. description: 'Mode is the mirroring mode: pool, image or init-only.'
  13831. enum:
  13832. - pool
  13833. - image
  13834. - init-only
  13835. type: string
  13836. peers:
  13837. description: Peers represents the peers spec
  13838. nullable: true
  13839. properties:
  13840. secretNames:
  13841. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  13842. items:
  13843. type: string
  13844. type: array
  13845. type: object
  13846. snapshotSchedules:
  13847. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  13848. items:
  13849. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  13850. properties:
  13851. interval:
  13852. description: Interval represent the periodicity of the snapshot.
  13853. type: string
  13854. path:
  13855. description: Path is the path to snapshot, only valid for CephFS
  13856. type: string
  13857. startTime:
  13858. description: StartTime indicates when to start the snapshot
  13859. type: string
  13860. type: object
  13861. type: array
  13862. type: object
  13863. parameters:
  13864. additionalProperties:
  13865. type: string
  13866. description: Parameters is a list of properties to enable on a given pool
  13867. nullable: true
  13868. type: object
  13869. x-kubernetes-preserve-unknown-fields: true
  13870. quotas:
  13871. description: The quota settings
  13872. nullable: true
  13873. properties:
  13874. maxBytes:
  13875. description: |-
  13876. MaxBytes represents the quota in bytes
  13877. Deprecated in favor of MaxSize
  13878. format: int64
  13879. type: integer
  13880. maxObjects:
  13881. description: MaxObjects represents the quota in objects
  13882. format: int64
  13883. type: integer
  13884. maxSize:
  13885. description: MaxSize represents the quota in bytes as a string
  13886. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  13887. type: string
  13888. type: object
  13889. replicated:
  13890. description: The replication settings
  13891. properties:
  13892. hybridStorage:
  13893. description: HybridStorage represents hybrid storage tier settings
  13894. nullable: true
  13895. properties:
  13896. primaryDeviceClass:
  13897. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  13898. minLength: 1
  13899. type: string
  13900. secondaryDeviceClass:
  13901. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  13902. minLength: 1
  13903. type: string
  13904. required:
  13905. - primaryDeviceClass
  13906. - secondaryDeviceClass
  13907. type: object
  13908. replicasPerFailureDomain:
  13909. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  13910. minimum: 1
  13911. type: integer
  13912. requireSafeReplicaSize:
  13913. description: RequireSafeReplicaSize if false allows you to set replica 1
  13914. type: boolean
  13915. size:
  13916. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  13917. minimum: 0
  13918. type: integer
  13919. subFailureDomain:
  13920. description: SubFailureDomain the name of the sub-failure domain
  13921. type: string
  13922. targetSizeRatio:
  13923. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  13924. minimum: 0
  13925. type: number
  13926. required:
  13927. - size
  13928. type: object
  13929. statusCheck:
  13930. description: The mirroring statusCheck
  13931. properties:
  13932. mirror:
  13933. description: HealthCheckSpec represents the health check of an object store bucket
  13934. nullable: true
  13935. properties:
  13936. disabled:
  13937. type: boolean
  13938. interval:
  13939. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  13940. type: string
  13941. timeout:
  13942. type: string
  13943. type: object
  13944. type: object
  13945. x-kubernetes-preserve-unknown-fields: true
  13946. type: object
  13947. preservePoolsOnDelete:
  13948. default: true
  13949. description: Preserve pools on object zone deletion
  13950. type: boolean
  13951. sharedPools:
  13952. description: The pool information when configuring RADOS namespaces in existing pools.
  13953. nullable: true
  13954. properties:
  13955. dataPoolName:
  13956. description: The data pool used for creating RADOS namespaces in the object store
  13957. type: string
  13958. x-kubernetes-validations:
  13959. - message: object store shared data pool is immutable
  13960. rule: self == oldSelf
  13961. metadataPoolName:
  13962. description: The metadata pool used for creating RADOS namespaces in the object store
  13963. type: string
  13964. x-kubernetes-validations:
  13965. - message: object store shared metadata pool is immutable
  13966. rule: self == oldSelf
  13967. poolPlacements:
  13968. description: |-
  13969. PoolPlacements control which Pools are associated with a particular RGW bucket.
  13970. Once PoolPlacements are defined, RGW client will be able to associate pool
  13971. with ObjectStore bucket by providing "<LocationConstraint>" during s3 bucket creation
  13972. or "X-Storage-Policy" header during swift container creation.
  13973. See: https://docs.ceph.com/en/latest/radosgw/placement/#placement-targets
  13974. PoolPlacement with name: "default" will be used as a default pool if no option
  13975. is provided during bucket creation.
  13976. If default placement is not provided, spec.sharedPools.dataPoolName and spec.sharedPools.MetadataPoolName will be used as default pools.
  13977. If spec.sharedPools are also empty, then RGW pools (spec.dataPool and spec.metadataPool) will be used as defaults.
  13978. items:
  13979. properties:
  13980. dataNonECPoolName:
  13981. description: |-
  13982. The data pool used to store ObjectStore data that cannot use erasure coding (ex: multi-part uploads).
  13983. If dataPoolName is not erasure coded, then there is no need for dataNonECPoolName.
  13984. type: string
  13985. dataPoolName:
  13986. description: The data pool used to store ObjectStore objects data.
  13987. minLength: 1
  13988. type: string
  13989. default:
  13990. description: |-
  13991. Sets given placement as default. Only one placement in the list can be marked as default.
  13992. Default is false.
  13993. type: boolean
  13994. metadataPoolName:
  13995. description: The metadata pool used to store ObjectStore bucket index.
  13996. minLength: 1
  13997. type: string
  13998. name:
  13999. description: Pool placement name. Name can be arbitrary. Placement with name "default" will be used as default.
  14000. minLength: 1
  14001. pattern: ^[a-zA-Z0-9._/-]+$
  14002. type: string
  14003. storageClasses:
  14004. description: |-
  14005. StorageClasses can be selected by user to override dataPoolName during object creation.
  14006. Each placement has default STANDARD StorageClass pointing to dataPoolName.
  14007. This list allows defining additional StorageClasses on top of default STANDARD storage class.
  14008. items:
  14009. properties:
  14010. dataPoolName:
  14011. description: DataPoolName is the data pool used to store ObjectStore objects data.
  14012. minLength: 1
  14013. type: string
  14014. name:
  14015. description: |-
  14016. Name is the StorageClass name. Ceph allows arbitrary name for StorageClasses,
  14017. however most clients/libs insist on AWS names so it is recommended to use
  14018. one of the valid x-amz-storage-class values for better compatibility:
  14019. REDUCED_REDUNDANCY | STANDARD_IA | ONEZONE_IA | INTELLIGENT_TIERING | GLACIER | DEEP_ARCHIVE | OUTPOSTS | GLACIER_IR | SNOW | EXPRESS_ONEZONE
  14020. See AWS docs: https://aws.amazon.com/de/s3/storage-classes/
  14021. minLength: 1
  14022. pattern: ^[a-zA-Z0-9._/-]+$
  14023. type: string
  14024. required:
  14025. - dataPoolName
  14026. - name
  14027. type: object
  14028. type: array
  14029. required:
  14030. - dataPoolName
  14031. - metadataPoolName
  14032. - name
  14033. type: object
  14034. type: array
  14035. preserveRadosNamespaceDataOnDelete:
  14036. description: Whether the RADOS namespaces should be preserved on deletion of the object store
  14037. type: boolean
  14038. type: object
  14039. zoneGroup:
  14040. description: The display name for the ceph users
  14041. type: string
  14042. required:
  14043. - zoneGroup
  14044. type: object
  14045. status:
  14046. description: Status represents the status of an object
  14047. properties:
  14048. conditions:
  14049. items:
  14050. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  14051. properties:
  14052. lastHeartbeatTime:
  14053. format: date-time
  14054. type: string
  14055. lastTransitionTime:
  14056. format: date-time
  14057. type: string
  14058. message:
  14059. type: string
  14060. reason:
  14061. description: ConditionReason is a reason for a condition
  14062. type: string
  14063. status:
  14064. type: string
  14065. type:
  14066. description: ConditionType represent a resource's status
  14067. type: string
  14068. type: object
  14069. type: array
  14070. observedGeneration:
  14071. description: ObservedGeneration is the latest generation observed by the controller.
  14072. format: int64
  14073. type: integer
  14074. phase:
  14075. type: string
  14076. type: object
  14077. x-kubernetes-preserve-unknown-fields: true
  14078. required:
  14079. - metadata
  14080. - spec
  14081. type: object
  14082. served: true
  14083. storage: true
  14084. subresources:
  14085. status: {}
  14086. ---
  14087. apiVersion: apiextensions.k8s.io/v1
  14088. kind: CustomResourceDefinition
  14089. metadata:
  14090. annotations:
  14091. controller-gen.kubebuilder.io/version: v0.16.1
  14092. name: cephrbdmirrors.ceph.rook.io
  14093. spec:
  14094. group: ceph.rook.io
  14095. names:
  14096. kind: CephRBDMirror
  14097. listKind: CephRBDMirrorList
  14098. plural: cephrbdmirrors
  14099. shortNames:
  14100. - cephrbdm
  14101. singular: cephrbdmirror
  14102. scope: Namespaced
  14103. versions:
  14104. - additionalPrinterColumns:
  14105. - jsonPath: .status.phase
  14106. name: Phase
  14107. type: string
  14108. - jsonPath: .metadata.creationTimestamp
  14109. name: Age
  14110. type: date
  14111. name: v1
  14112. schema:
  14113. openAPIV3Schema:
  14114. description: CephRBDMirror represents a Ceph RBD Mirror
  14115. properties:
  14116. apiVersion:
  14117. description: |-
  14118. APIVersion defines the versioned schema of this representation of an object.
  14119. Servers should convert recognized schemas to the latest internal value, and
  14120. may reject unrecognized values.
  14121. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  14122. type: string
  14123. kind:
  14124. description: |-
  14125. Kind is a string value representing the REST resource this object represents.
  14126. Servers may infer this from the endpoint the client submits requests to.
  14127. Cannot be updated.
  14128. In CamelCase.
  14129. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  14130. type: string
  14131. metadata:
  14132. type: object
  14133. spec:
  14134. description: RBDMirroringSpec represents the specification of an RBD mirror daemon
  14135. properties:
  14136. annotations:
  14137. additionalProperties:
  14138. type: string
  14139. description: The annotations-related configuration to add/set on each Pod related object.
  14140. nullable: true
  14141. type: object
  14142. x-kubernetes-preserve-unknown-fields: true
  14143. count:
  14144. description: Count represents the number of rbd mirror instance to run
  14145. minimum: 1
  14146. type: integer
  14147. labels:
  14148. additionalProperties:
  14149. type: string
  14150. description: The labels-related configuration to add/set on each Pod related object.
  14151. nullable: true
  14152. type: object
  14153. x-kubernetes-preserve-unknown-fields: true
  14154. peers:
  14155. description: Peers represents the peers spec
  14156. nullable: true
  14157. properties:
  14158. secretNames:
  14159. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  14160. items:
  14161. type: string
  14162. type: array
  14163. type: object
  14164. placement:
  14165. nullable: true
  14166. properties:
  14167. nodeAffinity:
  14168. properties:
  14169. preferredDuringSchedulingIgnoredDuringExecution:
  14170. items:
  14171. properties:
  14172. preference:
  14173. properties:
  14174. matchExpressions:
  14175. items:
  14176. properties:
  14177. key:
  14178. type: string
  14179. operator:
  14180. type: string
  14181. values:
  14182. items:
  14183. type: string
  14184. type: array
  14185. x-kubernetes-list-type: atomic
  14186. required:
  14187. - key
  14188. - operator
  14189. type: object
  14190. type: array
  14191. x-kubernetes-list-type: atomic
  14192. matchFields:
  14193. items:
  14194. properties:
  14195. key:
  14196. type: string
  14197. operator:
  14198. type: string
  14199. values:
  14200. items:
  14201. type: string
  14202. type: array
  14203. x-kubernetes-list-type: atomic
  14204. required:
  14205. - key
  14206. - operator
  14207. type: object
  14208. type: array
  14209. x-kubernetes-list-type: atomic
  14210. type: object
  14211. x-kubernetes-map-type: atomic
  14212. weight:
  14213. format: int32
  14214. type: integer
  14215. required:
  14216. - preference
  14217. - weight
  14218. type: object
  14219. type: array
  14220. x-kubernetes-list-type: atomic
  14221. requiredDuringSchedulingIgnoredDuringExecution:
  14222. properties:
  14223. nodeSelectorTerms:
  14224. items:
  14225. properties:
  14226. matchExpressions:
  14227. items:
  14228. properties:
  14229. key:
  14230. type: string
  14231. operator:
  14232. type: string
  14233. values:
  14234. items:
  14235. type: string
  14236. type: array
  14237. x-kubernetes-list-type: atomic
  14238. required:
  14239. - key
  14240. - operator
  14241. type: object
  14242. type: array
  14243. x-kubernetes-list-type: atomic
  14244. matchFields:
  14245. items:
  14246. properties:
  14247. key:
  14248. type: string
  14249. operator:
  14250. type: string
  14251. values:
  14252. items:
  14253. type: string
  14254. type: array
  14255. x-kubernetes-list-type: atomic
  14256. required:
  14257. - key
  14258. - operator
  14259. type: object
  14260. type: array
  14261. x-kubernetes-list-type: atomic
  14262. type: object
  14263. x-kubernetes-map-type: atomic
  14264. type: array
  14265. x-kubernetes-list-type: atomic
  14266. required:
  14267. - nodeSelectorTerms
  14268. type: object
  14269. x-kubernetes-map-type: atomic
  14270. type: object
  14271. podAffinity:
  14272. properties:
  14273. preferredDuringSchedulingIgnoredDuringExecution:
  14274. items:
  14275. properties:
  14276. podAffinityTerm:
  14277. properties:
  14278. labelSelector:
  14279. properties:
  14280. matchExpressions:
  14281. items:
  14282. properties:
  14283. key:
  14284. type: string
  14285. operator:
  14286. type: string
  14287. values:
  14288. items:
  14289. type: string
  14290. type: array
  14291. x-kubernetes-list-type: atomic
  14292. required:
  14293. - key
  14294. - operator
  14295. type: object
  14296. type: array
  14297. x-kubernetes-list-type: atomic
  14298. matchLabels:
  14299. additionalProperties:
  14300. type: string
  14301. type: object
  14302. type: object
  14303. x-kubernetes-map-type: atomic
  14304. matchLabelKeys:
  14305. items:
  14306. type: string
  14307. type: array
  14308. x-kubernetes-list-type: atomic
  14309. mismatchLabelKeys:
  14310. items:
  14311. type: string
  14312. type: array
  14313. x-kubernetes-list-type: atomic
  14314. namespaceSelector:
  14315. properties:
  14316. matchExpressions:
  14317. items:
  14318. properties:
  14319. key:
  14320. type: string
  14321. operator:
  14322. type: string
  14323. values:
  14324. items:
  14325. type: string
  14326. type: array
  14327. x-kubernetes-list-type: atomic
  14328. required:
  14329. - key
  14330. - operator
  14331. type: object
  14332. type: array
  14333. x-kubernetes-list-type: atomic
  14334. matchLabels:
  14335. additionalProperties:
  14336. type: string
  14337. type: object
  14338. type: object
  14339. x-kubernetes-map-type: atomic
  14340. namespaces:
  14341. items:
  14342. type: string
  14343. type: array
  14344. x-kubernetes-list-type: atomic
  14345. topologyKey:
  14346. type: string
  14347. required:
  14348. - topologyKey
  14349. type: object
  14350. weight:
  14351. format: int32
  14352. type: integer
  14353. required:
  14354. - podAffinityTerm
  14355. - weight
  14356. type: object
  14357. type: array
  14358. x-kubernetes-list-type: atomic
  14359. requiredDuringSchedulingIgnoredDuringExecution:
  14360. items:
  14361. properties:
  14362. labelSelector:
  14363. properties:
  14364. matchExpressions:
  14365. items:
  14366. properties:
  14367. key:
  14368. type: string
  14369. operator:
  14370. type: string
  14371. values:
  14372. items:
  14373. type: string
  14374. type: array
  14375. x-kubernetes-list-type: atomic
  14376. required:
  14377. - key
  14378. - operator
  14379. type: object
  14380. type: array
  14381. x-kubernetes-list-type: atomic
  14382. matchLabels:
  14383. additionalProperties:
  14384. type: string
  14385. type: object
  14386. type: object
  14387. x-kubernetes-map-type: atomic
  14388. matchLabelKeys:
  14389. items:
  14390. type: string
  14391. type: array
  14392. x-kubernetes-list-type: atomic
  14393. mismatchLabelKeys:
  14394. items:
  14395. type: string
  14396. type: array
  14397. x-kubernetes-list-type: atomic
  14398. namespaceSelector:
  14399. properties:
  14400. matchExpressions:
  14401. items:
  14402. properties:
  14403. key:
  14404. type: string
  14405. operator:
  14406. type: string
  14407. values:
  14408. items:
  14409. type: string
  14410. type: array
  14411. x-kubernetes-list-type: atomic
  14412. required:
  14413. - key
  14414. - operator
  14415. type: object
  14416. type: array
  14417. x-kubernetes-list-type: atomic
  14418. matchLabels:
  14419. additionalProperties:
  14420. type: string
  14421. type: object
  14422. type: object
  14423. x-kubernetes-map-type: atomic
  14424. namespaces:
  14425. items:
  14426. type: string
  14427. type: array
  14428. x-kubernetes-list-type: atomic
  14429. topologyKey:
  14430. type: string
  14431. required:
  14432. - topologyKey
  14433. type: object
  14434. type: array
  14435. x-kubernetes-list-type: atomic
  14436. type: object
  14437. podAntiAffinity:
  14438. properties:
  14439. preferredDuringSchedulingIgnoredDuringExecution:
  14440. items:
  14441. properties:
  14442. podAffinityTerm:
  14443. properties:
  14444. labelSelector:
  14445. properties:
  14446. matchExpressions:
  14447. items:
  14448. properties:
  14449. key:
  14450. type: string
  14451. operator:
  14452. type: string
  14453. values:
  14454. items:
  14455. type: string
  14456. type: array
  14457. x-kubernetes-list-type: atomic
  14458. required:
  14459. - key
  14460. - operator
  14461. type: object
  14462. type: array
  14463. x-kubernetes-list-type: atomic
  14464. matchLabels:
  14465. additionalProperties:
  14466. type: string
  14467. type: object
  14468. type: object
  14469. x-kubernetes-map-type: atomic
  14470. matchLabelKeys:
  14471. items:
  14472. type: string
  14473. type: array
  14474. x-kubernetes-list-type: atomic
  14475. mismatchLabelKeys:
  14476. items:
  14477. type: string
  14478. type: array
  14479. x-kubernetes-list-type: atomic
  14480. namespaceSelector:
  14481. properties:
  14482. matchExpressions:
  14483. items:
  14484. properties:
  14485. key:
  14486. type: string
  14487. operator:
  14488. type: string
  14489. values:
  14490. items:
  14491. type: string
  14492. type: array
  14493. x-kubernetes-list-type: atomic
  14494. required:
  14495. - key
  14496. - operator
  14497. type: object
  14498. type: array
  14499. x-kubernetes-list-type: atomic
  14500. matchLabels:
  14501. additionalProperties:
  14502. type: string
  14503. type: object
  14504. type: object
  14505. x-kubernetes-map-type: atomic
  14506. namespaces:
  14507. items:
  14508. type: string
  14509. type: array
  14510. x-kubernetes-list-type: atomic
  14511. topologyKey:
  14512. type: string
  14513. required:
  14514. - topologyKey
  14515. type: object
  14516. weight:
  14517. format: int32
  14518. type: integer
  14519. required:
  14520. - podAffinityTerm
  14521. - weight
  14522. type: object
  14523. type: array
  14524. x-kubernetes-list-type: atomic
  14525. requiredDuringSchedulingIgnoredDuringExecution:
  14526. items:
  14527. properties:
  14528. labelSelector:
  14529. properties:
  14530. matchExpressions:
  14531. items:
  14532. properties:
  14533. key:
  14534. type: string
  14535. operator:
  14536. type: string
  14537. values:
  14538. items:
  14539. type: string
  14540. type: array
  14541. x-kubernetes-list-type: atomic
  14542. required:
  14543. - key
  14544. - operator
  14545. type: object
  14546. type: array
  14547. x-kubernetes-list-type: atomic
  14548. matchLabels:
  14549. additionalProperties:
  14550. type: string
  14551. type: object
  14552. type: object
  14553. x-kubernetes-map-type: atomic
  14554. matchLabelKeys:
  14555. items:
  14556. type: string
  14557. type: array
  14558. x-kubernetes-list-type: atomic
  14559. mismatchLabelKeys:
  14560. items:
  14561. type: string
  14562. type: array
  14563. x-kubernetes-list-type: atomic
  14564. namespaceSelector:
  14565. properties:
  14566. matchExpressions:
  14567. items:
  14568. properties:
  14569. key:
  14570. type: string
  14571. operator:
  14572. type: string
  14573. values:
  14574. items:
  14575. type: string
  14576. type: array
  14577. x-kubernetes-list-type: atomic
  14578. required:
  14579. - key
  14580. - operator
  14581. type: object
  14582. type: array
  14583. x-kubernetes-list-type: atomic
  14584. matchLabels:
  14585. additionalProperties:
  14586. type: string
  14587. type: object
  14588. type: object
  14589. x-kubernetes-map-type: atomic
  14590. namespaces:
  14591. items:
  14592. type: string
  14593. type: array
  14594. x-kubernetes-list-type: atomic
  14595. topologyKey:
  14596. type: string
  14597. required:
  14598. - topologyKey
  14599. type: object
  14600. type: array
  14601. x-kubernetes-list-type: atomic
  14602. type: object
  14603. tolerations:
  14604. items:
  14605. properties:
  14606. effect:
  14607. type: string
  14608. key:
  14609. type: string
  14610. operator:
  14611. type: string
  14612. tolerationSeconds:
  14613. format: int64
  14614. type: integer
  14615. value:
  14616. type: string
  14617. type: object
  14618. type: array
  14619. topologySpreadConstraints:
  14620. items:
  14621. properties:
  14622. labelSelector:
  14623. properties:
  14624. matchExpressions:
  14625. items:
  14626. properties:
  14627. key:
  14628. type: string
  14629. operator:
  14630. type: string
  14631. values:
  14632. items:
  14633. type: string
  14634. type: array
  14635. x-kubernetes-list-type: atomic
  14636. required:
  14637. - key
  14638. - operator
  14639. type: object
  14640. type: array
  14641. x-kubernetes-list-type: atomic
  14642. matchLabels:
  14643. additionalProperties:
  14644. type: string
  14645. type: object
  14646. type: object
  14647. x-kubernetes-map-type: atomic
  14648. matchLabelKeys:
  14649. items:
  14650. type: string
  14651. type: array
  14652. x-kubernetes-list-type: atomic
  14653. maxSkew:
  14654. format: int32
  14655. type: integer
  14656. minDomains:
  14657. format: int32
  14658. type: integer
  14659. nodeAffinityPolicy:
  14660. type: string
  14661. nodeTaintsPolicy:
  14662. type: string
  14663. topologyKey:
  14664. type: string
  14665. whenUnsatisfiable:
  14666. type: string
  14667. required:
  14668. - maxSkew
  14669. - topologyKey
  14670. - whenUnsatisfiable
  14671. type: object
  14672. type: array
  14673. type: object
  14674. x-kubernetes-preserve-unknown-fields: true
  14675. priorityClassName:
  14676. description: PriorityClassName sets priority class on the rbd mirror pods
  14677. type: string
  14678. resources:
  14679. description: The resource requirements for the rbd mirror pods
  14680. nullable: true
  14681. properties:
  14682. claims:
  14683. description: |-
  14684. Claims lists the names of resources, defined in spec.resourceClaims,
  14685. that are used by this container.
  14686. This is an alpha field and requires enabling the
  14687. DynamicResourceAllocation feature gate.
  14688. This field is immutable. It can only be set for containers.
  14689. items:
  14690. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  14691. properties:
  14692. name:
  14693. description: |-
  14694. Name must match the name of one entry in pod.spec.resourceClaims of
  14695. the Pod where this field is used. It makes that resource available
  14696. inside a container.
  14697. type: string
  14698. request:
  14699. description: |-
  14700. Request is the name chosen for a request in the referenced claim.
  14701. If empty, everything from the claim is made available, otherwise
  14702. only the result of this request.
  14703. type: string
  14704. required:
  14705. - name
  14706. type: object
  14707. type: array
  14708. x-kubernetes-list-map-keys:
  14709. - name
  14710. x-kubernetes-list-type: map
  14711. limits:
  14712. additionalProperties:
  14713. anyOf:
  14714. - type: integer
  14715. - type: string
  14716. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14717. x-kubernetes-int-or-string: true
  14718. description: |-
  14719. Limits describes the maximum amount of compute resources allowed.
  14720. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  14721. type: object
  14722. requests:
  14723. additionalProperties:
  14724. anyOf:
  14725. - type: integer
  14726. - type: string
  14727. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14728. x-kubernetes-int-or-string: true
  14729. description: |-
  14730. Requests describes the minimum amount of compute resources required.
  14731. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  14732. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  14733. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  14734. type: object
  14735. type: object
  14736. x-kubernetes-preserve-unknown-fields: true
  14737. required:
  14738. - count
  14739. type: object
  14740. status:
  14741. description: Status represents the status of an object
  14742. properties:
  14743. conditions:
  14744. items:
  14745. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  14746. properties:
  14747. lastHeartbeatTime:
  14748. format: date-time
  14749. type: string
  14750. lastTransitionTime:
  14751. format: date-time
  14752. type: string
  14753. message:
  14754. type: string
  14755. reason:
  14756. description: ConditionReason is a reason for a condition
  14757. type: string
  14758. status:
  14759. type: string
  14760. type:
  14761. description: ConditionType represent a resource's status
  14762. type: string
  14763. type: object
  14764. type: array
  14765. observedGeneration:
  14766. description: ObservedGeneration is the latest generation observed by the controller.
  14767. format: int64
  14768. type: integer
  14769. phase:
  14770. type: string
  14771. type: object
  14772. x-kubernetes-preserve-unknown-fields: true
  14773. required:
  14774. - metadata
  14775. - spec
  14776. type: object
  14777. served: true
  14778. storage: true
  14779. subresources:
  14780. status: {}
  14781. ---
  14782. apiVersion: apiextensions.k8s.io/v1
  14783. kind: CustomResourceDefinition
  14784. metadata:
  14785. name: objectbucketclaims.objectbucket.io
  14786. spec:
  14787. group: objectbucket.io
  14788. names:
  14789. kind: ObjectBucketClaim
  14790. listKind: ObjectBucketClaimList
  14791. plural: objectbucketclaims
  14792. singular: objectbucketclaim
  14793. shortNames:
  14794. - obc
  14795. - obcs
  14796. scope: Namespaced
  14797. versions:
  14798. - name: v1alpha1
  14799. served: true
  14800. storage: true
  14801. schema:
  14802. openAPIV3Schema:
  14803. type: object
  14804. properties:
  14805. spec:
  14806. type: object
  14807. properties:
  14808. storageClassName:
  14809. type: string
  14810. bucketName:
  14811. type: string
  14812. generateBucketName:
  14813. type: string
  14814. additionalConfig:
  14815. type: object
  14816. nullable: true
  14817. x-kubernetes-preserve-unknown-fields: true
  14818. objectBucketName:
  14819. type: string
  14820. status:
  14821. type: object
  14822. x-kubernetes-preserve-unknown-fields: true
  14823. subresources:
  14824. status: {}
  14825. ---
  14826. apiVersion: apiextensions.k8s.io/v1
  14827. kind: CustomResourceDefinition
  14828. metadata:
  14829. name: objectbuckets.objectbucket.io
  14830. spec:
  14831. group: objectbucket.io
  14832. names:
  14833. kind: ObjectBucket
  14834. listKind: ObjectBucketList
  14835. plural: objectbuckets
  14836. singular: objectbucket
  14837. shortNames:
  14838. - ob
  14839. - obs
  14840. scope: Cluster
  14841. versions:
  14842. - name: v1alpha1
  14843. served: true
  14844. storage: true
  14845. schema:
  14846. openAPIV3Schema:
  14847. type: object
  14848. properties:
  14849. spec:
  14850. type: object
  14851. properties:
  14852. storageClassName:
  14853. type: string
  14854. endpoint:
  14855. type: object
  14856. nullable: true
  14857. properties:
  14858. bucketHost:
  14859. type: string
  14860. bucketPort:
  14861. type: integer
  14862. format: int32
  14863. bucketName:
  14864. type: string
  14865. region:
  14866. type: string
  14867. subRegion:
  14868. type: string
  14869. additionalConfig:
  14870. type: object
  14871. nullable: true
  14872. x-kubernetes-preserve-unknown-fields: true
  14873. authentication:
  14874. type: object
  14875. nullable: true
  14876. items:
  14877. type: object
  14878. x-kubernetes-preserve-unknown-fields: true
  14879. additionalState:
  14880. type: object
  14881. nullable: true
  14882. x-kubernetes-preserve-unknown-fields: true
  14883. reclaimPolicy:
  14884. type: string
  14885. claimRef:
  14886. type: object
  14887. nullable: true
  14888. x-kubernetes-preserve-unknown-fields: true
  14889. status:
  14890. type: object
  14891. x-kubernetes-preserve-unknown-fields: true
  14892. subresources:
  14893. status: {}