cluster.yaml 1.0 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345
  1. ---
  2. # Source: rook-ceph/templates/cluster-rbac.yaml
  3. # Service account for Ceph OSDs
  4. apiVersion: v1
  5. kind: ServiceAccount
  6. metadata:
  7. name: rook-ceph-osd
  8. namespace: aleph-ns # namespace:cluster
  9. labels:
  10. operator: rook
  11. storage-backend: ceph
  12. app.kubernetes.io/part-of: rook-ceph-operator
  13. app.kubernetes.io/managed-by: Helm
  14. app.kubernetes.io/created-by: helm
  15. helm.sh/chart: "rook-ceph-v1.12.3"
  16. # imagePullSecrets:
  17. # - name: my-registry-secret
  18. ---
  19. # Source: rook-ceph/templates/cluster-rbac.yaml
  20. # Service account for Ceph mgrs
  21. apiVersion: v1
  22. kind: ServiceAccount
  23. metadata:
  24. name: rook-ceph-mgr
  25. namespace: aleph-ns # namespace:cluster
  26. labels:
  27. operator: rook
  28. storage-backend: ceph
  29. app.kubernetes.io/part-of: rook-ceph-operator
  30. app.kubernetes.io/managed-by: Helm
  31. app.kubernetes.io/created-by: helm
  32. helm.sh/chart: "rook-ceph-v1.12.3"
  33. # imagePullSecrets:
  34. # - name: my-registry-secret
  35. ---
  36. # Source: rook-ceph/templates/cluster-rbac.yaml
  37. # Service account for the job that reports the Ceph version in an image
  38. apiVersion: v1
  39. kind: ServiceAccount
  40. metadata:
  41. name: rook-ceph-cmd-reporter
  42. namespace: aleph-ns # namespace:cluster
  43. labels:
  44. operator: rook
  45. storage-backend: ceph
  46. app.kubernetes.io/part-of: rook-ceph-operator
  47. app.kubernetes.io/managed-by: Helm
  48. app.kubernetes.io/created-by: helm
  49. helm.sh/chart: "rook-ceph-v1.12.3"
  50. # imagePullSecrets:
  51. # - name: my-registry-secret
  52. ---
  53. # Source: rook-ceph/templates/cluster-rbac.yaml
  54. # Service account for job that purges OSDs from a Rook-Ceph cluster
  55. apiVersion: v1
  56. kind: ServiceAccount
  57. metadata:
  58. name: rook-ceph-purge-osd
  59. namespace: aleph-ns # namespace:cluster
  60. # imagePullSecrets:
  61. # - name: my-registry-secret
  62. ---
  63. # Source: rook-ceph/templates/cluster-rbac.yaml
  64. # Service account for RGW server
  65. apiVersion: v1
  66. kind: ServiceAccount
  67. metadata:
  68. name: rook-ceph-rgw
  69. namespace: aleph-ns # namespace:cluster
  70. labels:
  71. operator: rook
  72. storage-backend: ceph
  73. app.kubernetes.io/part-of: rook-ceph-operator
  74. app.kubernetes.io/managed-by: Helm
  75. app.kubernetes.io/created-by: helm
  76. helm.sh/chart: "rook-ceph-v1.12.3"
  77. # imagePullSecrets:
  78. # - name: my-registry-secret
  79. ---
  80. # Source: rook-ceph/templates/serviceaccount.yaml
  81. # Service account for the Rook-Ceph operator
  82. apiVersion: v1
  83. kind: ServiceAccount
  84. metadata:
  85. name: rook-ceph-system
  86. namespace: aleph-ns # namespace:operator
  87. labels:
  88. operator: rook
  89. storage-backend: ceph
  90. app.kubernetes.io/part-of: rook-ceph-operator
  91. app.kubernetes.io/managed-by: Helm
  92. app.kubernetes.io/created-by: helm
  93. helm.sh/chart: "rook-ceph-v1.12.3"
  94. # imagePullSecrets:
  95. # - name: my-registry-secret
  96. ---
  97. # Source: rook-ceph/templates/serviceaccount.yaml
  98. # Service account for the CephFS CSI driver
  99. apiVersion: v1
  100. kind: ServiceAccount
  101. metadata:
  102. name: rook-csi-cephfs-plugin-sa
  103. namespace: aleph-ns # namespace:operator
  104. # imagePullSecrets:
  105. # - name: my-registry-secret
  106. ---
  107. # Source: rook-ceph/templates/serviceaccount.yaml
  108. # Service account for the CephFS CSI provisioner
  109. apiVersion: v1
  110. kind: ServiceAccount
  111. metadata:
  112. name: rook-csi-cephfs-provisioner-sa
  113. namespace: aleph-ns # namespace:operator
  114. # imagePullSecrets:
  115. # - name: my-registry-secret
  116. ---
  117. # Source: rook-ceph/templates/serviceaccount.yaml
  118. # Service account for the RBD CSI driver
  119. apiVersion: v1
  120. kind: ServiceAccount
  121. metadata:
  122. name: rook-csi-rbd-plugin-sa
  123. namespace: aleph-ns # namespace:operator
  124. # imagePullSecrets:
  125. # - name: my-registry-secret
  126. ---
  127. # Source: rook-ceph/templates/serviceaccount.yaml
  128. # Service account for the RBD CSI provisioner
  129. apiVersion: v1
  130. kind: ServiceAccount
  131. metadata:
  132. name: rook-csi-rbd-provisioner-sa
  133. namespace: aleph-ns # namespace:operator
  134. # imagePullSecrets:
  135. # - name: my-registry-secret
  136. ---
  137. # Source: rook-ceph/templates/serviceaccount.yaml
  138. # Service account for Ceph COSI driver
  139. apiVersion: v1
  140. kind: ServiceAccount
  141. metadata:
  142. name: objectstorage-provisioner
  143. namespace: aleph-ns # namespace:operator
  144. labels:
  145. app.kubernetes.io/part-of: container-object-storage-interface
  146. app.kubernetes.io/component: driver-ceph
  147. app.kubernetes.io/name: cosi-driver-ceph
  148. # imagePullSecrets:
  149. # - name: my-registry-secret
  150. ---
  151. # Source: rook-ceph/templates/configmap.yaml
  152. # Operator settings that can be updated without an operator restart
  153. # Operator settings that require an operator restart are found in the operator env vars
  154. kind: ConfigMap
  155. apiVersion: v1
  156. metadata:
  157. name: rook-ceph-operator-config
  158. data:
  159. ROOK_LOG_LEVEL: "INFO"
  160. ROOK_CEPH_COMMANDS_TIMEOUT_SECONDS: "15"
  161. ROOK_OBC_WATCH_OPERATOR_NAMESPACE: "true"
  162. ROOK_CEPH_ALLOW_LOOP_DEVICES: "false"
  163. ROOK_DISABLE_ADMISSION_CONTROLLER: "true"
  164. ROOK_CSI_ENABLE_RBD: "true"
  165. ROOK_CSI_ENABLE_CEPHFS: "true"
  166. CSI_ENABLE_CEPHFS_SNAPSHOTTER: "true"
  167. CSI_ENABLE_NFS_SNAPSHOTTER: "true"
  168. CSI_ENABLE_RBD_SNAPSHOTTER: "true"
  169. CSI_PLUGIN_ENABLE_SELINUX_HOST_MOUNT: "false"
  170. CSI_ENABLE_ENCRYPTION: "false"
  171. CSI_ENABLE_OMAP_GENERATOR: "false"
  172. CSI_ENABLE_HOST_NETWORK: "true"
  173. CSI_ENABLE_METADATA: "false"
  174. CSI_PLUGIN_PRIORITY_CLASSNAME: "system-node-critical"
  175. CSI_PROVISIONER_PRIORITY_CLASSNAME: "system-cluster-critical"
  176. CSI_RBD_FSGROUPPOLICY: "File"
  177. CSI_CEPHFS_FSGROUPPOLICY: "File"
  178. CSI_NFS_FSGROUPPOLICY: "File"
  179. ROOK_CSI_ENABLE_GRPC_METRICS: "false"
  180. ROOK_CSI_IMAGE_PULL_POLICY: "IfNotPresent"
  181. CSI_ENABLE_CSIADDONS: "false"
  182. ROOK_CSIADDONS_IMAGE: "quay.io/csiaddons/k8s-sidecar:v0.7.0"
  183. CSI_ENABLE_TOPOLOGY: "false"
  184. CSI_ENABLE_READ_AFFINITY : "false"
  185. ROOK_CSI_ENABLE_NFS: "false"
  186. CSI_FORCE_CEPHFS_KERNEL_CLIENT: "true"
  187. CSI_GRPC_TIMEOUT_SECONDS: "150"
  188. CSI_PROVISIONER_REPLICAS: "2"
  189. CSI_RBD_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-resizer\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-attacher\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-snapshotter\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-rbdplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : csi-omap-generator\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  190. CSI_RBD_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-rbdplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  191. CSI_CEPHFS_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-resizer\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-attacher\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-snapshotter\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-cephfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  192. CSI_CEPHFS_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-cephfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : liveness-prometheus\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n"
  193. CSI_NFS_PROVISIONER_RESOURCE: "- name : csi-provisioner\n resource:\n requests:\n memory: 128Mi\n cpu: 100m\n limits:\n memory: 256Mi\n cpu: 200m\n- name : csi-nfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n- name : csi-attacher\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n"
  194. CSI_NFS_PLUGIN_RESOURCE: "- name : driver-registrar\n resource:\n requests:\n memory: 128Mi\n cpu: 50m\n limits:\n memory: 256Mi\n cpu: 100m\n- name : csi-nfsplugin\n resource:\n requests:\n memory: 512Mi\n cpu: 250m\n limits:\n memory: 1Gi\n cpu: 500m\n"
  195. CSI_CEPHFS_ATTACH_REQUIRED: "true"
  196. CSI_RBD_ATTACH_REQUIRED: "true"
  197. CSI_NFS_ATTACH_REQUIRED: "true"
  198. ---
  199. # Source: rook-ceph/templates/resources.yaml
  200. apiVersion: apiextensions.k8s.io/v1
  201. kind: CustomResourceDefinition
  202. metadata:
  203. annotations:
  204. controller-gen.kubebuilder.io/version: v0.11.3
  205. helm.sh/resource-policy: keep
  206. creationTimestamp: null
  207. name: cephblockpoolradosnamespaces.ceph.rook.io
  208. spec:
  209. group: ceph.rook.io
  210. names:
  211. kind: CephBlockPoolRadosNamespace
  212. listKind: CephBlockPoolRadosNamespaceList
  213. plural: cephblockpoolradosnamespaces
  214. singular: cephblockpoolradosnamespace
  215. scope: Namespaced
  216. versions:
  217. - name: v1
  218. schema:
  219. openAPIV3Schema:
  220. description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
  221. properties:
  222. apiVersion:
  223. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  224. type: string
  225. kind:
  226. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  227. type: string
  228. metadata:
  229. type: object
  230. spec:
  231. description: Spec represents the specification of a Ceph BlockPool Rados Namespace
  232. properties:
  233. blockPoolName:
  234. description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR.
  235. type: string
  236. required:
  237. - blockPoolName
  238. type: object
  239. status:
  240. description: Status represents the status of a CephBlockPool Rados Namespace
  241. properties:
  242. info:
  243. additionalProperties:
  244. type: string
  245. nullable: true
  246. type: object
  247. phase:
  248. description: ConditionType represent a resource's status
  249. type: string
  250. type: object
  251. x-kubernetes-preserve-unknown-fields: true
  252. required:
  253. - metadata
  254. - spec
  255. type: object
  256. served: true
  257. storage: true
  258. subresources:
  259. status: {}
  260. ---
  261. # Source: rook-ceph/templates/resources.yaml
  262. apiVersion: apiextensions.k8s.io/v1
  263. kind: CustomResourceDefinition
  264. metadata:
  265. annotations:
  266. controller-gen.kubebuilder.io/version: v0.11.3
  267. helm.sh/resource-policy: keep
  268. creationTimestamp: null
  269. name: cephblockpools.ceph.rook.io
  270. spec:
  271. group: ceph.rook.io
  272. names:
  273. kind: CephBlockPool
  274. listKind: CephBlockPoolList
  275. plural: cephblockpools
  276. singular: cephblockpool
  277. scope: Namespaced
  278. versions:
  279. - additionalPrinterColumns:
  280. - jsonPath: .status.phase
  281. name: Phase
  282. type: string
  283. name: v1
  284. schema:
  285. openAPIV3Schema:
  286. description: CephBlockPool represents a Ceph Storage Pool
  287. properties:
  288. apiVersion:
  289. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  290. type: string
  291. kind:
  292. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  293. type: string
  294. metadata:
  295. type: object
  296. spec:
  297. description: NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.
  298. properties:
  299. compressionMode:
  300. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  301. enum:
  302. - none
  303. - passive
  304. - aggressive
  305. - force
  306. - ""
  307. nullable: true
  308. type: string
  309. crushRoot:
  310. description: The root of the crush hierarchy utilized by the pool
  311. nullable: true
  312. type: string
  313. deviceClass:
  314. description: The device class the OSD should set to for use in the pool
  315. nullable: true
  316. type: string
  317. enableRBDStats:
  318. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  319. type: boolean
  320. erasureCoded:
  321. description: The erasure code settings
  322. properties:
  323. algorithm:
  324. description: The algorithm for erasure coding
  325. type: string
  326. codingChunks:
  327. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  328. minimum: 0
  329. type: integer
  330. dataChunks:
  331. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  332. minimum: 0
  333. type: integer
  334. required:
  335. - codingChunks
  336. - dataChunks
  337. type: object
  338. failureDomain:
  339. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  340. type: string
  341. mirroring:
  342. description: The mirroring settings
  343. properties:
  344. enabled:
  345. description: Enabled whether this pool is mirrored or not
  346. type: boolean
  347. mode:
  348. description: 'Mode is the mirroring mode: either pool or image'
  349. type: string
  350. peers:
  351. description: Peers represents the peers spec
  352. nullable: true
  353. properties:
  354. secretNames:
  355. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  356. items:
  357. type: string
  358. type: array
  359. type: object
  360. snapshotSchedules:
  361. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  362. items:
  363. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  364. properties:
  365. interval:
  366. description: Interval represent the periodicity of the snapshot.
  367. type: string
  368. path:
  369. description: Path is the path to snapshot, only valid for CephFS
  370. type: string
  371. startTime:
  372. description: StartTime indicates when to start the snapshot
  373. type: string
  374. type: object
  375. type: array
  376. type: object
  377. name:
  378. description: The desired name of the pool if different from the CephBlockPool CR name.
  379. enum:
  380. - device_health_metrics
  381. - .nfs
  382. - .mgr
  383. type: string
  384. parameters:
  385. additionalProperties:
  386. type: string
  387. description: Parameters is a list of properties to enable on a given pool
  388. nullable: true
  389. type: object
  390. x-kubernetes-preserve-unknown-fields: true
  391. quotas:
  392. description: The quota settings
  393. nullable: true
  394. properties:
  395. maxBytes:
  396. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  397. format: int64
  398. type: integer
  399. maxObjects:
  400. description: MaxObjects represents the quota in objects
  401. format: int64
  402. type: integer
  403. maxSize:
  404. description: MaxSize represents the quota in bytes as a string
  405. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  406. type: string
  407. type: object
  408. replicated:
  409. description: The replication settings
  410. properties:
  411. hybridStorage:
  412. description: HybridStorage represents hybrid storage tier settings
  413. nullable: true
  414. properties:
  415. primaryDeviceClass:
  416. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  417. minLength: 1
  418. type: string
  419. secondaryDeviceClass:
  420. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  421. minLength: 1
  422. type: string
  423. required:
  424. - primaryDeviceClass
  425. - secondaryDeviceClass
  426. type: object
  427. replicasPerFailureDomain:
  428. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  429. minimum: 1
  430. type: integer
  431. requireSafeReplicaSize:
  432. description: RequireSafeReplicaSize if false allows you to set replica 1
  433. type: boolean
  434. size:
  435. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  436. minimum: 0
  437. type: integer
  438. subFailureDomain:
  439. description: SubFailureDomain the name of the sub-failure domain
  440. type: string
  441. targetSizeRatio:
  442. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  443. type: number
  444. required:
  445. - size
  446. type: object
  447. statusCheck:
  448. description: The mirroring statusCheck
  449. properties:
  450. mirror:
  451. description: HealthCheckSpec represents the health check of an object store bucket
  452. nullable: true
  453. properties:
  454. disabled:
  455. type: boolean
  456. interval:
  457. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  458. type: string
  459. timeout:
  460. type: string
  461. type: object
  462. type: object
  463. x-kubernetes-preserve-unknown-fields: true
  464. type: object
  465. status:
  466. description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
  467. properties:
  468. conditions:
  469. items:
  470. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  471. properties:
  472. lastHeartbeatTime:
  473. format: date-time
  474. type: string
  475. lastTransitionTime:
  476. format: date-time
  477. type: string
  478. message:
  479. type: string
  480. reason:
  481. description: ConditionReason is a reason for a condition
  482. type: string
  483. status:
  484. type: string
  485. type:
  486. description: ConditionType represent a resource's status
  487. type: string
  488. type: object
  489. type: array
  490. info:
  491. additionalProperties:
  492. type: string
  493. nullable: true
  494. type: object
  495. mirroringInfo:
  496. description: MirroringInfoSpec is the status of the pool mirroring
  497. properties:
  498. details:
  499. type: string
  500. lastChanged:
  501. type: string
  502. lastChecked:
  503. type: string
  504. mode:
  505. description: Mode is the mirroring mode
  506. type: string
  507. peers:
  508. description: Peers are the list of peer sites connected to that cluster
  509. items:
  510. description: PeersSpec contains peer details
  511. properties:
  512. client_name:
  513. description: ClientName is the CephX user used to connect to the peer
  514. type: string
  515. direction:
  516. description: Direction is the peer mirroring direction
  517. type: string
  518. mirror_uuid:
  519. description: MirrorUUID is the mirror UUID
  520. type: string
  521. site_name:
  522. description: SiteName is the current site name
  523. type: string
  524. uuid:
  525. description: UUID is the peer UUID
  526. type: string
  527. type: object
  528. type: array
  529. site_name:
  530. description: SiteName is the current site name
  531. type: string
  532. type: object
  533. mirroringStatus:
  534. description: MirroringStatusSpec is the status of the pool mirroring
  535. properties:
  536. details:
  537. description: Details contains potential status errors
  538. type: string
  539. lastChanged:
  540. description: LastChanged is the last time time the status last changed
  541. type: string
  542. lastChecked:
  543. description: LastChecked is the last time time the status was checked
  544. type: string
  545. summary:
  546. description: Summary is the mirroring status summary
  547. properties:
  548. daemon_health:
  549. description: DaemonHealth is the health of the mirroring daemon
  550. type: string
  551. health:
  552. description: Health is the mirroring health
  553. type: string
  554. image_health:
  555. description: ImageHealth is the health of the mirrored image
  556. type: string
  557. states:
  558. description: States is the various state for all mirrored images
  559. nullable: true
  560. properties:
  561. error:
  562. description: Error is when the mirroring state is errored
  563. type: integer
  564. replaying:
  565. description: Replaying is when the replay of the mirroring journal is on-going
  566. type: integer
  567. starting_replay:
  568. description: StartingReplay is when the replay of the mirroring journal starts
  569. type: integer
  570. stopped:
  571. description: Stopped is when the mirroring state is stopped
  572. type: integer
  573. stopping_replay:
  574. description: StopReplaying is when the replay of the mirroring journal stops
  575. type: integer
  576. syncing:
  577. description: Syncing is when the image is syncing
  578. type: integer
  579. unknown:
  580. description: Unknown is when the mirroring state is unknown
  581. type: integer
  582. type: object
  583. type: object
  584. type: object
  585. observedGeneration:
  586. description: ObservedGeneration is the latest generation observed by the controller.
  587. format: int64
  588. type: integer
  589. phase:
  590. description: ConditionType represent a resource's status
  591. type: string
  592. snapshotScheduleStatus:
  593. description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
  594. properties:
  595. details:
  596. description: Details contains potential status errors
  597. type: string
  598. lastChanged:
  599. description: LastChanged is the last time time the status last changed
  600. type: string
  601. lastChecked:
  602. description: LastChecked is the last time time the status was checked
  603. type: string
  604. snapshotSchedules:
  605. description: SnapshotSchedules is the list of snapshots scheduled
  606. items:
  607. description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  608. properties:
  609. image:
  610. description: Image is the mirrored image
  611. type: string
  612. items:
  613. description: Items is the list schedules times for a given snapshot
  614. items:
  615. description: SnapshotSchedule is a schedule
  616. properties:
  617. interval:
  618. description: Interval is the interval in which snapshots will be taken
  619. type: string
  620. start_time:
  621. description: StartTime is the snapshot starting time
  622. type: string
  623. type: object
  624. type: array
  625. namespace:
  626. description: Namespace is the RADOS namespace the image is part of
  627. type: string
  628. pool:
  629. description: Pool is the pool name
  630. type: string
  631. type: object
  632. nullable: true
  633. type: array
  634. type: object
  635. type: object
  636. x-kubernetes-preserve-unknown-fields: true
  637. required:
  638. - metadata
  639. - spec
  640. type: object
  641. served: true
  642. storage: true
  643. subresources:
  644. status: {}
  645. ---
  646. # Source: rook-ceph/templates/resources.yaml
  647. apiVersion: apiextensions.k8s.io/v1
  648. kind: CustomResourceDefinition
  649. metadata:
  650. annotations:
  651. controller-gen.kubebuilder.io/version: v0.11.3
  652. helm.sh/resource-policy: keep
  653. creationTimestamp: null
  654. name: cephbucketnotifications.ceph.rook.io
  655. spec:
  656. group: ceph.rook.io
  657. names:
  658. kind: CephBucketNotification
  659. listKind: CephBucketNotificationList
  660. plural: cephbucketnotifications
  661. singular: cephbucketnotification
  662. scope: Namespaced
  663. versions:
  664. - name: v1
  665. schema:
  666. openAPIV3Schema:
  667. description: CephBucketNotification represents a Bucket Notifications
  668. properties:
  669. apiVersion:
  670. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  671. type: string
  672. kind:
  673. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  674. type: string
  675. metadata:
  676. type: object
  677. spec:
  678. description: BucketNotificationSpec represent the spec of a Bucket Notification
  679. properties:
  680. events:
  681. description: List of events that should trigger the notification
  682. items:
  683. description: BucketNotificationSpec represent the event type of the bucket notification
  684. enum:
  685. - s3:ObjectCreated:*
  686. - s3:ObjectCreated:Put
  687. - s3:ObjectCreated:Post
  688. - s3:ObjectCreated:Copy
  689. - s3:ObjectCreated:CompleteMultipartUpload
  690. - s3:ObjectRemoved:*
  691. - s3:ObjectRemoved:Delete
  692. - s3:ObjectRemoved:DeleteMarkerCreated
  693. type: string
  694. type: array
  695. filter:
  696. description: Spec of notification filter
  697. properties:
  698. keyFilters:
  699. description: Filters based on the object's key
  700. items:
  701. description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
  702. properties:
  703. name:
  704. description: Name of the filter - prefix/suffix/regex
  705. enum:
  706. - prefix
  707. - suffix
  708. - regex
  709. type: string
  710. value:
  711. description: Value to filter on
  712. type: string
  713. required:
  714. - name
  715. - value
  716. type: object
  717. type: array
  718. metadataFilters:
  719. description: Filters based on the object's metadata
  720. items:
  721. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  722. properties:
  723. name:
  724. description: Name of the metadata or tag
  725. minLength: 1
  726. type: string
  727. value:
  728. description: Value to filter on
  729. type: string
  730. required:
  731. - name
  732. - value
  733. type: object
  734. type: array
  735. tagFilters:
  736. description: Filters based on the object's tags
  737. items:
  738. description: NotificationFilterRule represent a single rule in the Notification Filter spec
  739. properties:
  740. name:
  741. description: Name of the metadata or tag
  742. minLength: 1
  743. type: string
  744. value:
  745. description: Value to filter on
  746. type: string
  747. required:
  748. - name
  749. - value
  750. type: object
  751. type: array
  752. type: object
  753. topic:
  754. description: The name of the topic associated with this notification
  755. minLength: 1
  756. type: string
  757. required:
  758. - topic
  759. type: object
  760. status:
  761. description: Status represents the status of an object
  762. properties:
  763. conditions:
  764. items:
  765. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  766. properties:
  767. lastHeartbeatTime:
  768. format: date-time
  769. type: string
  770. lastTransitionTime:
  771. format: date-time
  772. type: string
  773. message:
  774. type: string
  775. reason:
  776. description: ConditionReason is a reason for a condition
  777. type: string
  778. status:
  779. type: string
  780. type:
  781. description: ConditionType represent a resource's status
  782. type: string
  783. type: object
  784. type: array
  785. observedGeneration:
  786. description: ObservedGeneration is the latest generation observed by the controller.
  787. format: int64
  788. type: integer
  789. phase:
  790. type: string
  791. type: object
  792. x-kubernetes-preserve-unknown-fields: true
  793. required:
  794. - metadata
  795. - spec
  796. type: object
  797. served: true
  798. storage: true
  799. subresources:
  800. status: {}
  801. ---
  802. # Source: rook-ceph/templates/resources.yaml
  803. apiVersion: apiextensions.k8s.io/v1
  804. kind: CustomResourceDefinition
  805. metadata:
  806. annotations:
  807. controller-gen.kubebuilder.io/version: v0.11.3
  808. helm.sh/resource-policy: keep
  809. creationTimestamp: null
  810. name: cephbuckettopics.ceph.rook.io
  811. spec:
  812. group: ceph.rook.io
  813. names:
  814. kind: CephBucketTopic
  815. listKind: CephBucketTopicList
  816. plural: cephbuckettopics
  817. singular: cephbuckettopic
  818. scope: Namespaced
  819. versions:
  820. - additionalPrinterColumns:
  821. - jsonPath: .status.phase
  822. name: Phase
  823. type: string
  824. name: v1
  825. schema:
  826. openAPIV3Schema:
  827. description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
  828. properties:
  829. apiVersion:
  830. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  831. type: string
  832. kind:
  833. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  834. type: string
  835. metadata:
  836. type: object
  837. spec:
  838. description: BucketTopicSpec represent the spec of a Bucket Topic
  839. properties:
  840. endpoint:
  841. description: Contains the endpoint spec of the topic
  842. properties:
  843. amqp:
  844. description: Spec of AMQP endpoint
  845. properties:
  846. ackLevel:
  847. default: broker
  848. description: The ack level required for this topic (none/broker/routeable)
  849. enum:
  850. - none
  851. - broker
  852. - routeable
  853. type: string
  854. disableVerifySSL:
  855. description: Indicate whether the server certificate is validated by the client or not
  856. type: boolean
  857. exchange:
  858. description: Name of the exchange that is used to route messages based on topics
  859. minLength: 1
  860. type: string
  861. uri:
  862. description: The URI of the AMQP endpoint to push notification to
  863. minLength: 1
  864. type: string
  865. required:
  866. - exchange
  867. - uri
  868. type: object
  869. http:
  870. description: Spec of HTTP endpoint
  871. properties:
  872. disableVerifySSL:
  873. description: Indicate whether the server certificate is validated by the client or not
  874. type: boolean
  875. sendCloudEvents:
  876. description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md Supported for Ceph Quincy (v17) or newer.'
  877. type: boolean
  878. uri:
  879. description: The URI of the HTTP endpoint to push notification to
  880. minLength: 1
  881. type: string
  882. required:
  883. - uri
  884. type: object
  885. kafka:
  886. description: Spec of Kafka endpoint
  887. properties:
  888. ackLevel:
  889. default: broker
  890. description: The ack level required for this topic (none/broker)
  891. enum:
  892. - none
  893. - broker
  894. type: string
  895. disableVerifySSL:
  896. description: Indicate whether the server certificate is validated by the client or not
  897. type: boolean
  898. uri:
  899. description: The URI of the Kafka endpoint to push notification to
  900. minLength: 1
  901. type: string
  902. useSSL:
  903. description: Indicate whether to use SSL when communicating with the broker
  904. type: boolean
  905. required:
  906. - uri
  907. type: object
  908. type: object
  909. objectStoreName:
  910. description: The name of the object store on which to define the topic
  911. minLength: 1
  912. type: string
  913. objectStoreNamespace:
  914. description: The namespace of the object store on which to define the topic
  915. minLength: 1
  916. type: string
  917. opaqueData:
  918. description: Data which is sent in each event
  919. type: string
  920. persistent:
  921. description: Indication whether notifications to this endpoint are persistent or not
  922. type: boolean
  923. required:
  924. - endpoint
  925. - objectStoreName
  926. - objectStoreNamespace
  927. type: object
  928. status:
  929. description: BucketTopicStatus represents the Status of a CephBucketTopic
  930. properties:
  931. ARN:
  932. description: The ARN of the topic generated by the RGW
  933. nullable: true
  934. type: string
  935. observedGeneration:
  936. description: ObservedGeneration is the latest generation observed by the controller.
  937. format: int64
  938. type: integer
  939. phase:
  940. type: string
  941. type: object
  942. x-kubernetes-preserve-unknown-fields: true
  943. required:
  944. - metadata
  945. - spec
  946. type: object
  947. served: true
  948. storage: true
  949. subresources:
  950. status: {}
  951. ---
  952. # Source: rook-ceph/templates/resources.yaml
  953. apiVersion: apiextensions.k8s.io/v1
  954. kind: CustomResourceDefinition
  955. metadata:
  956. annotations:
  957. controller-gen.kubebuilder.io/version: v0.11.3
  958. helm.sh/resource-policy: keep
  959. creationTimestamp: null
  960. name: cephclients.ceph.rook.io
  961. spec:
  962. group: ceph.rook.io
  963. names:
  964. kind: CephClient
  965. listKind: CephClientList
  966. plural: cephclients
  967. singular: cephclient
  968. scope: Namespaced
  969. versions:
  970. - additionalPrinterColumns:
  971. - jsonPath: .status.phase
  972. name: Phase
  973. type: string
  974. name: v1
  975. schema:
  976. openAPIV3Schema:
  977. description: CephClient represents a Ceph Client
  978. properties:
  979. apiVersion:
  980. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  981. type: string
  982. kind:
  983. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  984. type: string
  985. metadata:
  986. type: object
  987. spec:
  988. description: Spec represents the specification of a Ceph Client
  989. properties:
  990. caps:
  991. additionalProperties:
  992. type: string
  993. type: object
  994. x-kubernetes-preserve-unknown-fields: true
  995. name:
  996. type: string
  997. required:
  998. - caps
  999. type: object
  1000. status:
  1001. description: Status represents the status of a Ceph Client
  1002. properties:
  1003. info:
  1004. additionalProperties:
  1005. type: string
  1006. nullable: true
  1007. type: object
  1008. observedGeneration:
  1009. description: ObservedGeneration is the latest generation observed by the controller.
  1010. format: int64
  1011. type: integer
  1012. phase:
  1013. description: ConditionType represent a resource's status
  1014. type: string
  1015. type: object
  1016. x-kubernetes-preserve-unknown-fields: true
  1017. required:
  1018. - metadata
  1019. - spec
  1020. type: object
  1021. served: true
  1022. storage: true
  1023. subresources:
  1024. status: {}
  1025. ---
  1026. # Source: rook-ceph/templates/resources.yaml
  1027. apiVersion: apiextensions.k8s.io/v1
  1028. kind: CustomResourceDefinition
  1029. metadata:
  1030. annotations:
  1031. controller-gen.kubebuilder.io/version: v0.11.3
  1032. helm.sh/resource-policy: keep
  1033. creationTimestamp: null
  1034. name: cephclusters.ceph.rook.io
  1035. spec:
  1036. group: ceph.rook.io
  1037. names:
  1038. kind: CephCluster
  1039. listKind: CephClusterList
  1040. plural: cephclusters
  1041. singular: cephcluster
  1042. scope: Namespaced
  1043. versions:
  1044. - additionalPrinterColumns:
  1045. - description: Directory used on the K8s nodes
  1046. jsonPath: .spec.dataDirHostPath
  1047. name: DataDirHostPath
  1048. type: string
  1049. - description: Number of MONs
  1050. jsonPath: .spec.mon.count
  1051. name: MonCount
  1052. type: string
  1053. - jsonPath: .metadata.creationTimestamp
  1054. name: Age
  1055. type: date
  1056. - jsonPath: .status.phase
  1057. name: Phase
  1058. type: string
  1059. - description: Message
  1060. jsonPath: .status.message
  1061. name: Message
  1062. type: string
  1063. - description: Ceph Health
  1064. jsonPath: .status.ceph.health
  1065. name: Health
  1066. type: string
  1067. - jsonPath: .spec.external.enable
  1068. name: External
  1069. type: boolean
  1070. - description: Ceph FSID
  1071. jsonPath: .status.ceph.fsid
  1072. name: FSID
  1073. type: string
  1074. name: v1
  1075. schema:
  1076. openAPIV3Schema:
  1077. description: CephCluster is a Ceph storage cluster
  1078. properties:
  1079. apiVersion:
  1080. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1081. type: string
  1082. kind:
  1083. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1084. type: string
  1085. metadata:
  1086. type: object
  1087. spec:
  1088. description: ClusterSpec represents the specification of Ceph Cluster
  1089. properties:
  1090. annotations:
  1091. additionalProperties:
  1092. additionalProperties:
  1093. type: string
  1094. description: Annotations are annotations
  1095. type: object
  1096. description: The annotations-related configuration to add/set on each Pod related object.
  1097. nullable: true
  1098. type: object
  1099. x-kubernetes-preserve-unknown-fields: true
  1100. cephVersion:
  1101. description: The version information that instructs Rook to orchestrate a particular version of Ceph.
  1102. nullable: true
  1103. properties:
  1104. allowUnsupported:
  1105. description: Whether to allow unsupported versions (do not set to true in production)
  1106. type: boolean
  1107. image:
  1108. description: Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph:<tag> The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags
  1109. type: string
  1110. imagePullPolicy:
  1111. description: ImagePullPolicy describes a policy for if/when to pull a container image One of Always, Never, IfNotPresent.
  1112. enum:
  1113. - IfNotPresent
  1114. - Always
  1115. - Never
  1116. - ""
  1117. type: string
  1118. type: object
  1119. cleanupPolicy:
  1120. description: Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster deletion is not imminent.
  1121. nullable: true
  1122. properties:
  1123. allowUninstallWithVolumes:
  1124. description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
  1125. type: boolean
  1126. confirmation:
  1127. description: Confirmation represents the cleanup confirmation
  1128. nullable: true
  1129. pattern: ^$|^yes-really-destroy-data$
  1130. type: string
  1131. sanitizeDisks:
  1132. description: SanitizeDisks represents way we sanitize disks
  1133. nullable: true
  1134. properties:
  1135. dataSource:
  1136. description: DataSource is the data source to use to sanitize the disk with
  1137. enum:
  1138. - zero
  1139. - random
  1140. type: string
  1141. iteration:
  1142. description: Iteration is the number of pass to apply the sanitizing
  1143. format: int32
  1144. type: integer
  1145. method:
  1146. description: Method is the method we use to sanitize disks
  1147. enum:
  1148. - complete
  1149. - quick
  1150. type: string
  1151. type: object
  1152. type: object
  1153. continueUpgradeAfterChecksEvenIfNotHealthy:
  1154. description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
  1155. type: boolean
  1156. crashCollector:
  1157. description: A spec for the crash controller
  1158. nullable: true
  1159. properties:
  1160. daysToRetain:
  1161. description: DaysToRetain represents the number of days to retain crash until they get pruned
  1162. type: integer
  1163. disable:
  1164. description: Disable determines whether we should enable the crash collector
  1165. type: boolean
  1166. type: object
  1167. dashboard:
  1168. description: Dashboard settings
  1169. nullable: true
  1170. properties:
  1171. enabled:
  1172. description: Enabled determines whether to enable the dashboard
  1173. type: boolean
  1174. port:
  1175. description: Port is the dashboard webserver port
  1176. maximum: 65535
  1177. minimum: 0
  1178. type: integer
  1179. ssl:
  1180. description: SSL determines whether SSL should be used
  1181. type: boolean
  1182. urlPrefix:
  1183. description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
  1184. type: string
  1185. type: object
  1186. dataDirHostPath:
  1187. description: The path on the host where config and data can be persisted
  1188. pattern: ^/(\S+)
  1189. type: string
  1190. disruptionManagement:
  1191. description: A spec for configuring disruption management.
  1192. nullable: true
  1193. properties:
  1194. machineDisruptionBudgetNamespace:
  1195. description: Deprecated. Namespace to look for MDBs by the machineDisruptionBudgetController
  1196. type: string
  1197. manageMachineDisruptionBudgets:
  1198. description: Deprecated. This enables management of machinedisruptionbudgets.
  1199. type: boolean
  1200. managePodBudgets:
  1201. description: This enables management of poddisruptionbudgets
  1202. type: boolean
  1203. osdMaintenanceTimeout:
  1204. description: OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure domains it only works if managePodBudgets is true. the default is 30 minutes
  1205. format: int64
  1206. type: integer
  1207. pgHealthCheckTimeout:
  1208. description: PGHealthCheckTimeout is the time (in minutes) that the operator will wait for the placement groups to become healthy (active+clean) after a drain was completed and OSDs came back up. Rook will continue with the next drain if the timeout exceeds. It only works if managePodBudgets is true. No values or 0 means that the operator will wait until the placement groups are healthy before unblocking the next drain.
  1209. format: int64
  1210. type: integer
  1211. type: object
  1212. external:
  1213. description: Whether the Ceph Cluster is running external to this Kubernetes cluster mon, mgr, osd, mds, and discover daemons will not be created for external clusters.
  1214. nullable: true
  1215. properties:
  1216. enable:
  1217. description: Enable determines whether external mode is enabled or not
  1218. type: boolean
  1219. type: object
  1220. x-kubernetes-preserve-unknown-fields: true
  1221. healthCheck:
  1222. description: Internal daemon healthchecks and liveness probe
  1223. nullable: true
  1224. properties:
  1225. daemonHealth:
  1226. description: DaemonHealth is the health check for a given daemon
  1227. nullable: true
  1228. properties:
  1229. mon:
  1230. description: Monitor represents the health check settings for the Ceph monitor
  1231. nullable: true
  1232. properties:
  1233. disabled:
  1234. type: boolean
  1235. interval:
  1236. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1237. type: string
  1238. timeout:
  1239. type: string
  1240. type: object
  1241. osd:
  1242. description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs
  1243. nullable: true
  1244. properties:
  1245. disabled:
  1246. type: boolean
  1247. interval:
  1248. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1249. type: string
  1250. timeout:
  1251. type: string
  1252. type: object
  1253. status:
  1254. description: Status represents the health check settings for the Ceph health
  1255. nullable: true
  1256. properties:
  1257. disabled:
  1258. type: boolean
  1259. interval:
  1260. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  1261. type: string
  1262. timeout:
  1263. type: string
  1264. type: object
  1265. type: object
  1266. livenessProbe:
  1267. additionalProperties:
  1268. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1269. properties:
  1270. disabled:
  1271. description: Disabled determines whether probe is disable or not
  1272. type: boolean
  1273. probe:
  1274. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1275. properties:
  1276. exec:
  1277. description: Exec specifies the action to take.
  1278. properties:
  1279. command:
  1280. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1281. items:
  1282. type: string
  1283. type: array
  1284. type: object
  1285. failureThreshold:
  1286. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1287. format: int32
  1288. type: integer
  1289. grpc:
  1290. description: GRPC specifies an action involving a GRPC port.
  1291. properties:
  1292. port:
  1293. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1294. format: int32
  1295. type: integer
  1296. service:
  1297. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  1298. type: string
  1299. required:
  1300. - port
  1301. type: object
  1302. httpGet:
  1303. description: HTTPGet specifies the http request to perform.
  1304. properties:
  1305. host:
  1306. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1307. type: string
  1308. httpHeaders:
  1309. description: Custom headers to set in the request. HTTP allows repeated headers.
  1310. items:
  1311. description: HTTPHeader describes a custom header to be used in HTTP probes
  1312. properties:
  1313. name:
  1314. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1315. type: string
  1316. value:
  1317. description: The header field value
  1318. type: string
  1319. required:
  1320. - name
  1321. - value
  1322. type: object
  1323. type: array
  1324. path:
  1325. description: Path to access on the HTTP server.
  1326. type: string
  1327. port:
  1328. anyOf:
  1329. - type: integer
  1330. - type: string
  1331. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1332. x-kubernetes-int-or-string: true
  1333. scheme:
  1334. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1335. type: string
  1336. required:
  1337. - port
  1338. type: object
  1339. initialDelaySeconds:
  1340. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1341. format: int32
  1342. type: integer
  1343. periodSeconds:
  1344. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1345. format: int32
  1346. type: integer
  1347. successThreshold:
  1348. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1349. format: int32
  1350. type: integer
  1351. tcpSocket:
  1352. description: TCPSocket specifies an action involving a TCP port.
  1353. properties:
  1354. host:
  1355. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1356. type: string
  1357. port:
  1358. anyOf:
  1359. - type: integer
  1360. - type: string
  1361. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1362. x-kubernetes-int-or-string: true
  1363. required:
  1364. - port
  1365. type: object
  1366. terminationGracePeriodSeconds:
  1367. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  1368. format: int64
  1369. type: integer
  1370. timeoutSeconds:
  1371. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1372. format: int32
  1373. type: integer
  1374. type: object
  1375. type: object
  1376. description: LivenessProbe allows changing the livenessProbe configuration for a given daemon
  1377. type: object
  1378. startupProbe:
  1379. additionalProperties:
  1380. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  1381. properties:
  1382. disabled:
  1383. description: Disabled determines whether probe is disable or not
  1384. type: boolean
  1385. probe:
  1386. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  1387. properties:
  1388. exec:
  1389. description: Exec specifies the action to take.
  1390. properties:
  1391. command:
  1392. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  1393. items:
  1394. type: string
  1395. type: array
  1396. type: object
  1397. failureThreshold:
  1398. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1399. format: int32
  1400. type: integer
  1401. grpc:
  1402. description: GRPC specifies an action involving a GRPC port.
  1403. properties:
  1404. port:
  1405. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  1406. format: int32
  1407. type: integer
  1408. service:
  1409. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  1410. type: string
  1411. required:
  1412. - port
  1413. type: object
  1414. httpGet:
  1415. description: HTTPGet specifies the http request to perform.
  1416. properties:
  1417. host:
  1418. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1419. type: string
  1420. httpHeaders:
  1421. description: Custom headers to set in the request. HTTP allows repeated headers.
  1422. items:
  1423. description: HTTPHeader describes a custom header to be used in HTTP probes
  1424. properties:
  1425. name:
  1426. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  1427. type: string
  1428. value:
  1429. description: The header field value
  1430. type: string
  1431. required:
  1432. - name
  1433. - value
  1434. type: object
  1435. type: array
  1436. path:
  1437. description: Path to access on the HTTP server.
  1438. type: string
  1439. port:
  1440. anyOf:
  1441. - type: integer
  1442. - type: string
  1443. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1444. x-kubernetes-int-or-string: true
  1445. scheme:
  1446. description: Scheme to use for connecting to the host. Defaults to HTTP.
  1447. type: string
  1448. required:
  1449. - port
  1450. type: object
  1451. initialDelaySeconds:
  1452. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1453. format: int32
  1454. type: integer
  1455. periodSeconds:
  1456. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1457. format: int32
  1458. type: integer
  1459. successThreshold:
  1460. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  1461. format: int32
  1462. type: integer
  1463. tcpSocket:
  1464. description: TCPSocket specifies an action involving a TCP port.
  1465. properties:
  1466. host:
  1467. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1468. type: string
  1469. port:
  1470. anyOf:
  1471. - type: integer
  1472. - type: string
  1473. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1474. x-kubernetes-int-or-string: true
  1475. required:
  1476. - port
  1477. type: object
  1478. terminationGracePeriodSeconds:
  1479. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  1480. format: int64
  1481. type: integer
  1482. timeoutSeconds:
  1483. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1484. format: int32
  1485. type: integer
  1486. type: object
  1487. type: object
  1488. description: StartupProbe allows changing the startupProbe configuration for a given daemon
  1489. type: object
  1490. type: object
  1491. labels:
  1492. additionalProperties:
  1493. additionalProperties:
  1494. type: string
  1495. description: Labels are label for a given daemons
  1496. type: object
  1497. description: The labels-related configuration to add/set on each Pod related object.
  1498. nullable: true
  1499. type: object
  1500. x-kubernetes-preserve-unknown-fields: true
  1501. logCollector:
  1502. description: Logging represents loggings settings
  1503. nullable: true
  1504. properties:
  1505. enabled:
  1506. description: Enabled represents whether the log collector is enabled
  1507. type: boolean
  1508. maxLogSize:
  1509. anyOf:
  1510. - type: integer
  1511. - type: string
  1512. description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
  1513. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1514. x-kubernetes-int-or-string: true
  1515. periodicity:
  1516. description: Periodicity is the periodicity of the log rotation.
  1517. pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$
  1518. type: string
  1519. type: object
  1520. mgr:
  1521. description: A spec for mgr related options
  1522. nullable: true
  1523. properties:
  1524. allowMultiplePerNode:
  1525. description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
  1526. type: boolean
  1527. count:
  1528. description: Count is the number of manager to run
  1529. maximum: 2
  1530. minimum: 0
  1531. type: integer
  1532. modules:
  1533. description: Modules is the list of ceph manager modules to enable/disable
  1534. items:
  1535. description: Module represents mgr modules that the user wants to enable or disable
  1536. properties:
  1537. enabled:
  1538. description: Enabled determines whether a module should be enabled or not
  1539. type: boolean
  1540. name:
  1541. description: Name is the name of the ceph manager module
  1542. type: string
  1543. type: object
  1544. nullable: true
  1545. type: array
  1546. type: object
  1547. mon:
  1548. description: A spec for mon related options
  1549. nullable: true
  1550. properties:
  1551. allowMultiplePerNode:
  1552. description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
  1553. type: boolean
  1554. count:
  1555. description: Count is the number of Ceph monitors
  1556. maximum: 9
  1557. minimum: 0
  1558. type: integer
  1559. failureDomainLabel:
  1560. type: string
  1561. stretchCluster:
  1562. description: StretchCluster is the stretch cluster specification
  1563. properties:
  1564. failureDomainLabel:
  1565. description: 'FailureDomainLabel the failure domain name (e,g: zone)'
  1566. type: string
  1567. subFailureDomain:
  1568. description: SubFailureDomain is the failure domain within a zone
  1569. type: string
  1570. zones:
  1571. description: Zones is the list of zones
  1572. items:
  1573. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  1574. properties:
  1575. arbiter:
  1576. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  1577. type: boolean
  1578. name:
  1579. description: Name is the name of the zone
  1580. type: string
  1581. volumeClaimTemplate:
  1582. description: VolumeClaimTemplate is the PVC template
  1583. properties:
  1584. apiVersion:
  1585. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1586. type: string
  1587. kind:
  1588. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1589. type: string
  1590. metadata:
  1591. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1592. properties:
  1593. annotations:
  1594. additionalProperties:
  1595. type: string
  1596. type: object
  1597. finalizers:
  1598. items:
  1599. type: string
  1600. type: array
  1601. labels:
  1602. additionalProperties:
  1603. type: string
  1604. type: object
  1605. name:
  1606. type: string
  1607. namespace:
  1608. type: string
  1609. type: object
  1610. spec:
  1611. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1612. properties:
  1613. accessModes:
  1614. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1615. items:
  1616. type: string
  1617. type: array
  1618. dataSource:
  1619. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  1620. properties:
  1621. apiGroup:
  1622. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1623. type: string
  1624. kind:
  1625. description: Kind is the type of resource being referenced
  1626. type: string
  1627. name:
  1628. description: Name is the name of resource being referenced
  1629. type: string
  1630. required:
  1631. - kind
  1632. - name
  1633. type: object
  1634. x-kubernetes-map-type: atomic
  1635. dataSourceRef:
  1636. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  1637. properties:
  1638. apiGroup:
  1639. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1640. type: string
  1641. kind:
  1642. description: Kind is the type of resource being referenced
  1643. type: string
  1644. name:
  1645. description: Name is the name of resource being referenced
  1646. type: string
  1647. namespace:
  1648. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  1649. type: string
  1650. required:
  1651. - kind
  1652. - name
  1653. type: object
  1654. resources:
  1655. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1656. properties:
  1657. claims:
  1658. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  1659. items:
  1660. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1661. properties:
  1662. name:
  1663. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  1664. type: string
  1665. required:
  1666. - name
  1667. type: object
  1668. type: array
  1669. x-kubernetes-list-map-keys:
  1670. - name
  1671. x-kubernetes-list-type: map
  1672. limits:
  1673. additionalProperties:
  1674. anyOf:
  1675. - type: integer
  1676. - type: string
  1677. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1678. x-kubernetes-int-or-string: true
  1679. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1680. type: object
  1681. requests:
  1682. additionalProperties:
  1683. anyOf:
  1684. - type: integer
  1685. - type: string
  1686. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1687. x-kubernetes-int-or-string: true
  1688. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1689. type: object
  1690. type: object
  1691. selector:
  1692. description: selector is a label query over volumes to consider for binding.
  1693. properties:
  1694. matchExpressions:
  1695. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1696. items:
  1697. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1698. properties:
  1699. key:
  1700. description: key is the label key that the selector applies to.
  1701. type: string
  1702. operator:
  1703. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1704. type: string
  1705. values:
  1706. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1707. items:
  1708. type: string
  1709. type: array
  1710. required:
  1711. - key
  1712. - operator
  1713. type: object
  1714. type: array
  1715. matchLabels:
  1716. additionalProperties:
  1717. type: string
  1718. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1719. type: object
  1720. type: object
  1721. x-kubernetes-map-type: atomic
  1722. storageClassName:
  1723. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1724. type: string
  1725. volumeMode:
  1726. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1727. type: string
  1728. volumeName:
  1729. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1730. type: string
  1731. type: object
  1732. status:
  1733. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1734. properties:
  1735. accessModes:
  1736. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1737. items:
  1738. type: string
  1739. type: array
  1740. allocatedResourceStatuses:
  1741. additionalProperties:
  1742. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  1743. type: string
  1744. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1745. type: object
  1746. x-kubernetes-map-type: granular
  1747. allocatedResources:
  1748. additionalProperties:
  1749. anyOf:
  1750. - type: integer
  1751. - type: string
  1752. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1753. x-kubernetes-int-or-string: true
  1754. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1755. type: object
  1756. capacity:
  1757. additionalProperties:
  1758. anyOf:
  1759. - type: integer
  1760. - type: string
  1761. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1762. x-kubernetes-int-or-string: true
  1763. description: capacity represents the actual resources of the underlying volume.
  1764. type: object
  1765. conditions:
  1766. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  1767. items:
  1768. description: PersistentVolumeClaimCondition contains details about state of pvc
  1769. properties:
  1770. lastProbeTime:
  1771. description: lastProbeTime is the time we probed the condition.
  1772. format: date-time
  1773. type: string
  1774. lastTransitionTime:
  1775. description: lastTransitionTime is the time the condition transitioned from one status to another.
  1776. format: date-time
  1777. type: string
  1778. message:
  1779. description: message is the human-readable message indicating details about last transition.
  1780. type: string
  1781. reason:
  1782. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  1783. type: string
  1784. status:
  1785. type: string
  1786. type:
  1787. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  1788. type: string
  1789. required:
  1790. - status
  1791. - type
  1792. type: object
  1793. type: array
  1794. phase:
  1795. description: phase represents the current phase of PersistentVolumeClaim.
  1796. type: string
  1797. type: object
  1798. type: object
  1799. x-kubernetes-preserve-unknown-fields: true
  1800. type: object
  1801. nullable: true
  1802. type: array
  1803. type: object
  1804. volumeClaimTemplate:
  1805. description: VolumeClaimTemplate is the PVC definition
  1806. properties:
  1807. apiVersion:
  1808. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1809. type: string
  1810. kind:
  1811. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1812. type: string
  1813. metadata:
  1814. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1815. properties:
  1816. annotations:
  1817. additionalProperties:
  1818. type: string
  1819. type: object
  1820. finalizers:
  1821. items:
  1822. type: string
  1823. type: array
  1824. labels:
  1825. additionalProperties:
  1826. type: string
  1827. type: object
  1828. name:
  1829. type: string
  1830. namespace:
  1831. type: string
  1832. type: object
  1833. spec:
  1834. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1835. properties:
  1836. accessModes:
  1837. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1838. items:
  1839. type: string
  1840. type: array
  1841. dataSource:
  1842. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  1843. properties:
  1844. apiGroup:
  1845. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1846. type: string
  1847. kind:
  1848. description: Kind is the type of resource being referenced
  1849. type: string
  1850. name:
  1851. description: Name is the name of resource being referenced
  1852. type: string
  1853. required:
  1854. - kind
  1855. - name
  1856. type: object
  1857. x-kubernetes-map-type: atomic
  1858. dataSourceRef:
  1859. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  1860. properties:
  1861. apiGroup:
  1862. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  1863. type: string
  1864. kind:
  1865. description: Kind is the type of resource being referenced
  1866. type: string
  1867. name:
  1868. description: Name is the name of resource being referenced
  1869. type: string
  1870. namespace:
  1871. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  1872. type: string
  1873. required:
  1874. - kind
  1875. - name
  1876. type: object
  1877. resources:
  1878. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1879. properties:
  1880. claims:
  1881. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  1882. items:
  1883. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  1884. properties:
  1885. name:
  1886. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  1887. type: string
  1888. required:
  1889. - name
  1890. type: object
  1891. type: array
  1892. x-kubernetes-list-map-keys:
  1893. - name
  1894. x-kubernetes-list-type: map
  1895. limits:
  1896. additionalProperties:
  1897. anyOf:
  1898. - type: integer
  1899. - type: string
  1900. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1901. x-kubernetes-int-or-string: true
  1902. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1903. type: object
  1904. requests:
  1905. additionalProperties:
  1906. anyOf:
  1907. - type: integer
  1908. - type: string
  1909. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1910. x-kubernetes-int-or-string: true
  1911. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1912. type: object
  1913. type: object
  1914. selector:
  1915. description: selector is a label query over volumes to consider for binding.
  1916. properties:
  1917. matchExpressions:
  1918. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1919. items:
  1920. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1921. properties:
  1922. key:
  1923. description: key is the label key that the selector applies to.
  1924. type: string
  1925. operator:
  1926. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1927. type: string
  1928. values:
  1929. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1930. items:
  1931. type: string
  1932. type: array
  1933. required:
  1934. - key
  1935. - operator
  1936. type: object
  1937. type: array
  1938. matchLabels:
  1939. additionalProperties:
  1940. type: string
  1941. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1942. type: object
  1943. type: object
  1944. x-kubernetes-map-type: atomic
  1945. storageClassName:
  1946. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1947. type: string
  1948. volumeMode:
  1949. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  1950. type: string
  1951. volumeName:
  1952. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  1953. type: string
  1954. type: object
  1955. status:
  1956. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  1957. properties:
  1958. accessModes:
  1959. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1960. items:
  1961. type: string
  1962. type: array
  1963. allocatedResourceStatuses:
  1964. additionalProperties:
  1965. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  1966. type: string
  1967. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1968. type: object
  1969. x-kubernetes-map-type: granular
  1970. allocatedResources:
  1971. additionalProperties:
  1972. anyOf:
  1973. - type: integer
  1974. - type: string
  1975. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1976. x-kubernetes-int-or-string: true
  1977. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  1978. type: object
  1979. capacity:
  1980. additionalProperties:
  1981. anyOf:
  1982. - type: integer
  1983. - type: string
  1984. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1985. x-kubernetes-int-or-string: true
  1986. description: capacity represents the actual resources of the underlying volume.
  1987. type: object
  1988. conditions:
  1989. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  1990. items:
  1991. description: PersistentVolumeClaimCondition contains details about state of pvc
  1992. properties:
  1993. lastProbeTime:
  1994. description: lastProbeTime is the time we probed the condition.
  1995. format: date-time
  1996. type: string
  1997. lastTransitionTime:
  1998. description: lastTransitionTime is the time the condition transitioned from one status to another.
  1999. format: date-time
  2000. type: string
  2001. message:
  2002. description: message is the human-readable message indicating details about last transition.
  2003. type: string
  2004. reason:
  2005. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  2006. type: string
  2007. status:
  2008. type: string
  2009. type:
  2010. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  2011. type: string
  2012. required:
  2013. - status
  2014. - type
  2015. type: object
  2016. type: array
  2017. phase:
  2018. description: phase represents the current phase of PersistentVolumeClaim.
  2019. type: string
  2020. type: object
  2021. type: object
  2022. x-kubernetes-preserve-unknown-fields: true
  2023. zones:
  2024. description: Zones are specified when we want to provide zonal awareness to mons
  2025. items:
  2026. description: MonZoneSpec represents the specification of a zone in a Ceph Cluster
  2027. properties:
  2028. arbiter:
  2029. description: Arbiter determines if the zone contains the arbiter used for stretch cluster mode
  2030. type: boolean
  2031. name:
  2032. description: Name is the name of the zone
  2033. type: string
  2034. volumeClaimTemplate:
  2035. description: VolumeClaimTemplate is the PVC template
  2036. properties:
  2037. apiVersion:
  2038. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2039. type: string
  2040. kind:
  2041. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2042. type: string
  2043. metadata:
  2044. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  2045. properties:
  2046. annotations:
  2047. additionalProperties:
  2048. type: string
  2049. type: object
  2050. finalizers:
  2051. items:
  2052. type: string
  2053. type: array
  2054. labels:
  2055. additionalProperties:
  2056. type: string
  2057. type: object
  2058. name:
  2059. type: string
  2060. namespace:
  2061. type: string
  2062. type: object
  2063. spec:
  2064. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2065. properties:
  2066. accessModes:
  2067. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  2068. items:
  2069. type: string
  2070. type: array
  2071. dataSource:
  2072. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  2073. properties:
  2074. apiGroup:
  2075. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  2076. type: string
  2077. kind:
  2078. description: Kind is the type of resource being referenced
  2079. type: string
  2080. name:
  2081. description: Name is the name of resource being referenced
  2082. type: string
  2083. required:
  2084. - kind
  2085. - name
  2086. type: object
  2087. x-kubernetes-map-type: atomic
  2088. dataSourceRef:
  2089. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  2090. properties:
  2091. apiGroup:
  2092. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  2093. type: string
  2094. kind:
  2095. description: Kind is the type of resource being referenced
  2096. type: string
  2097. name:
  2098. description: Name is the name of resource being referenced
  2099. type: string
  2100. namespace:
  2101. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2102. type: string
  2103. required:
  2104. - kind
  2105. - name
  2106. type: object
  2107. resources:
  2108. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  2109. properties:
  2110. claims:
  2111. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  2112. items:
  2113. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  2114. properties:
  2115. name:
  2116. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  2117. type: string
  2118. required:
  2119. - name
  2120. type: object
  2121. type: array
  2122. x-kubernetes-list-map-keys:
  2123. - name
  2124. x-kubernetes-list-type: map
  2125. limits:
  2126. additionalProperties:
  2127. anyOf:
  2128. - type: integer
  2129. - type: string
  2130. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2131. x-kubernetes-int-or-string: true
  2132. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2133. type: object
  2134. requests:
  2135. additionalProperties:
  2136. anyOf:
  2137. - type: integer
  2138. - type: string
  2139. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2140. x-kubernetes-int-or-string: true
  2141. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2142. type: object
  2143. type: object
  2144. selector:
  2145. description: selector is a label query over volumes to consider for binding.
  2146. properties:
  2147. matchExpressions:
  2148. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2149. items:
  2150. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2151. properties:
  2152. key:
  2153. description: key is the label key that the selector applies to.
  2154. type: string
  2155. operator:
  2156. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2157. type: string
  2158. values:
  2159. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2160. items:
  2161. type: string
  2162. type: array
  2163. required:
  2164. - key
  2165. - operator
  2166. type: object
  2167. type: array
  2168. matchLabels:
  2169. additionalProperties:
  2170. type: string
  2171. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2172. type: object
  2173. type: object
  2174. x-kubernetes-map-type: atomic
  2175. storageClassName:
  2176. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  2177. type: string
  2178. volumeMode:
  2179. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  2180. type: string
  2181. volumeName:
  2182. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  2183. type: string
  2184. type: object
  2185. status:
  2186. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2187. properties:
  2188. accessModes:
  2189. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  2190. items:
  2191. type: string
  2192. type: array
  2193. allocatedResourceStatuses:
  2194. additionalProperties:
  2195. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  2196. type: string
  2197. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  2198. type: object
  2199. x-kubernetes-map-type: granular
  2200. allocatedResources:
  2201. additionalProperties:
  2202. anyOf:
  2203. - type: integer
  2204. - type: string
  2205. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2206. x-kubernetes-int-or-string: true
  2207. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  2208. type: object
  2209. capacity:
  2210. additionalProperties:
  2211. anyOf:
  2212. - type: integer
  2213. - type: string
  2214. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2215. x-kubernetes-int-or-string: true
  2216. description: capacity represents the actual resources of the underlying volume.
  2217. type: object
  2218. conditions:
  2219. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  2220. items:
  2221. description: PersistentVolumeClaimCondition contains details about state of pvc
  2222. properties:
  2223. lastProbeTime:
  2224. description: lastProbeTime is the time we probed the condition.
  2225. format: date-time
  2226. type: string
  2227. lastTransitionTime:
  2228. description: lastTransitionTime is the time the condition transitioned from one status to another.
  2229. format: date-time
  2230. type: string
  2231. message:
  2232. description: message is the human-readable message indicating details about last transition.
  2233. type: string
  2234. reason:
  2235. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  2236. type: string
  2237. status:
  2238. type: string
  2239. type:
  2240. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  2241. type: string
  2242. required:
  2243. - status
  2244. - type
  2245. type: object
  2246. type: array
  2247. phase:
  2248. description: phase represents the current phase of PersistentVolumeClaim.
  2249. type: string
  2250. type: object
  2251. type: object
  2252. x-kubernetes-preserve-unknown-fields: true
  2253. type: object
  2254. type: array
  2255. type: object
  2256. monitoring:
  2257. description: Prometheus based Monitoring settings
  2258. nullable: true
  2259. properties:
  2260. enabled:
  2261. description: Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus types must exist or the creation will fail. Default is false.
  2262. type: boolean
  2263. externalMgrEndpoints:
  2264. description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
  2265. items:
  2266. description: EndpointAddress is a tuple that describes single IP address.
  2267. properties:
  2268. hostname:
  2269. description: The Hostname of this endpoint
  2270. type: string
  2271. ip:
  2272. description: The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).
  2273. type: string
  2274. nodeName:
  2275. description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.'
  2276. type: string
  2277. targetRef:
  2278. description: Reference to object providing the endpoint.
  2279. properties:
  2280. apiVersion:
  2281. description: API version of the referent.
  2282. type: string
  2283. fieldPath:
  2284. description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
  2285. type: string
  2286. kind:
  2287. description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2288. type: string
  2289. name:
  2290. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2291. type: string
  2292. namespace:
  2293. description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2294. type: string
  2295. resourceVersion:
  2296. description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2297. type: string
  2298. uid:
  2299. description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2300. type: string
  2301. type: object
  2302. x-kubernetes-map-type: atomic
  2303. required:
  2304. - ip
  2305. type: object
  2306. x-kubernetes-map-type: atomic
  2307. nullable: true
  2308. type: array
  2309. externalMgrPrometheusPort:
  2310. description: ExternalMgrPrometheusPort Prometheus exporter port
  2311. maximum: 65535
  2312. minimum: 0
  2313. type: integer
  2314. interval:
  2315. description: Interval determines prometheus scrape interval
  2316. type: string
  2317. metricsDisabled:
  2318. description: Whether to disable the metrics reported by Ceph. If false, the prometheus mgr module and Ceph exporter are enabled. If true, the prometheus mgr module and Ceph exporter are both disabled. Default is false.
  2319. type: boolean
  2320. port:
  2321. description: Port is the prometheus server port
  2322. maximum: 65535
  2323. minimum: 0
  2324. type: integer
  2325. type: object
  2326. network:
  2327. description: Network related configuration
  2328. nullable: true
  2329. properties:
  2330. connections:
  2331. description: Settings for network connections such as compression and encryption across the wire.
  2332. nullable: true
  2333. properties:
  2334. compression:
  2335. description: Compression settings for the network connections.
  2336. nullable: true
  2337. properties:
  2338. enabled:
  2339. description: Whether to compress the data in transit across the wire. The default is not set. Requires Ceph Quincy (v17) or newer.
  2340. type: boolean
  2341. type: object
  2342. encryption:
  2343. description: Encryption settings for the network connections.
  2344. nullable: true
  2345. properties:
  2346. enabled:
  2347. description: Whether to encrypt the data in transit across the wire to prevent eavesdropping the data on the network. The default is not set. Even if encryption is not enabled, clients still establish a strong initial authentication for the connection and data integrity is still validated with a crc check. When encryption is enabled, all communication between clients and Ceph daemons, or between Ceph daemons will be encrypted.
  2348. type: boolean
  2349. type: object
  2350. requireMsgr2:
  2351. description: Whether to require msgr2 (port 3300) even if compression or encryption are not enabled. If true, the msgr1 port (6789) will be disabled. Requires a kernel that supports msgr2 (kernel 5.11 or CentOS 8.4 or newer).
  2352. type: boolean
  2353. type: object
  2354. dualStack:
  2355. description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
  2356. type: boolean
  2357. hostNetwork:
  2358. description: HostNetwork to enable host network
  2359. type: boolean
  2360. ipFamily:
  2361. description: IPFamily is the single stack IPv6 or IPv4 protocol
  2362. enum:
  2363. - IPv4
  2364. - IPv6
  2365. nullable: true
  2366. type: string
  2367. multiClusterService:
  2368. description: Enable multiClusterService to export the Services between peer clusters
  2369. properties:
  2370. clusterID:
  2371. description: 'ClusterID uniquely identifies a cluster. It is used as a prefix to nslookup exported services. For example: <clusterid>.<svc>.<ns>.svc.clusterset.local'
  2372. type: string
  2373. enabled:
  2374. description: Enable multiClusterService to export the mon and OSD services to peer cluster. Ensure that peer clusters are connected using an MCS API compatible application, like Globalnet Submariner.
  2375. type: boolean
  2376. type: object
  2377. provider:
  2378. description: Provider is what provides network connectivity to the cluster e.g. "host" or "multus"
  2379. nullable: true
  2380. type: string
  2381. selectors:
  2382. additionalProperties:
  2383. type: string
  2384. description: Selectors string values describe what networks will be used to connect the cluster. Meanwhile the keys describe each network respective responsibilities or any metadata storage provider decide.
  2385. nullable: true
  2386. type: object
  2387. type: object
  2388. x-kubernetes-preserve-unknown-fields: true
  2389. placement:
  2390. additionalProperties:
  2391. description: Placement is the placement for an object
  2392. properties:
  2393. nodeAffinity:
  2394. description: NodeAffinity is a group of node affinity scheduling rules
  2395. properties:
  2396. preferredDuringSchedulingIgnoredDuringExecution:
  2397. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  2398. items:
  2399. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  2400. properties:
  2401. preference:
  2402. description: A node selector term, associated with the corresponding weight.
  2403. properties:
  2404. matchExpressions:
  2405. description: A list of node selector requirements by node's labels.
  2406. items:
  2407. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2408. properties:
  2409. key:
  2410. description: The label key that the selector applies to.
  2411. type: string
  2412. operator:
  2413. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2414. type: string
  2415. values:
  2416. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2417. items:
  2418. type: string
  2419. type: array
  2420. required:
  2421. - key
  2422. - operator
  2423. type: object
  2424. type: array
  2425. matchFields:
  2426. description: A list of node selector requirements by node's fields.
  2427. items:
  2428. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2429. properties:
  2430. key:
  2431. description: The label key that the selector applies to.
  2432. type: string
  2433. operator:
  2434. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2435. type: string
  2436. values:
  2437. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2438. items:
  2439. type: string
  2440. type: array
  2441. required:
  2442. - key
  2443. - operator
  2444. type: object
  2445. type: array
  2446. type: object
  2447. x-kubernetes-map-type: atomic
  2448. weight:
  2449. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  2450. format: int32
  2451. type: integer
  2452. required:
  2453. - preference
  2454. - weight
  2455. type: object
  2456. type: array
  2457. requiredDuringSchedulingIgnoredDuringExecution:
  2458. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  2459. properties:
  2460. nodeSelectorTerms:
  2461. description: Required. A list of node selector terms. The terms are ORed.
  2462. items:
  2463. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  2464. properties:
  2465. matchExpressions:
  2466. description: A list of node selector requirements by node's labels.
  2467. items:
  2468. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2469. properties:
  2470. key:
  2471. description: The label key that the selector applies to.
  2472. type: string
  2473. operator:
  2474. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2475. type: string
  2476. values:
  2477. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2478. items:
  2479. type: string
  2480. type: array
  2481. required:
  2482. - key
  2483. - operator
  2484. type: object
  2485. type: array
  2486. matchFields:
  2487. description: A list of node selector requirements by node's fields.
  2488. items:
  2489. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2490. properties:
  2491. key:
  2492. description: The label key that the selector applies to.
  2493. type: string
  2494. operator:
  2495. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2496. type: string
  2497. values:
  2498. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2499. items:
  2500. type: string
  2501. type: array
  2502. required:
  2503. - key
  2504. - operator
  2505. type: object
  2506. type: array
  2507. type: object
  2508. x-kubernetes-map-type: atomic
  2509. type: array
  2510. required:
  2511. - nodeSelectorTerms
  2512. type: object
  2513. x-kubernetes-map-type: atomic
  2514. type: object
  2515. podAffinity:
  2516. description: PodAffinity is a group of inter pod affinity scheduling rules
  2517. properties:
  2518. preferredDuringSchedulingIgnoredDuringExecution:
  2519. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2520. items:
  2521. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2522. properties:
  2523. podAffinityTerm:
  2524. description: Required. A pod affinity term, associated with the corresponding weight.
  2525. properties:
  2526. labelSelector:
  2527. description: A label query over a set of resources, in this case pods.
  2528. properties:
  2529. matchExpressions:
  2530. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2531. items:
  2532. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2533. properties:
  2534. key:
  2535. description: key is the label key that the selector applies to.
  2536. type: string
  2537. operator:
  2538. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2539. type: string
  2540. values:
  2541. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2542. items:
  2543. type: string
  2544. type: array
  2545. required:
  2546. - key
  2547. - operator
  2548. type: object
  2549. type: array
  2550. matchLabels:
  2551. additionalProperties:
  2552. type: string
  2553. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2554. type: object
  2555. type: object
  2556. x-kubernetes-map-type: atomic
  2557. namespaceSelector:
  2558. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2559. properties:
  2560. matchExpressions:
  2561. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2562. items:
  2563. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2564. properties:
  2565. key:
  2566. description: key is the label key that the selector applies to.
  2567. type: string
  2568. operator:
  2569. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2570. type: string
  2571. values:
  2572. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2573. items:
  2574. type: string
  2575. type: array
  2576. required:
  2577. - key
  2578. - operator
  2579. type: object
  2580. type: array
  2581. matchLabels:
  2582. additionalProperties:
  2583. type: string
  2584. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2585. type: object
  2586. type: object
  2587. x-kubernetes-map-type: atomic
  2588. namespaces:
  2589. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2590. items:
  2591. type: string
  2592. type: array
  2593. topologyKey:
  2594. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2595. type: string
  2596. required:
  2597. - topologyKey
  2598. type: object
  2599. weight:
  2600. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2601. format: int32
  2602. type: integer
  2603. required:
  2604. - podAffinityTerm
  2605. - weight
  2606. type: object
  2607. type: array
  2608. requiredDuringSchedulingIgnoredDuringExecution:
  2609. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2610. items:
  2611. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2612. properties:
  2613. labelSelector:
  2614. description: A label query over a set of resources, in this case pods.
  2615. properties:
  2616. matchExpressions:
  2617. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2618. items:
  2619. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2620. properties:
  2621. key:
  2622. description: key is the label key that the selector applies to.
  2623. type: string
  2624. operator:
  2625. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2626. type: string
  2627. values:
  2628. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2629. items:
  2630. type: string
  2631. type: array
  2632. required:
  2633. - key
  2634. - operator
  2635. type: object
  2636. type: array
  2637. matchLabels:
  2638. additionalProperties:
  2639. type: string
  2640. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2641. type: object
  2642. type: object
  2643. x-kubernetes-map-type: atomic
  2644. namespaceSelector:
  2645. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2646. properties:
  2647. matchExpressions:
  2648. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2649. items:
  2650. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2651. properties:
  2652. key:
  2653. description: key is the label key that the selector applies to.
  2654. type: string
  2655. operator:
  2656. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2657. type: string
  2658. values:
  2659. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2660. items:
  2661. type: string
  2662. type: array
  2663. required:
  2664. - key
  2665. - operator
  2666. type: object
  2667. type: array
  2668. matchLabels:
  2669. additionalProperties:
  2670. type: string
  2671. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2672. type: object
  2673. type: object
  2674. x-kubernetes-map-type: atomic
  2675. namespaces:
  2676. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2677. items:
  2678. type: string
  2679. type: array
  2680. topologyKey:
  2681. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2682. type: string
  2683. required:
  2684. - topologyKey
  2685. type: object
  2686. type: array
  2687. type: object
  2688. podAntiAffinity:
  2689. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  2690. properties:
  2691. preferredDuringSchedulingIgnoredDuringExecution:
  2692. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2693. items:
  2694. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2695. properties:
  2696. podAffinityTerm:
  2697. description: Required. A pod affinity term, associated with the corresponding weight.
  2698. properties:
  2699. labelSelector:
  2700. description: A label query over a set of resources, in this case pods.
  2701. properties:
  2702. matchExpressions:
  2703. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2704. items:
  2705. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2706. properties:
  2707. key:
  2708. description: key is the label key that the selector applies to.
  2709. type: string
  2710. operator:
  2711. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2712. type: string
  2713. values:
  2714. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2715. items:
  2716. type: string
  2717. type: array
  2718. required:
  2719. - key
  2720. - operator
  2721. type: object
  2722. type: array
  2723. matchLabels:
  2724. additionalProperties:
  2725. type: string
  2726. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2727. type: object
  2728. type: object
  2729. x-kubernetes-map-type: atomic
  2730. namespaceSelector:
  2731. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2732. properties:
  2733. matchExpressions:
  2734. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2735. items:
  2736. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2737. properties:
  2738. key:
  2739. description: key is the label key that the selector applies to.
  2740. type: string
  2741. operator:
  2742. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2743. type: string
  2744. values:
  2745. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2746. items:
  2747. type: string
  2748. type: array
  2749. required:
  2750. - key
  2751. - operator
  2752. type: object
  2753. type: array
  2754. matchLabels:
  2755. additionalProperties:
  2756. type: string
  2757. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2758. type: object
  2759. type: object
  2760. x-kubernetes-map-type: atomic
  2761. namespaces:
  2762. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2763. items:
  2764. type: string
  2765. type: array
  2766. topologyKey:
  2767. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2768. type: string
  2769. required:
  2770. - topologyKey
  2771. type: object
  2772. weight:
  2773. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2774. format: int32
  2775. type: integer
  2776. required:
  2777. - podAffinityTerm
  2778. - weight
  2779. type: object
  2780. type: array
  2781. requiredDuringSchedulingIgnoredDuringExecution:
  2782. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2783. items:
  2784. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2785. properties:
  2786. labelSelector:
  2787. description: A label query over a set of resources, in this case pods.
  2788. properties:
  2789. matchExpressions:
  2790. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2791. items:
  2792. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2793. properties:
  2794. key:
  2795. description: key is the label key that the selector applies to.
  2796. type: string
  2797. operator:
  2798. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2799. type: string
  2800. values:
  2801. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2802. items:
  2803. type: string
  2804. type: array
  2805. required:
  2806. - key
  2807. - operator
  2808. type: object
  2809. type: array
  2810. matchLabels:
  2811. additionalProperties:
  2812. type: string
  2813. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2814. type: object
  2815. type: object
  2816. x-kubernetes-map-type: atomic
  2817. namespaceSelector:
  2818. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2819. properties:
  2820. matchExpressions:
  2821. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2822. items:
  2823. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2824. properties:
  2825. key:
  2826. description: key is the label key that the selector applies to.
  2827. type: string
  2828. operator:
  2829. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2830. type: string
  2831. values:
  2832. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2833. items:
  2834. type: string
  2835. type: array
  2836. required:
  2837. - key
  2838. - operator
  2839. type: object
  2840. type: array
  2841. matchLabels:
  2842. additionalProperties:
  2843. type: string
  2844. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2845. type: object
  2846. type: object
  2847. x-kubernetes-map-type: atomic
  2848. namespaces:
  2849. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2850. items:
  2851. type: string
  2852. type: array
  2853. topologyKey:
  2854. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2855. type: string
  2856. required:
  2857. - topologyKey
  2858. type: object
  2859. type: array
  2860. type: object
  2861. tolerations:
  2862. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  2863. items:
  2864. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  2865. properties:
  2866. effect:
  2867. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  2868. type: string
  2869. key:
  2870. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  2871. type: string
  2872. operator:
  2873. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  2874. type: string
  2875. tolerationSeconds:
  2876. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  2877. format: int64
  2878. type: integer
  2879. value:
  2880. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  2881. type: string
  2882. type: object
  2883. type: array
  2884. topologySpreadConstraints:
  2885. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  2886. items:
  2887. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  2888. properties:
  2889. labelSelector:
  2890. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  2891. properties:
  2892. matchExpressions:
  2893. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2894. items:
  2895. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2896. properties:
  2897. key:
  2898. description: key is the label key that the selector applies to.
  2899. type: string
  2900. operator:
  2901. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2902. type: string
  2903. values:
  2904. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2905. items:
  2906. type: string
  2907. type: array
  2908. required:
  2909. - key
  2910. - operator
  2911. type: object
  2912. type: array
  2913. matchLabels:
  2914. additionalProperties:
  2915. type: string
  2916. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2917. type: object
  2918. type: object
  2919. x-kubernetes-map-type: atomic
  2920. matchLabelKeys:
  2921. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  2922. items:
  2923. type: string
  2924. type: array
  2925. x-kubernetes-list-type: atomic
  2926. maxSkew:
  2927. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  2928. format: int32
  2929. type: integer
  2930. minDomains:
  2931. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  2932. format: int32
  2933. type: integer
  2934. nodeAffinityPolicy:
  2935. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2936. type: string
  2937. nodeTaintsPolicy:
  2938. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2939. type: string
  2940. topologyKey:
  2941. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  2942. type: string
  2943. whenUnsatisfiable:
  2944. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  2945. type: string
  2946. required:
  2947. - maxSkew
  2948. - topologyKey
  2949. - whenUnsatisfiable
  2950. type: object
  2951. type: array
  2952. type: object
  2953. description: The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).
  2954. nullable: true
  2955. type: object
  2956. x-kubernetes-preserve-unknown-fields: true
  2957. priorityClassNames:
  2958. additionalProperties:
  2959. type: string
  2960. description: PriorityClassNames sets priority classes on components
  2961. nullable: true
  2962. type: object
  2963. x-kubernetes-preserve-unknown-fields: true
  2964. removeOSDsIfOutAndSafeToRemove:
  2965. description: Remove the OSD that is out and safe to remove only if this option is true
  2966. type: boolean
  2967. resources:
  2968. additionalProperties:
  2969. description: ResourceRequirements describes the compute resource requirements.
  2970. properties:
  2971. claims:
  2972. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  2973. items:
  2974. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  2975. properties:
  2976. name:
  2977. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  2978. type: string
  2979. required:
  2980. - name
  2981. type: object
  2982. type: array
  2983. x-kubernetes-list-map-keys:
  2984. - name
  2985. x-kubernetes-list-type: map
  2986. limits:
  2987. additionalProperties:
  2988. anyOf:
  2989. - type: integer
  2990. - type: string
  2991. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2992. x-kubernetes-int-or-string: true
  2993. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  2994. type: object
  2995. requests:
  2996. additionalProperties:
  2997. anyOf:
  2998. - type: integer
  2999. - type: string
  3000. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3001. x-kubernetes-int-or-string: true
  3002. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3003. type: object
  3004. type: object
  3005. description: Resources set resource requests and limits
  3006. nullable: true
  3007. type: object
  3008. x-kubernetes-preserve-unknown-fields: true
  3009. security:
  3010. description: Security represents security settings
  3011. nullable: true
  3012. properties:
  3013. keyRotation:
  3014. description: KeyRotation defines options for Key Rotation.
  3015. nullable: true
  3016. properties:
  3017. enabled:
  3018. default: false
  3019. description: Enabled represents whether the key rotation is enabled.
  3020. type: boolean
  3021. schedule:
  3022. description: Schedule represents the cron schedule for key rotation.
  3023. type: string
  3024. type: object
  3025. kms:
  3026. description: KeyManagementService is the main Key Management option
  3027. nullable: true
  3028. properties:
  3029. connectionDetails:
  3030. additionalProperties:
  3031. type: string
  3032. description: ConnectionDetails contains the KMS connection details (address, port etc)
  3033. nullable: true
  3034. type: object
  3035. x-kubernetes-preserve-unknown-fields: true
  3036. tokenSecretName:
  3037. description: TokenSecretName is the kubernetes secret containing the KMS token
  3038. type: string
  3039. type: object
  3040. type: object
  3041. skipUpgradeChecks:
  3042. description: SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
  3043. type: boolean
  3044. storage:
  3045. description: A spec for available storage in the cluster and how it should be used
  3046. nullable: true
  3047. properties:
  3048. config:
  3049. additionalProperties:
  3050. type: string
  3051. nullable: true
  3052. type: object
  3053. x-kubernetes-preserve-unknown-fields: true
  3054. deviceFilter:
  3055. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3056. type: string
  3057. devicePathFilter:
  3058. description: A regular expression to allow more fine-grained selection of devices with path names
  3059. type: string
  3060. devices:
  3061. description: List of devices to use as storage devices
  3062. items:
  3063. description: Device represents a disk to use in the cluster
  3064. properties:
  3065. config:
  3066. additionalProperties:
  3067. type: string
  3068. nullable: true
  3069. type: object
  3070. x-kubernetes-preserve-unknown-fields: true
  3071. fullpath:
  3072. type: string
  3073. name:
  3074. type: string
  3075. type: object
  3076. nullable: true
  3077. type: array
  3078. x-kubernetes-preserve-unknown-fields: true
  3079. nodes:
  3080. items:
  3081. description: Node is a storage nodes
  3082. properties:
  3083. config:
  3084. additionalProperties:
  3085. type: string
  3086. nullable: true
  3087. type: object
  3088. x-kubernetes-preserve-unknown-fields: true
  3089. deviceFilter:
  3090. description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
  3091. type: string
  3092. devicePathFilter:
  3093. description: A regular expression to allow more fine-grained selection of devices with path names
  3094. type: string
  3095. devices:
  3096. description: List of devices to use as storage devices
  3097. items:
  3098. description: Device represents a disk to use in the cluster
  3099. properties:
  3100. config:
  3101. additionalProperties:
  3102. type: string
  3103. nullable: true
  3104. type: object
  3105. x-kubernetes-preserve-unknown-fields: true
  3106. fullpath:
  3107. type: string
  3108. name:
  3109. type: string
  3110. type: object
  3111. nullable: true
  3112. type: array
  3113. x-kubernetes-preserve-unknown-fields: true
  3114. name:
  3115. type: string
  3116. resources:
  3117. description: ResourceRequirements describes the compute resource requirements.
  3118. nullable: true
  3119. properties:
  3120. claims:
  3121. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  3122. items:
  3123. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3124. properties:
  3125. name:
  3126. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  3127. type: string
  3128. required:
  3129. - name
  3130. type: object
  3131. type: array
  3132. x-kubernetes-list-map-keys:
  3133. - name
  3134. x-kubernetes-list-type: map
  3135. limits:
  3136. additionalProperties:
  3137. anyOf:
  3138. - type: integer
  3139. - type: string
  3140. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3141. x-kubernetes-int-or-string: true
  3142. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3143. type: object
  3144. requests:
  3145. additionalProperties:
  3146. anyOf:
  3147. - type: integer
  3148. - type: string
  3149. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3150. x-kubernetes-int-or-string: true
  3151. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3152. type: object
  3153. type: object
  3154. x-kubernetes-preserve-unknown-fields: true
  3155. useAllDevices:
  3156. description: Whether to consume all the storage devices found on a machine
  3157. type: boolean
  3158. volumeClaimTemplates:
  3159. description: PersistentVolumeClaims to use as storage
  3160. items:
  3161. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  3162. properties:
  3163. apiVersion:
  3164. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3165. type: string
  3166. kind:
  3167. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3168. type: string
  3169. metadata:
  3170. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  3171. properties:
  3172. annotations:
  3173. additionalProperties:
  3174. type: string
  3175. type: object
  3176. finalizers:
  3177. items:
  3178. type: string
  3179. type: array
  3180. labels:
  3181. additionalProperties:
  3182. type: string
  3183. type: object
  3184. name:
  3185. type: string
  3186. namespace:
  3187. type: string
  3188. type: object
  3189. spec:
  3190. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  3191. properties:
  3192. accessModes:
  3193. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  3194. items:
  3195. type: string
  3196. type: array
  3197. dataSource:
  3198. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  3199. properties:
  3200. apiGroup:
  3201. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  3202. type: string
  3203. kind:
  3204. description: Kind is the type of resource being referenced
  3205. type: string
  3206. name:
  3207. description: Name is the name of resource being referenced
  3208. type: string
  3209. required:
  3210. - kind
  3211. - name
  3212. type: object
  3213. x-kubernetes-map-type: atomic
  3214. dataSourceRef:
  3215. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  3216. properties:
  3217. apiGroup:
  3218. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  3219. type: string
  3220. kind:
  3221. description: Kind is the type of resource being referenced
  3222. type: string
  3223. name:
  3224. description: Name is the name of resource being referenced
  3225. type: string
  3226. namespace:
  3227. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  3228. type: string
  3229. required:
  3230. - kind
  3231. - name
  3232. type: object
  3233. resources:
  3234. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  3235. properties:
  3236. claims:
  3237. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  3238. items:
  3239. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  3240. properties:
  3241. name:
  3242. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  3243. type: string
  3244. required:
  3245. - name
  3246. type: object
  3247. type: array
  3248. x-kubernetes-list-map-keys:
  3249. - name
  3250. x-kubernetes-list-type: map
  3251. limits:
  3252. additionalProperties:
  3253. anyOf:
  3254. - type: integer
  3255. - type: string
  3256. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3257. x-kubernetes-int-or-string: true
  3258. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3259. type: object
  3260. requests:
  3261. additionalProperties:
  3262. anyOf:
  3263. - type: integer
  3264. - type: string
  3265. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3266. x-kubernetes-int-or-string: true
  3267. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  3268. type: object
  3269. type: object
  3270. selector:
  3271. description: selector is a label query over volumes to consider for binding.
  3272. properties:
  3273. matchExpressions:
  3274. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3275. items:
  3276. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3277. properties:
  3278. key:
  3279. description: key is the label key that the selector applies to.
  3280. type: string
  3281. operator:
  3282. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3283. type: string
  3284. values:
  3285. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3286. items:
  3287. type: string
  3288. type: array
  3289. required:
  3290. - key
  3291. - operator
  3292. type: object
  3293. type: array
  3294. matchLabels:
  3295. additionalProperties:
  3296. type: string
  3297. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3298. type: object
  3299. type: object
  3300. x-kubernetes-map-type: atomic
  3301. storageClassName:
  3302. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  3303. type: string
  3304. volumeMode:
  3305. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  3306. type: string
  3307. volumeName:
  3308. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  3309. type: string
  3310. type: object
  3311. status:
  3312. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  3313. properties:
  3314. accessModes:
  3315. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  3316. items:
  3317. type: string
  3318. type: array
  3319. allocatedResourceStatuses:
  3320. additionalProperties:
  3321. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  3322. type: string
  3323. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  3324. type: object
  3325. x-kubernetes-map-type: granular
  3326. allocatedResources:
  3327. additionalProperties:
  3328. anyOf:
  3329. - type: integer
  3330. - type: string
  3331. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3332. x-kubernetes-int-or-string: true
  3333. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  3334. type: object
  3335. capacity:
  3336. additionalProperties:
  3337. anyOf:
  3338. - type: integer
  3339. - type: string
  3340. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3341. x-kubernetes-int-or-string: true
  3342. description: capacity represents the actual resources of the underlying volume.
  3343. type: object
  3344. conditions:
  3345. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  3346. items:
  3347. description: PersistentVolumeClaimCondition contains details about state of pvc
  3348. properties:
  3349. lastProbeTime:
  3350. description: lastProbeTime is the time we probed the condition.
  3351. format: date-time
  3352. type: string
  3353. lastTransitionTime:
  3354. description: lastTransitionTime is the time the condition transitioned from one status to another.
  3355. format: date-time
  3356. type: string
  3357. message:
  3358. description: message is the human-readable message indicating details about last transition.
  3359. type: string
  3360. reason:
  3361. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  3362. type: string
  3363. status:
  3364. type: string
  3365. type:
  3366. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  3367. type: string
  3368. required:
  3369. - status
  3370. - type
  3371. type: object
  3372. type: array
  3373. phase:
  3374. description: phase represents the current phase of PersistentVolumeClaim.
  3375. type: string
  3376. type: object
  3377. type: object
  3378. type: array
  3379. type: object
  3380. nullable: true
  3381. type: array
  3382. onlyApplyOSDPlacement:
  3383. type: boolean
  3384. storageClassDeviceSets:
  3385. items:
  3386. description: StorageClassDeviceSet is a storage class device set
  3387. properties:
  3388. config:
  3389. additionalProperties:
  3390. type: string
  3391. description: Provider-specific device configuration
  3392. nullable: true
  3393. type: object
  3394. x-kubernetes-preserve-unknown-fields: true
  3395. count:
  3396. description: Count is the number of devices in this set
  3397. minimum: 1
  3398. type: integer
  3399. encrypted:
  3400. description: Whether to encrypt the deviceSet
  3401. type: boolean
  3402. name:
  3403. description: Name is a unique identifier for the set
  3404. type: string
  3405. placement:
  3406. description: Placement is the placement for an object
  3407. nullable: true
  3408. properties:
  3409. nodeAffinity:
  3410. description: NodeAffinity is a group of node affinity scheduling rules
  3411. properties:
  3412. preferredDuringSchedulingIgnoredDuringExecution:
  3413. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  3414. items:
  3415. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3416. properties:
  3417. preference:
  3418. description: A node selector term, associated with the corresponding weight.
  3419. properties:
  3420. matchExpressions:
  3421. description: A list of node selector requirements by node's labels.
  3422. items:
  3423. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3424. properties:
  3425. key:
  3426. description: The label key that the selector applies to.
  3427. type: string
  3428. operator:
  3429. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3430. type: string
  3431. values:
  3432. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3433. items:
  3434. type: string
  3435. type: array
  3436. required:
  3437. - key
  3438. - operator
  3439. type: object
  3440. type: array
  3441. matchFields:
  3442. description: A list of node selector requirements by node's fields.
  3443. items:
  3444. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3445. properties:
  3446. key:
  3447. description: The label key that the selector applies to.
  3448. type: string
  3449. operator:
  3450. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3451. type: string
  3452. values:
  3453. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3454. items:
  3455. type: string
  3456. type: array
  3457. required:
  3458. - key
  3459. - operator
  3460. type: object
  3461. type: array
  3462. type: object
  3463. x-kubernetes-map-type: atomic
  3464. weight:
  3465. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  3466. format: int32
  3467. type: integer
  3468. required:
  3469. - preference
  3470. - weight
  3471. type: object
  3472. type: array
  3473. requiredDuringSchedulingIgnoredDuringExecution:
  3474. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  3475. properties:
  3476. nodeSelectorTerms:
  3477. description: Required. A list of node selector terms. The terms are ORed.
  3478. items:
  3479. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  3480. properties:
  3481. matchExpressions:
  3482. description: A list of node selector requirements by node's labels.
  3483. items:
  3484. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3485. properties:
  3486. key:
  3487. description: The label key that the selector applies to.
  3488. type: string
  3489. operator:
  3490. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3491. type: string
  3492. values:
  3493. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3494. items:
  3495. type: string
  3496. type: array
  3497. required:
  3498. - key
  3499. - operator
  3500. type: object
  3501. type: array
  3502. matchFields:
  3503. description: A list of node selector requirements by node's fields.
  3504. items:
  3505. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3506. properties:
  3507. key:
  3508. description: The label key that the selector applies to.
  3509. type: string
  3510. operator:
  3511. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3512. type: string
  3513. values:
  3514. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3515. items:
  3516. type: string
  3517. type: array
  3518. required:
  3519. - key
  3520. - operator
  3521. type: object
  3522. type: array
  3523. type: object
  3524. x-kubernetes-map-type: atomic
  3525. type: array
  3526. required:
  3527. - nodeSelectorTerms
  3528. type: object
  3529. x-kubernetes-map-type: atomic
  3530. type: object
  3531. podAffinity:
  3532. description: PodAffinity is a group of inter pod affinity scheduling rules
  3533. properties:
  3534. preferredDuringSchedulingIgnoredDuringExecution:
  3535. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3536. items:
  3537. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3538. properties:
  3539. podAffinityTerm:
  3540. description: Required. A pod affinity term, associated with the corresponding weight.
  3541. properties:
  3542. labelSelector:
  3543. description: A label query over a set of resources, in this case pods.
  3544. properties:
  3545. matchExpressions:
  3546. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3547. items:
  3548. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3549. properties:
  3550. key:
  3551. description: key is the label key that the selector applies to.
  3552. type: string
  3553. operator:
  3554. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3555. type: string
  3556. values:
  3557. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3558. items:
  3559. type: string
  3560. type: array
  3561. required:
  3562. - key
  3563. - operator
  3564. type: object
  3565. type: array
  3566. matchLabels:
  3567. additionalProperties:
  3568. type: string
  3569. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3570. type: object
  3571. type: object
  3572. x-kubernetes-map-type: atomic
  3573. namespaceSelector:
  3574. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3575. properties:
  3576. matchExpressions:
  3577. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3578. items:
  3579. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3580. properties:
  3581. key:
  3582. description: key is the label key that the selector applies to.
  3583. type: string
  3584. operator:
  3585. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3586. type: string
  3587. values:
  3588. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3589. items:
  3590. type: string
  3591. type: array
  3592. required:
  3593. - key
  3594. - operator
  3595. type: object
  3596. type: array
  3597. matchLabels:
  3598. additionalProperties:
  3599. type: string
  3600. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3601. type: object
  3602. type: object
  3603. x-kubernetes-map-type: atomic
  3604. namespaces:
  3605. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3606. items:
  3607. type: string
  3608. type: array
  3609. topologyKey:
  3610. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3611. type: string
  3612. required:
  3613. - topologyKey
  3614. type: object
  3615. weight:
  3616. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3617. format: int32
  3618. type: integer
  3619. required:
  3620. - podAffinityTerm
  3621. - weight
  3622. type: object
  3623. type: array
  3624. requiredDuringSchedulingIgnoredDuringExecution:
  3625. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3626. items:
  3627. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3628. properties:
  3629. labelSelector:
  3630. description: A label query over a set of resources, in this case pods.
  3631. properties:
  3632. matchExpressions:
  3633. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3634. items:
  3635. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3636. properties:
  3637. key:
  3638. description: key is the label key that the selector applies to.
  3639. type: string
  3640. operator:
  3641. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3642. type: string
  3643. values:
  3644. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3645. items:
  3646. type: string
  3647. type: array
  3648. required:
  3649. - key
  3650. - operator
  3651. type: object
  3652. type: array
  3653. matchLabels:
  3654. additionalProperties:
  3655. type: string
  3656. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3657. type: object
  3658. type: object
  3659. x-kubernetes-map-type: atomic
  3660. namespaceSelector:
  3661. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3662. properties:
  3663. matchExpressions:
  3664. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3665. items:
  3666. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3667. properties:
  3668. key:
  3669. description: key is the label key that the selector applies to.
  3670. type: string
  3671. operator:
  3672. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3673. type: string
  3674. values:
  3675. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3676. items:
  3677. type: string
  3678. type: array
  3679. required:
  3680. - key
  3681. - operator
  3682. type: object
  3683. type: array
  3684. matchLabels:
  3685. additionalProperties:
  3686. type: string
  3687. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3688. type: object
  3689. type: object
  3690. x-kubernetes-map-type: atomic
  3691. namespaces:
  3692. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3693. items:
  3694. type: string
  3695. type: array
  3696. topologyKey:
  3697. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3698. type: string
  3699. required:
  3700. - topologyKey
  3701. type: object
  3702. type: array
  3703. type: object
  3704. podAntiAffinity:
  3705. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  3706. properties:
  3707. preferredDuringSchedulingIgnoredDuringExecution:
  3708. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3709. items:
  3710. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3711. properties:
  3712. podAffinityTerm:
  3713. description: Required. A pod affinity term, associated with the corresponding weight.
  3714. properties:
  3715. labelSelector:
  3716. description: A label query over a set of resources, in this case pods.
  3717. properties:
  3718. matchExpressions:
  3719. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3720. items:
  3721. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3722. properties:
  3723. key:
  3724. description: key is the label key that the selector applies to.
  3725. type: string
  3726. operator:
  3727. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3728. type: string
  3729. values:
  3730. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3731. items:
  3732. type: string
  3733. type: array
  3734. required:
  3735. - key
  3736. - operator
  3737. type: object
  3738. type: array
  3739. matchLabels:
  3740. additionalProperties:
  3741. type: string
  3742. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3743. type: object
  3744. type: object
  3745. x-kubernetes-map-type: atomic
  3746. namespaceSelector:
  3747. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3748. properties:
  3749. matchExpressions:
  3750. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3751. items:
  3752. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3753. properties:
  3754. key:
  3755. description: key is the label key that the selector applies to.
  3756. type: string
  3757. operator:
  3758. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3759. type: string
  3760. values:
  3761. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3762. items:
  3763. type: string
  3764. type: array
  3765. required:
  3766. - key
  3767. - operator
  3768. type: object
  3769. type: array
  3770. matchLabels:
  3771. additionalProperties:
  3772. type: string
  3773. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3774. type: object
  3775. type: object
  3776. x-kubernetes-map-type: atomic
  3777. namespaces:
  3778. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3779. items:
  3780. type: string
  3781. type: array
  3782. topologyKey:
  3783. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3784. type: string
  3785. required:
  3786. - topologyKey
  3787. type: object
  3788. weight:
  3789. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3790. format: int32
  3791. type: integer
  3792. required:
  3793. - podAffinityTerm
  3794. - weight
  3795. type: object
  3796. type: array
  3797. requiredDuringSchedulingIgnoredDuringExecution:
  3798. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3799. items:
  3800. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3801. properties:
  3802. labelSelector:
  3803. description: A label query over a set of resources, in this case pods.
  3804. properties:
  3805. matchExpressions:
  3806. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3807. items:
  3808. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3809. properties:
  3810. key:
  3811. description: key is the label key that the selector applies to.
  3812. type: string
  3813. operator:
  3814. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3815. type: string
  3816. values:
  3817. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3818. items:
  3819. type: string
  3820. type: array
  3821. required:
  3822. - key
  3823. - operator
  3824. type: object
  3825. type: array
  3826. matchLabels:
  3827. additionalProperties:
  3828. type: string
  3829. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3830. type: object
  3831. type: object
  3832. x-kubernetes-map-type: atomic
  3833. namespaceSelector:
  3834. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3835. properties:
  3836. matchExpressions:
  3837. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3838. items:
  3839. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3840. properties:
  3841. key:
  3842. description: key is the label key that the selector applies to.
  3843. type: string
  3844. operator:
  3845. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3846. type: string
  3847. values:
  3848. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3849. items:
  3850. type: string
  3851. type: array
  3852. required:
  3853. - key
  3854. - operator
  3855. type: object
  3856. type: array
  3857. matchLabels:
  3858. additionalProperties:
  3859. type: string
  3860. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3861. type: object
  3862. type: object
  3863. x-kubernetes-map-type: atomic
  3864. namespaces:
  3865. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3866. items:
  3867. type: string
  3868. type: array
  3869. topologyKey:
  3870. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3871. type: string
  3872. required:
  3873. - topologyKey
  3874. type: object
  3875. type: array
  3876. type: object
  3877. tolerations:
  3878. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  3879. items:
  3880. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  3881. properties:
  3882. effect:
  3883. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  3884. type: string
  3885. key:
  3886. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  3887. type: string
  3888. operator:
  3889. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  3890. type: string
  3891. tolerationSeconds:
  3892. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  3893. format: int64
  3894. type: integer
  3895. value:
  3896. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  3897. type: string
  3898. type: object
  3899. type: array
  3900. topologySpreadConstraints:
  3901. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  3902. items:
  3903. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  3904. properties:
  3905. labelSelector:
  3906. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  3907. properties:
  3908. matchExpressions:
  3909. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3910. items:
  3911. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3912. properties:
  3913. key:
  3914. description: key is the label key that the selector applies to.
  3915. type: string
  3916. operator:
  3917. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3918. type: string
  3919. values:
  3920. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3921. items:
  3922. type: string
  3923. type: array
  3924. required:
  3925. - key
  3926. - operator
  3927. type: object
  3928. type: array
  3929. matchLabels:
  3930. additionalProperties:
  3931. type: string
  3932. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3933. type: object
  3934. type: object
  3935. x-kubernetes-map-type: atomic
  3936. matchLabelKeys:
  3937. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  3938. items:
  3939. type: string
  3940. type: array
  3941. x-kubernetes-list-type: atomic
  3942. maxSkew:
  3943. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  3944. format: int32
  3945. type: integer
  3946. minDomains:
  3947. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  3948. format: int32
  3949. type: integer
  3950. nodeAffinityPolicy:
  3951. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  3952. type: string
  3953. nodeTaintsPolicy:
  3954. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  3955. type: string
  3956. topologyKey:
  3957. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  3958. type: string
  3959. whenUnsatisfiable:
  3960. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  3961. type: string
  3962. required:
  3963. - maxSkew
  3964. - topologyKey
  3965. - whenUnsatisfiable
  3966. type: object
  3967. type: array
  3968. type: object
  3969. x-kubernetes-preserve-unknown-fields: true
  3970. portable:
  3971. description: Portable represents OSD portability across the hosts
  3972. type: boolean
  3973. preparePlacement:
  3974. description: Placement is the placement for an object
  3975. nullable: true
  3976. properties:
  3977. nodeAffinity:
  3978. description: NodeAffinity is a group of node affinity scheduling rules
  3979. properties:
  3980. preferredDuringSchedulingIgnoredDuringExecution:
  3981. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  3982. items:
  3983. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3984. properties:
  3985. preference:
  3986. description: A node selector term, associated with the corresponding weight.
  3987. properties:
  3988. matchExpressions:
  3989. description: A list of node selector requirements by node's labels.
  3990. items:
  3991. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3992. properties:
  3993. key:
  3994. description: The label key that the selector applies to.
  3995. type: string
  3996. operator:
  3997. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3998. type: string
  3999. values:
  4000. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  4001. items:
  4002. type: string
  4003. type: array
  4004. required:
  4005. - key
  4006. - operator
  4007. type: object
  4008. type: array
  4009. matchFields:
  4010. description: A list of node selector requirements by node's fields.
  4011. items:
  4012. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4013. properties:
  4014. key:
  4015. description: The label key that the selector applies to.
  4016. type: string
  4017. operator:
  4018. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4019. type: string
  4020. values:
  4021. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  4022. items:
  4023. type: string
  4024. type: array
  4025. required:
  4026. - key
  4027. - operator
  4028. type: object
  4029. type: array
  4030. type: object
  4031. x-kubernetes-map-type: atomic
  4032. weight:
  4033. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  4034. format: int32
  4035. type: integer
  4036. required:
  4037. - preference
  4038. - weight
  4039. type: object
  4040. type: array
  4041. requiredDuringSchedulingIgnoredDuringExecution:
  4042. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  4043. properties:
  4044. nodeSelectorTerms:
  4045. description: Required. A list of node selector terms. The terms are ORed.
  4046. items:
  4047. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  4048. properties:
  4049. matchExpressions:
  4050. description: A list of node selector requirements by node's labels.
  4051. items:
  4052. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4053. properties:
  4054. key:
  4055. description: The label key that the selector applies to.
  4056. type: string
  4057. operator:
  4058. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4059. type: string
  4060. values:
  4061. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  4062. items:
  4063. type: string
  4064. type: array
  4065. required:
  4066. - key
  4067. - operator
  4068. type: object
  4069. type: array
  4070. matchFields:
  4071. description: A list of node selector requirements by node's fields.
  4072. items:
  4073. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4074. properties:
  4075. key:
  4076. description: The label key that the selector applies to.
  4077. type: string
  4078. operator:
  4079. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  4080. type: string
  4081. values:
  4082. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  4083. items:
  4084. type: string
  4085. type: array
  4086. required:
  4087. - key
  4088. - operator
  4089. type: object
  4090. type: array
  4091. type: object
  4092. x-kubernetes-map-type: atomic
  4093. type: array
  4094. required:
  4095. - nodeSelectorTerms
  4096. type: object
  4097. x-kubernetes-map-type: atomic
  4098. type: object
  4099. podAffinity:
  4100. description: PodAffinity is a group of inter pod affinity scheduling rules
  4101. properties:
  4102. preferredDuringSchedulingIgnoredDuringExecution:
  4103. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  4104. items:
  4105. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  4106. properties:
  4107. podAffinityTerm:
  4108. description: Required. A pod affinity term, associated with the corresponding weight.
  4109. properties:
  4110. labelSelector:
  4111. description: A label query over a set of resources, in this case pods.
  4112. properties:
  4113. matchExpressions:
  4114. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4115. items:
  4116. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4117. properties:
  4118. key:
  4119. description: key is the label key that the selector applies to.
  4120. type: string
  4121. operator:
  4122. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4123. type: string
  4124. values:
  4125. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4126. items:
  4127. type: string
  4128. type: array
  4129. required:
  4130. - key
  4131. - operator
  4132. type: object
  4133. type: array
  4134. matchLabels:
  4135. additionalProperties:
  4136. type: string
  4137. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4138. type: object
  4139. type: object
  4140. x-kubernetes-map-type: atomic
  4141. namespaceSelector:
  4142. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4143. properties:
  4144. matchExpressions:
  4145. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4146. items:
  4147. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4148. properties:
  4149. key:
  4150. description: key is the label key that the selector applies to.
  4151. type: string
  4152. operator:
  4153. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4154. type: string
  4155. values:
  4156. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4157. items:
  4158. type: string
  4159. type: array
  4160. required:
  4161. - key
  4162. - operator
  4163. type: object
  4164. type: array
  4165. matchLabels:
  4166. additionalProperties:
  4167. type: string
  4168. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4169. type: object
  4170. type: object
  4171. x-kubernetes-map-type: atomic
  4172. namespaces:
  4173. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4174. items:
  4175. type: string
  4176. type: array
  4177. topologyKey:
  4178. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4179. type: string
  4180. required:
  4181. - topologyKey
  4182. type: object
  4183. weight:
  4184. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4185. format: int32
  4186. type: integer
  4187. required:
  4188. - podAffinityTerm
  4189. - weight
  4190. type: object
  4191. type: array
  4192. requiredDuringSchedulingIgnoredDuringExecution:
  4193. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4194. items:
  4195. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  4196. properties:
  4197. labelSelector:
  4198. description: A label query over a set of resources, in this case pods.
  4199. properties:
  4200. matchExpressions:
  4201. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4202. items:
  4203. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4204. properties:
  4205. key:
  4206. description: key is the label key that the selector applies to.
  4207. type: string
  4208. operator:
  4209. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4210. type: string
  4211. values:
  4212. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4213. items:
  4214. type: string
  4215. type: array
  4216. required:
  4217. - key
  4218. - operator
  4219. type: object
  4220. type: array
  4221. matchLabels:
  4222. additionalProperties:
  4223. type: string
  4224. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4225. type: object
  4226. type: object
  4227. x-kubernetes-map-type: atomic
  4228. namespaceSelector:
  4229. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4230. properties:
  4231. matchExpressions:
  4232. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4233. items:
  4234. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4235. properties:
  4236. key:
  4237. description: key is the label key that the selector applies to.
  4238. type: string
  4239. operator:
  4240. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4241. type: string
  4242. values:
  4243. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4244. items:
  4245. type: string
  4246. type: array
  4247. required:
  4248. - key
  4249. - operator
  4250. type: object
  4251. type: array
  4252. matchLabels:
  4253. additionalProperties:
  4254. type: string
  4255. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4256. type: object
  4257. type: object
  4258. x-kubernetes-map-type: atomic
  4259. namespaces:
  4260. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4261. items:
  4262. type: string
  4263. type: array
  4264. topologyKey:
  4265. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4266. type: string
  4267. required:
  4268. - topologyKey
  4269. type: object
  4270. type: array
  4271. type: object
  4272. podAntiAffinity:
  4273. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  4274. properties:
  4275. preferredDuringSchedulingIgnoredDuringExecution:
  4276. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  4277. items:
  4278. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  4279. properties:
  4280. podAffinityTerm:
  4281. description: Required. A pod affinity term, associated with the corresponding weight.
  4282. properties:
  4283. labelSelector:
  4284. description: A label query over a set of resources, in this case pods.
  4285. properties:
  4286. matchExpressions:
  4287. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4288. items:
  4289. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4290. properties:
  4291. key:
  4292. description: key is the label key that the selector applies to.
  4293. type: string
  4294. operator:
  4295. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4296. type: string
  4297. values:
  4298. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4299. items:
  4300. type: string
  4301. type: array
  4302. required:
  4303. - key
  4304. - operator
  4305. type: object
  4306. type: array
  4307. matchLabels:
  4308. additionalProperties:
  4309. type: string
  4310. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4311. type: object
  4312. type: object
  4313. x-kubernetes-map-type: atomic
  4314. namespaceSelector:
  4315. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4316. properties:
  4317. matchExpressions:
  4318. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4319. items:
  4320. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4321. properties:
  4322. key:
  4323. description: key is the label key that the selector applies to.
  4324. type: string
  4325. operator:
  4326. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4327. type: string
  4328. values:
  4329. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4330. items:
  4331. type: string
  4332. type: array
  4333. required:
  4334. - key
  4335. - operator
  4336. type: object
  4337. type: array
  4338. matchLabels:
  4339. additionalProperties:
  4340. type: string
  4341. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4342. type: object
  4343. type: object
  4344. x-kubernetes-map-type: atomic
  4345. namespaces:
  4346. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4347. items:
  4348. type: string
  4349. type: array
  4350. topologyKey:
  4351. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4352. type: string
  4353. required:
  4354. - topologyKey
  4355. type: object
  4356. weight:
  4357. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  4358. format: int32
  4359. type: integer
  4360. required:
  4361. - podAffinityTerm
  4362. - weight
  4363. type: object
  4364. type: array
  4365. requiredDuringSchedulingIgnoredDuringExecution:
  4366. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  4367. items:
  4368. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  4369. properties:
  4370. labelSelector:
  4371. description: A label query over a set of resources, in this case pods.
  4372. properties:
  4373. matchExpressions:
  4374. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4375. items:
  4376. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4377. properties:
  4378. key:
  4379. description: key is the label key that the selector applies to.
  4380. type: string
  4381. operator:
  4382. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4383. type: string
  4384. values:
  4385. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4386. items:
  4387. type: string
  4388. type: array
  4389. required:
  4390. - key
  4391. - operator
  4392. type: object
  4393. type: array
  4394. matchLabels:
  4395. additionalProperties:
  4396. type: string
  4397. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4398. type: object
  4399. type: object
  4400. x-kubernetes-map-type: atomic
  4401. namespaceSelector:
  4402. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  4403. properties:
  4404. matchExpressions:
  4405. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4406. items:
  4407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4408. properties:
  4409. key:
  4410. description: key is the label key that the selector applies to.
  4411. type: string
  4412. operator:
  4413. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4414. type: string
  4415. values:
  4416. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4417. items:
  4418. type: string
  4419. type: array
  4420. required:
  4421. - key
  4422. - operator
  4423. type: object
  4424. type: array
  4425. matchLabels:
  4426. additionalProperties:
  4427. type: string
  4428. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4429. type: object
  4430. type: object
  4431. x-kubernetes-map-type: atomic
  4432. namespaces:
  4433. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  4434. items:
  4435. type: string
  4436. type: array
  4437. topologyKey:
  4438. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  4439. type: string
  4440. required:
  4441. - topologyKey
  4442. type: object
  4443. type: array
  4444. type: object
  4445. tolerations:
  4446. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  4447. items:
  4448. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  4449. properties:
  4450. effect:
  4451. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  4452. type: string
  4453. key:
  4454. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  4455. type: string
  4456. operator:
  4457. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  4458. type: string
  4459. tolerationSeconds:
  4460. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  4461. format: int64
  4462. type: integer
  4463. value:
  4464. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  4465. type: string
  4466. type: object
  4467. type: array
  4468. topologySpreadConstraints:
  4469. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  4470. items:
  4471. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  4472. properties:
  4473. labelSelector:
  4474. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  4475. properties:
  4476. matchExpressions:
  4477. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4478. items:
  4479. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4480. properties:
  4481. key:
  4482. description: key is the label key that the selector applies to.
  4483. type: string
  4484. operator:
  4485. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4486. type: string
  4487. values:
  4488. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4489. items:
  4490. type: string
  4491. type: array
  4492. required:
  4493. - key
  4494. - operator
  4495. type: object
  4496. type: array
  4497. matchLabels:
  4498. additionalProperties:
  4499. type: string
  4500. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4501. type: object
  4502. type: object
  4503. x-kubernetes-map-type: atomic
  4504. matchLabelKeys:
  4505. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  4506. items:
  4507. type: string
  4508. type: array
  4509. x-kubernetes-list-type: atomic
  4510. maxSkew:
  4511. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  4512. format: int32
  4513. type: integer
  4514. minDomains:
  4515. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  4516. format: int32
  4517. type: integer
  4518. nodeAffinityPolicy:
  4519. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4520. type: string
  4521. nodeTaintsPolicy:
  4522. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4523. type: string
  4524. topologyKey:
  4525. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  4526. type: string
  4527. whenUnsatisfiable:
  4528. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  4529. type: string
  4530. required:
  4531. - maxSkew
  4532. - topologyKey
  4533. - whenUnsatisfiable
  4534. type: object
  4535. type: array
  4536. type: object
  4537. x-kubernetes-preserve-unknown-fields: true
  4538. resources:
  4539. description: ResourceRequirements describes the compute resource requirements.
  4540. nullable: true
  4541. properties:
  4542. claims:
  4543. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4544. items:
  4545. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4546. properties:
  4547. name:
  4548. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4549. type: string
  4550. required:
  4551. - name
  4552. type: object
  4553. type: array
  4554. x-kubernetes-list-map-keys:
  4555. - name
  4556. x-kubernetes-list-type: map
  4557. limits:
  4558. additionalProperties:
  4559. anyOf:
  4560. - type: integer
  4561. - type: string
  4562. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4563. x-kubernetes-int-or-string: true
  4564. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4565. type: object
  4566. requests:
  4567. additionalProperties:
  4568. anyOf:
  4569. - type: integer
  4570. - type: string
  4571. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4572. x-kubernetes-int-or-string: true
  4573. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4574. type: object
  4575. type: object
  4576. x-kubernetes-preserve-unknown-fields: true
  4577. schedulerName:
  4578. description: Scheduler name for OSD pod placement
  4579. type: string
  4580. tuneDeviceClass:
  4581. description: TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
  4582. type: boolean
  4583. tuneFastDeviceClass:
  4584. description: TuneFastDeviceClass Tune the OSD when running on a fast Device Class
  4585. type: boolean
  4586. volumeClaimTemplates:
  4587. description: VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
  4588. items:
  4589. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4590. properties:
  4591. apiVersion:
  4592. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4593. type: string
  4594. kind:
  4595. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4596. type: string
  4597. metadata:
  4598. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4599. properties:
  4600. annotations:
  4601. additionalProperties:
  4602. type: string
  4603. type: object
  4604. x-kubernetes-preserve-unknown-fields: true
  4605. finalizers:
  4606. items:
  4607. type: string
  4608. type: array
  4609. labels:
  4610. additionalProperties:
  4611. type: string
  4612. type: object
  4613. name:
  4614. type: string
  4615. namespace:
  4616. type: string
  4617. type: object
  4618. spec:
  4619. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4620. properties:
  4621. accessModes:
  4622. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4623. items:
  4624. type: string
  4625. type: array
  4626. dataSource:
  4627. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  4628. properties:
  4629. apiGroup:
  4630. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4631. type: string
  4632. kind:
  4633. description: Kind is the type of resource being referenced
  4634. type: string
  4635. name:
  4636. description: Name is the name of resource being referenced
  4637. type: string
  4638. required:
  4639. - kind
  4640. - name
  4641. type: object
  4642. x-kubernetes-map-type: atomic
  4643. dataSourceRef:
  4644. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  4645. properties:
  4646. apiGroup:
  4647. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4648. type: string
  4649. kind:
  4650. description: Kind is the type of resource being referenced
  4651. type: string
  4652. name:
  4653. description: Name is the name of resource being referenced
  4654. type: string
  4655. namespace:
  4656. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  4657. type: string
  4658. required:
  4659. - kind
  4660. - name
  4661. type: object
  4662. resources:
  4663. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  4664. properties:
  4665. claims:
  4666. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4667. items:
  4668. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4669. properties:
  4670. name:
  4671. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4672. type: string
  4673. required:
  4674. - name
  4675. type: object
  4676. type: array
  4677. x-kubernetes-list-map-keys:
  4678. - name
  4679. x-kubernetes-list-type: map
  4680. limits:
  4681. additionalProperties:
  4682. anyOf:
  4683. - type: integer
  4684. - type: string
  4685. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4686. x-kubernetes-int-or-string: true
  4687. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4688. type: object
  4689. requests:
  4690. additionalProperties:
  4691. anyOf:
  4692. - type: integer
  4693. - type: string
  4694. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4695. x-kubernetes-int-or-string: true
  4696. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4697. type: object
  4698. type: object
  4699. selector:
  4700. description: selector is a label query over volumes to consider for binding.
  4701. properties:
  4702. matchExpressions:
  4703. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4704. items:
  4705. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4706. properties:
  4707. key:
  4708. description: key is the label key that the selector applies to.
  4709. type: string
  4710. operator:
  4711. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4712. type: string
  4713. values:
  4714. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4715. items:
  4716. type: string
  4717. type: array
  4718. required:
  4719. - key
  4720. - operator
  4721. type: object
  4722. type: array
  4723. matchLabels:
  4724. additionalProperties:
  4725. type: string
  4726. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4727. type: object
  4728. type: object
  4729. x-kubernetes-map-type: atomic
  4730. storageClassName:
  4731. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  4732. type: string
  4733. volumeMode:
  4734. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4735. type: string
  4736. volumeName:
  4737. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4738. type: string
  4739. type: object
  4740. status:
  4741. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4742. properties:
  4743. accessModes:
  4744. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4745. items:
  4746. type: string
  4747. type: array
  4748. allocatedResourceStatuses:
  4749. additionalProperties:
  4750. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  4751. type: string
  4752. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4753. type: object
  4754. x-kubernetes-map-type: granular
  4755. allocatedResources:
  4756. additionalProperties:
  4757. anyOf:
  4758. - type: integer
  4759. - type: string
  4760. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4761. x-kubernetes-int-or-string: true
  4762. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  4763. type: object
  4764. capacity:
  4765. additionalProperties:
  4766. anyOf:
  4767. - type: integer
  4768. - type: string
  4769. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4770. x-kubernetes-int-or-string: true
  4771. description: capacity represents the actual resources of the underlying volume.
  4772. type: object
  4773. conditions:
  4774. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  4775. items:
  4776. description: PersistentVolumeClaimCondition contains details about state of pvc
  4777. properties:
  4778. lastProbeTime:
  4779. description: lastProbeTime is the time we probed the condition.
  4780. format: date-time
  4781. type: string
  4782. lastTransitionTime:
  4783. description: lastTransitionTime is the time the condition transitioned from one status to another.
  4784. format: date-time
  4785. type: string
  4786. message:
  4787. description: message is the human-readable message indicating details about last transition.
  4788. type: string
  4789. reason:
  4790. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  4791. type: string
  4792. status:
  4793. type: string
  4794. type:
  4795. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  4796. type: string
  4797. required:
  4798. - status
  4799. - type
  4800. type: object
  4801. type: array
  4802. phase:
  4803. description: phase represents the current phase of PersistentVolumeClaim.
  4804. type: string
  4805. type: object
  4806. type: object
  4807. type: array
  4808. required:
  4809. - count
  4810. - name
  4811. - volumeClaimTemplates
  4812. type: object
  4813. nullable: true
  4814. type: array
  4815. store:
  4816. description: OSDStore is the backend storage type used for creating the OSDs
  4817. properties:
  4818. type:
  4819. description: Type of backend storage to be used while creating OSDs. If empty, then bluestore will be used
  4820. enum:
  4821. - bluestore
  4822. - bluestore-rdr
  4823. type: string
  4824. updateStore:
  4825. description: UpdateStore updates the backend store for existing OSDs. It destroys each OSD one at a time, cleans up the backing disk and prepares same OSD on that disk
  4826. pattern: ^$|^yes-really-update-store$
  4827. type: string
  4828. type: object
  4829. useAllDevices:
  4830. description: Whether to consume all the storage devices found on a machine
  4831. type: boolean
  4832. useAllNodes:
  4833. type: boolean
  4834. volumeClaimTemplates:
  4835. description: PersistentVolumeClaims to use as storage
  4836. items:
  4837. description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
  4838. properties:
  4839. apiVersion:
  4840. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4841. type: string
  4842. kind:
  4843. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4844. type: string
  4845. metadata:
  4846. description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  4847. properties:
  4848. annotations:
  4849. additionalProperties:
  4850. type: string
  4851. type: object
  4852. finalizers:
  4853. items:
  4854. type: string
  4855. type: array
  4856. labels:
  4857. additionalProperties:
  4858. type: string
  4859. type: object
  4860. name:
  4861. type: string
  4862. namespace:
  4863. type: string
  4864. type: object
  4865. spec:
  4866. description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4867. properties:
  4868. accessModes:
  4869. description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4870. items:
  4871. type: string
  4872. type: array
  4873. dataSource:
  4874. description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
  4875. properties:
  4876. apiGroup:
  4877. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4878. type: string
  4879. kind:
  4880. description: Kind is the type of resource being referenced
  4881. type: string
  4882. name:
  4883. description: Name is the name of resource being referenced
  4884. type: string
  4885. required:
  4886. - kind
  4887. - name
  4888. type: object
  4889. x-kubernetes-map-type: atomic
  4890. dataSourceRef:
  4891. description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
  4892. properties:
  4893. apiGroup:
  4894. description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  4895. type: string
  4896. kind:
  4897. description: Kind is the type of resource being referenced
  4898. type: string
  4899. name:
  4900. description: Name is the name of resource being referenced
  4901. type: string
  4902. namespace:
  4903. description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  4904. type: string
  4905. required:
  4906. - kind
  4907. - name
  4908. type: object
  4909. resources:
  4910. description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  4911. properties:
  4912. claims:
  4913. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  4914. items:
  4915. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  4916. properties:
  4917. name:
  4918. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  4919. type: string
  4920. required:
  4921. - name
  4922. type: object
  4923. type: array
  4924. x-kubernetes-list-map-keys:
  4925. - name
  4926. x-kubernetes-list-type: map
  4927. limits:
  4928. additionalProperties:
  4929. anyOf:
  4930. - type: integer
  4931. - type: string
  4932. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4933. x-kubernetes-int-or-string: true
  4934. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4935. type: object
  4936. requests:
  4937. additionalProperties:
  4938. anyOf:
  4939. - type: integer
  4940. - type: string
  4941. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4942. x-kubernetes-int-or-string: true
  4943. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  4944. type: object
  4945. type: object
  4946. selector:
  4947. description: selector is a label query over volumes to consider for binding.
  4948. properties:
  4949. matchExpressions:
  4950. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4951. items:
  4952. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4953. properties:
  4954. key:
  4955. description: key is the label key that the selector applies to.
  4956. type: string
  4957. operator:
  4958. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4959. type: string
  4960. values:
  4961. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  4962. items:
  4963. type: string
  4964. type: array
  4965. required:
  4966. - key
  4967. - operator
  4968. type: object
  4969. type: array
  4970. matchLabels:
  4971. additionalProperties:
  4972. type: string
  4973. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  4974. type: object
  4975. type: object
  4976. x-kubernetes-map-type: atomic
  4977. storageClassName:
  4978. description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  4979. type: string
  4980. volumeMode:
  4981. description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4982. type: string
  4983. volumeName:
  4984. description: volumeName is the binding reference to the PersistentVolume backing this claim.
  4985. type: string
  4986. type: object
  4987. status:
  4988. description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  4989. properties:
  4990. accessModes:
  4991. description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4992. items:
  4993. type: string
  4994. type: array
  4995. allocatedResourceStatuses:
  4996. additionalProperties:
  4997. description: When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource that it does not recognizes, then it should ignore that update and let other controllers handle it.
  4998. type: string
  4999. description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. \n A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  5000. type: object
  5001. x-kubernetes-map-type: granular
  5002. allocatedResources:
  5003. additionalProperties:
  5004. anyOf:
  5005. - type: integer
  5006. - type: string
  5007. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5008. x-kubernetes-int-or-string: true
  5009. description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. \n Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. \n A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. \n This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
  5010. type: object
  5011. capacity:
  5012. additionalProperties:
  5013. anyOf:
  5014. - type: integer
  5015. - type: string
  5016. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5017. x-kubernetes-int-or-string: true
  5018. description: capacity represents the actual resources of the underlying volume.
  5019. type: object
  5020. conditions:
  5021. description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
  5022. items:
  5023. description: PersistentVolumeClaimCondition contains details about state of pvc
  5024. properties:
  5025. lastProbeTime:
  5026. description: lastProbeTime is the time we probed the condition.
  5027. format: date-time
  5028. type: string
  5029. lastTransitionTime:
  5030. description: lastTransitionTime is the time the condition transitioned from one status to another.
  5031. format: date-time
  5032. type: string
  5033. message:
  5034. description: message is the human-readable message indicating details about last transition.
  5035. type: string
  5036. reason:
  5037. description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
  5038. type: string
  5039. status:
  5040. type: string
  5041. type:
  5042. description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
  5043. type: string
  5044. required:
  5045. - status
  5046. - type
  5047. type: object
  5048. type: array
  5049. phase:
  5050. description: phase represents the current phase of PersistentVolumeClaim.
  5051. type: string
  5052. type: object
  5053. type: object
  5054. type: array
  5055. type: object
  5056. waitTimeoutForHealthyOSDInMinutes:
  5057. description: WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart. If the timeout exceeds and OSD is not ok to stop, then the operator would skip upgrade for the current OSD and proceed with the next one if `continueUpgradeAfterChecksEvenIfNotHealthy` is `false`. If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would continue with the upgrade of an OSD even if its not ok to stop after the timeout. This timeout won't be applied if `skipUpgradeChecks` is `true`. The default wait timeout is 10 minutes.
  5058. format: int64
  5059. type: integer
  5060. type: object
  5061. status:
  5062. description: ClusterStatus represents the status of a Ceph cluster
  5063. nullable: true
  5064. properties:
  5065. ceph:
  5066. description: CephStatus is the details health of a Ceph Cluster
  5067. properties:
  5068. capacity:
  5069. description: Capacity is the capacity information of a Ceph Cluster
  5070. properties:
  5071. bytesAvailable:
  5072. format: int64
  5073. type: integer
  5074. bytesTotal:
  5075. format: int64
  5076. type: integer
  5077. bytesUsed:
  5078. format: int64
  5079. type: integer
  5080. lastUpdated:
  5081. type: string
  5082. type: object
  5083. details:
  5084. additionalProperties:
  5085. description: CephHealthMessage represents the health message of a Ceph Cluster
  5086. properties:
  5087. message:
  5088. type: string
  5089. severity:
  5090. type: string
  5091. required:
  5092. - message
  5093. - severity
  5094. type: object
  5095. type: object
  5096. fsid:
  5097. type: string
  5098. health:
  5099. type: string
  5100. lastChanged:
  5101. type: string
  5102. lastChecked:
  5103. type: string
  5104. previousHealth:
  5105. type: string
  5106. versions:
  5107. description: CephDaemonsVersions show the current ceph version for different ceph daemons
  5108. properties:
  5109. cephfs-mirror:
  5110. additionalProperties:
  5111. type: integer
  5112. description: CephFSMirror shows CephFSMirror Ceph version
  5113. type: object
  5114. mds:
  5115. additionalProperties:
  5116. type: integer
  5117. description: Mds shows Mds Ceph version
  5118. type: object
  5119. mgr:
  5120. additionalProperties:
  5121. type: integer
  5122. description: Mgr shows Mgr Ceph version
  5123. type: object
  5124. mon:
  5125. additionalProperties:
  5126. type: integer
  5127. description: Mon shows Mon Ceph version
  5128. type: object
  5129. osd:
  5130. additionalProperties:
  5131. type: integer
  5132. description: Osd shows Osd Ceph version
  5133. type: object
  5134. overall:
  5135. additionalProperties:
  5136. type: integer
  5137. description: Overall shows overall Ceph version
  5138. type: object
  5139. rbd-mirror:
  5140. additionalProperties:
  5141. type: integer
  5142. description: RbdMirror shows RbdMirror Ceph version
  5143. type: object
  5144. rgw:
  5145. additionalProperties:
  5146. type: integer
  5147. description: Rgw shows Rgw Ceph version
  5148. type: object
  5149. type: object
  5150. type: object
  5151. conditions:
  5152. items:
  5153. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  5154. properties:
  5155. lastHeartbeatTime:
  5156. format: date-time
  5157. type: string
  5158. lastTransitionTime:
  5159. format: date-time
  5160. type: string
  5161. message:
  5162. type: string
  5163. reason:
  5164. description: ConditionReason is a reason for a condition
  5165. type: string
  5166. status:
  5167. type: string
  5168. type:
  5169. description: ConditionType represent a resource's status
  5170. type: string
  5171. type: object
  5172. type: array
  5173. message:
  5174. type: string
  5175. observedGeneration:
  5176. description: ObservedGeneration is the latest generation observed by the controller.
  5177. format: int64
  5178. type: integer
  5179. phase:
  5180. description: ConditionType represent a resource's status
  5181. type: string
  5182. state:
  5183. description: ClusterState represents the state of a Ceph Cluster
  5184. type: string
  5185. storage:
  5186. description: CephStorage represents flavors of Ceph Cluster Storage
  5187. properties:
  5188. deviceClasses:
  5189. items:
  5190. description: DeviceClasses represents device classes of a Ceph Cluster
  5191. properties:
  5192. name:
  5193. type: string
  5194. type: object
  5195. type: array
  5196. osd:
  5197. description: OSDStatus represents OSD status of the ceph Cluster
  5198. properties:
  5199. storeType:
  5200. additionalProperties:
  5201. type: integer
  5202. description: StoreType is a mapping between the OSD backend stores and number of OSDs using these stores
  5203. type: object
  5204. type: object
  5205. type: object
  5206. version:
  5207. description: ClusterVersion represents the version of a Ceph Cluster
  5208. properties:
  5209. image:
  5210. type: string
  5211. version:
  5212. type: string
  5213. type: object
  5214. type: object
  5215. x-kubernetes-preserve-unknown-fields: true
  5216. required:
  5217. - metadata
  5218. - spec
  5219. type: object
  5220. served: true
  5221. storage: true
  5222. subresources:
  5223. status: {}
  5224. ---
  5225. # Source: rook-ceph/templates/resources.yaml
  5226. apiVersion: apiextensions.k8s.io/v1
  5227. kind: CustomResourceDefinition
  5228. metadata:
  5229. annotations:
  5230. controller-gen.kubebuilder.io/version: v0.11.3
  5231. helm.sh/resource-policy: keep
  5232. creationTimestamp: null
  5233. name: cephcosidrivers.ceph.rook.io
  5234. spec:
  5235. group: ceph.rook.io
  5236. names:
  5237. kind: CephCOSIDriver
  5238. listKind: CephCOSIDriverList
  5239. plural: cephcosidrivers
  5240. shortNames:
  5241. - cephcosi
  5242. singular: cephcosidriver
  5243. scope: Namespaced
  5244. versions:
  5245. - name: v1
  5246. schema:
  5247. openAPIV3Schema:
  5248. description: CephCOSIDriver represents the CRD for the Ceph COSI Driver Deployment
  5249. properties:
  5250. apiVersion:
  5251. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5252. type: string
  5253. kind:
  5254. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5255. type: string
  5256. metadata:
  5257. type: object
  5258. spec:
  5259. description: Spec represents the specification of a Ceph COSI Driver
  5260. properties:
  5261. deploymentStrategy:
  5262. description: DeploymentStrategy is the strategy to use to deploy the COSI driver.
  5263. enum:
  5264. - Never
  5265. - Auto
  5266. - Always
  5267. type: string
  5268. image:
  5269. description: Image is the container image to run the Ceph COSI driver
  5270. type: string
  5271. objectProvisionerImage:
  5272. description: ObjectProvisionerImage is the container image to run the COSI driver sidecar
  5273. type: string
  5274. placement:
  5275. description: Placement is the placement strategy to use for the COSI driver
  5276. properties:
  5277. nodeAffinity:
  5278. description: NodeAffinity is a group of node affinity scheduling rules
  5279. properties:
  5280. preferredDuringSchedulingIgnoredDuringExecution:
  5281. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  5282. items:
  5283. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  5284. properties:
  5285. preference:
  5286. description: A node selector term, associated with the corresponding weight.
  5287. properties:
  5288. matchExpressions:
  5289. description: A list of node selector requirements by node's labels.
  5290. items:
  5291. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5292. properties:
  5293. key:
  5294. description: The label key that the selector applies to.
  5295. type: string
  5296. operator:
  5297. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5298. type: string
  5299. values:
  5300. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5301. items:
  5302. type: string
  5303. type: array
  5304. required:
  5305. - key
  5306. - operator
  5307. type: object
  5308. type: array
  5309. matchFields:
  5310. description: A list of node selector requirements by node's fields.
  5311. items:
  5312. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5313. properties:
  5314. key:
  5315. description: The label key that the selector applies to.
  5316. type: string
  5317. operator:
  5318. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5319. type: string
  5320. values:
  5321. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5322. items:
  5323. type: string
  5324. type: array
  5325. required:
  5326. - key
  5327. - operator
  5328. type: object
  5329. type: array
  5330. type: object
  5331. x-kubernetes-map-type: atomic
  5332. weight:
  5333. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5334. format: int32
  5335. type: integer
  5336. required:
  5337. - preference
  5338. - weight
  5339. type: object
  5340. type: array
  5341. requiredDuringSchedulingIgnoredDuringExecution:
  5342. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  5343. properties:
  5344. nodeSelectorTerms:
  5345. description: Required. A list of node selector terms. The terms are ORed.
  5346. items:
  5347. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  5348. properties:
  5349. matchExpressions:
  5350. description: A list of node selector requirements by node's labels.
  5351. items:
  5352. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5353. properties:
  5354. key:
  5355. description: The label key that the selector applies to.
  5356. type: string
  5357. operator:
  5358. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5359. type: string
  5360. values:
  5361. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5362. items:
  5363. type: string
  5364. type: array
  5365. required:
  5366. - key
  5367. - operator
  5368. type: object
  5369. type: array
  5370. matchFields:
  5371. description: A list of node selector requirements by node's fields.
  5372. items:
  5373. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5374. properties:
  5375. key:
  5376. description: The label key that the selector applies to.
  5377. type: string
  5378. operator:
  5379. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5380. type: string
  5381. values:
  5382. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5383. items:
  5384. type: string
  5385. type: array
  5386. required:
  5387. - key
  5388. - operator
  5389. type: object
  5390. type: array
  5391. type: object
  5392. x-kubernetes-map-type: atomic
  5393. type: array
  5394. required:
  5395. - nodeSelectorTerms
  5396. type: object
  5397. x-kubernetes-map-type: atomic
  5398. type: object
  5399. podAffinity:
  5400. description: PodAffinity is a group of inter pod affinity scheduling rules
  5401. properties:
  5402. preferredDuringSchedulingIgnoredDuringExecution:
  5403. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5404. items:
  5405. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5406. properties:
  5407. podAffinityTerm:
  5408. description: Required. A pod affinity term, associated with the corresponding weight.
  5409. properties:
  5410. labelSelector:
  5411. description: A label query over a set of resources, in this case pods.
  5412. properties:
  5413. matchExpressions:
  5414. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5415. items:
  5416. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5417. properties:
  5418. key:
  5419. description: key is the label key that the selector applies to.
  5420. type: string
  5421. operator:
  5422. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5423. type: string
  5424. values:
  5425. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5426. items:
  5427. type: string
  5428. type: array
  5429. required:
  5430. - key
  5431. - operator
  5432. type: object
  5433. type: array
  5434. matchLabels:
  5435. additionalProperties:
  5436. type: string
  5437. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5438. type: object
  5439. type: object
  5440. x-kubernetes-map-type: atomic
  5441. namespaceSelector:
  5442. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5443. properties:
  5444. matchExpressions:
  5445. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5446. items:
  5447. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5448. properties:
  5449. key:
  5450. description: key is the label key that the selector applies to.
  5451. type: string
  5452. operator:
  5453. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5454. type: string
  5455. values:
  5456. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5457. items:
  5458. type: string
  5459. type: array
  5460. required:
  5461. - key
  5462. - operator
  5463. type: object
  5464. type: array
  5465. matchLabels:
  5466. additionalProperties:
  5467. type: string
  5468. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5469. type: object
  5470. type: object
  5471. x-kubernetes-map-type: atomic
  5472. namespaces:
  5473. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5474. items:
  5475. type: string
  5476. type: array
  5477. topologyKey:
  5478. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5479. type: string
  5480. required:
  5481. - topologyKey
  5482. type: object
  5483. weight:
  5484. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5485. format: int32
  5486. type: integer
  5487. required:
  5488. - podAffinityTerm
  5489. - weight
  5490. type: object
  5491. type: array
  5492. requiredDuringSchedulingIgnoredDuringExecution:
  5493. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5494. items:
  5495. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5496. properties:
  5497. labelSelector:
  5498. description: A label query over a set of resources, in this case pods.
  5499. properties:
  5500. matchExpressions:
  5501. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5502. items:
  5503. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5504. properties:
  5505. key:
  5506. description: key is the label key that the selector applies to.
  5507. type: string
  5508. operator:
  5509. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5510. type: string
  5511. values:
  5512. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5513. items:
  5514. type: string
  5515. type: array
  5516. required:
  5517. - key
  5518. - operator
  5519. type: object
  5520. type: array
  5521. matchLabels:
  5522. additionalProperties:
  5523. type: string
  5524. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5525. type: object
  5526. type: object
  5527. x-kubernetes-map-type: atomic
  5528. namespaceSelector:
  5529. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5530. properties:
  5531. matchExpressions:
  5532. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5533. items:
  5534. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5535. properties:
  5536. key:
  5537. description: key is the label key that the selector applies to.
  5538. type: string
  5539. operator:
  5540. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5541. type: string
  5542. values:
  5543. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5544. items:
  5545. type: string
  5546. type: array
  5547. required:
  5548. - key
  5549. - operator
  5550. type: object
  5551. type: array
  5552. matchLabels:
  5553. additionalProperties:
  5554. type: string
  5555. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5556. type: object
  5557. type: object
  5558. x-kubernetes-map-type: atomic
  5559. namespaces:
  5560. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5561. items:
  5562. type: string
  5563. type: array
  5564. topologyKey:
  5565. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5566. type: string
  5567. required:
  5568. - topologyKey
  5569. type: object
  5570. type: array
  5571. type: object
  5572. podAntiAffinity:
  5573. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  5574. properties:
  5575. preferredDuringSchedulingIgnoredDuringExecution:
  5576. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  5577. items:
  5578. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  5579. properties:
  5580. podAffinityTerm:
  5581. description: Required. A pod affinity term, associated with the corresponding weight.
  5582. properties:
  5583. labelSelector:
  5584. description: A label query over a set of resources, in this case pods.
  5585. properties:
  5586. matchExpressions:
  5587. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5588. items:
  5589. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5590. properties:
  5591. key:
  5592. description: key is the label key that the selector applies to.
  5593. type: string
  5594. operator:
  5595. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5596. type: string
  5597. values:
  5598. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5599. items:
  5600. type: string
  5601. type: array
  5602. required:
  5603. - key
  5604. - operator
  5605. type: object
  5606. type: array
  5607. matchLabels:
  5608. additionalProperties:
  5609. type: string
  5610. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5611. type: object
  5612. type: object
  5613. x-kubernetes-map-type: atomic
  5614. namespaceSelector:
  5615. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5616. properties:
  5617. matchExpressions:
  5618. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5619. items:
  5620. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5621. properties:
  5622. key:
  5623. description: key is the label key that the selector applies to.
  5624. type: string
  5625. operator:
  5626. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5627. type: string
  5628. values:
  5629. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5630. items:
  5631. type: string
  5632. type: array
  5633. required:
  5634. - key
  5635. - operator
  5636. type: object
  5637. type: array
  5638. matchLabels:
  5639. additionalProperties:
  5640. type: string
  5641. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5642. type: object
  5643. type: object
  5644. x-kubernetes-map-type: atomic
  5645. namespaces:
  5646. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5647. items:
  5648. type: string
  5649. type: array
  5650. topologyKey:
  5651. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5652. type: string
  5653. required:
  5654. - topologyKey
  5655. type: object
  5656. weight:
  5657. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  5658. format: int32
  5659. type: integer
  5660. required:
  5661. - podAffinityTerm
  5662. - weight
  5663. type: object
  5664. type: array
  5665. requiredDuringSchedulingIgnoredDuringExecution:
  5666. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  5667. items:
  5668. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  5669. properties:
  5670. labelSelector:
  5671. description: A label query over a set of resources, in this case pods.
  5672. properties:
  5673. matchExpressions:
  5674. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5675. items:
  5676. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5677. properties:
  5678. key:
  5679. description: key is the label key that the selector applies to.
  5680. type: string
  5681. operator:
  5682. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5683. type: string
  5684. values:
  5685. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5686. items:
  5687. type: string
  5688. type: array
  5689. required:
  5690. - key
  5691. - operator
  5692. type: object
  5693. type: array
  5694. matchLabels:
  5695. additionalProperties:
  5696. type: string
  5697. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5698. type: object
  5699. type: object
  5700. x-kubernetes-map-type: atomic
  5701. namespaceSelector:
  5702. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  5703. properties:
  5704. matchExpressions:
  5705. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5706. items:
  5707. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5708. properties:
  5709. key:
  5710. description: key is the label key that the selector applies to.
  5711. type: string
  5712. operator:
  5713. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5714. type: string
  5715. values:
  5716. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5717. items:
  5718. type: string
  5719. type: array
  5720. required:
  5721. - key
  5722. - operator
  5723. type: object
  5724. type: array
  5725. matchLabels:
  5726. additionalProperties:
  5727. type: string
  5728. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5729. type: object
  5730. type: object
  5731. x-kubernetes-map-type: atomic
  5732. namespaces:
  5733. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  5734. items:
  5735. type: string
  5736. type: array
  5737. topologyKey:
  5738. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  5739. type: string
  5740. required:
  5741. - topologyKey
  5742. type: object
  5743. type: array
  5744. type: object
  5745. tolerations:
  5746. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  5747. items:
  5748. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  5749. properties:
  5750. effect:
  5751. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  5752. type: string
  5753. key:
  5754. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  5755. type: string
  5756. operator:
  5757. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  5758. type: string
  5759. tolerationSeconds:
  5760. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  5761. format: int64
  5762. type: integer
  5763. value:
  5764. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  5765. type: string
  5766. type: object
  5767. type: array
  5768. topologySpreadConstraints:
  5769. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  5770. items:
  5771. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  5772. properties:
  5773. labelSelector:
  5774. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  5775. properties:
  5776. matchExpressions:
  5777. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  5778. items:
  5779. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5780. properties:
  5781. key:
  5782. description: key is the label key that the selector applies to.
  5783. type: string
  5784. operator:
  5785. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  5786. type: string
  5787. values:
  5788. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  5789. items:
  5790. type: string
  5791. type: array
  5792. required:
  5793. - key
  5794. - operator
  5795. type: object
  5796. type: array
  5797. matchLabels:
  5798. additionalProperties:
  5799. type: string
  5800. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  5801. type: object
  5802. type: object
  5803. x-kubernetes-map-type: atomic
  5804. matchLabelKeys:
  5805. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  5806. items:
  5807. type: string
  5808. type: array
  5809. x-kubernetes-list-type: atomic
  5810. maxSkew:
  5811. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  5812. format: int32
  5813. type: integer
  5814. minDomains:
  5815. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  5816. format: int32
  5817. type: integer
  5818. nodeAffinityPolicy:
  5819. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  5820. type: string
  5821. nodeTaintsPolicy:
  5822. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  5823. type: string
  5824. topologyKey:
  5825. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  5826. type: string
  5827. whenUnsatisfiable:
  5828. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  5829. type: string
  5830. required:
  5831. - maxSkew
  5832. - topologyKey
  5833. - whenUnsatisfiable
  5834. type: object
  5835. type: array
  5836. type: object
  5837. resources:
  5838. description: Resources is the resource requirements for the COSI driver
  5839. properties:
  5840. claims:
  5841. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  5842. items:
  5843. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  5844. properties:
  5845. name:
  5846. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  5847. type: string
  5848. required:
  5849. - name
  5850. type: object
  5851. type: array
  5852. x-kubernetes-list-map-keys:
  5853. - name
  5854. x-kubernetes-list-type: map
  5855. limits:
  5856. additionalProperties:
  5857. anyOf:
  5858. - type: integer
  5859. - type: string
  5860. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5861. x-kubernetes-int-or-string: true
  5862. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  5863. type: object
  5864. requests:
  5865. additionalProperties:
  5866. anyOf:
  5867. - type: integer
  5868. - type: string
  5869. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5870. x-kubernetes-int-or-string: true
  5871. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  5872. type: object
  5873. type: object
  5874. type: object
  5875. required:
  5876. - metadata
  5877. - spec
  5878. type: object
  5879. served: true
  5880. storage: true
  5881. ---
  5882. # Source: rook-ceph/templates/resources.yaml
  5883. apiVersion: apiextensions.k8s.io/v1
  5884. kind: CustomResourceDefinition
  5885. metadata:
  5886. annotations:
  5887. controller-gen.kubebuilder.io/version: v0.11.3
  5888. helm.sh/resource-policy: keep
  5889. creationTimestamp: null
  5890. name: cephfilesystemmirrors.ceph.rook.io
  5891. spec:
  5892. group: ceph.rook.io
  5893. names:
  5894. kind: CephFilesystemMirror
  5895. listKind: CephFilesystemMirrorList
  5896. plural: cephfilesystemmirrors
  5897. singular: cephfilesystemmirror
  5898. scope: Namespaced
  5899. versions:
  5900. - additionalPrinterColumns:
  5901. - jsonPath: .status.phase
  5902. name: Phase
  5903. type: string
  5904. name: v1
  5905. schema:
  5906. openAPIV3Schema:
  5907. description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
  5908. properties:
  5909. apiVersion:
  5910. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  5911. type: string
  5912. kind:
  5913. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  5914. type: string
  5915. metadata:
  5916. type: object
  5917. spec:
  5918. description: FilesystemMirroringSpec is the filesystem mirroring specification
  5919. properties:
  5920. annotations:
  5921. additionalProperties:
  5922. type: string
  5923. description: The annotations-related configuration to add/set on each Pod related object.
  5924. nullable: true
  5925. type: object
  5926. labels:
  5927. additionalProperties:
  5928. type: string
  5929. description: The labels-related configuration to add/set on each Pod related object.
  5930. nullable: true
  5931. type: object
  5932. placement:
  5933. description: The affinity to place the rgw pods (default is to place on any available node)
  5934. nullable: true
  5935. properties:
  5936. nodeAffinity:
  5937. description: NodeAffinity is a group of node affinity scheduling rules
  5938. properties:
  5939. preferredDuringSchedulingIgnoredDuringExecution:
  5940. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  5941. items:
  5942. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  5943. properties:
  5944. preference:
  5945. description: A node selector term, associated with the corresponding weight.
  5946. properties:
  5947. matchExpressions:
  5948. description: A list of node selector requirements by node's labels.
  5949. items:
  5950. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5951. properties:
  5952. key:
  5953. description: The label key that the selector applies to.
  5954. type: string
  5955. operator:
  5956. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5957. type: string
  5958. values:
  5959. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5960. items:
  5961. type: string
  5962. type: array
  5963. required:
  5964. - key
  5965. - operator
  5966. type: object
  5967. type: array
  5968. matchFields:
  5969. description: A list of node selector requirements by node's fields.
  5970. items:
  5971. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  5972. properties:
  5973. key:
  5974. description: The label key that the selector applies to.
  5975. type: string
  5976. operator:
  5977. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  5978. type: string
  5979. values:
  5980. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  5981. items:
  5982. type: string
  5983. type: array
  5984. required:
  5985. - key
  5986. - operator
  5987. type: object
  5988. type: array
  5989. type: object
  5990. x-kubernetes-map-type: atomic
  5991. weight:
  5992. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  5993. format: int32
  5994. type: integer
  5995. required:
  5996. - preference
  5997. - weight
  5998. type: object
  5999. type: array
  6000. requiredDuringSchedulingIgnoredDuringExecution:
  6001. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  6002. properties:
  6003. nodeSelectorTerms:
  6004. description: Required. A list of node selector terms. The terms are ORed.
  6005. items:
  6006. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  6007. properties:
  6008. matchExpressions:
  6009. description: A list of node selector requirements by node's labels.
  6010. items:
  6011. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6012. properties:
  6013. key:
  6014. description: The label key that the selector applies to.
  6015. type: string
  6016. operator:
  6017. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6018. type: string
  6019. values:
  6020. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6021. items:
  6022. type: string
  6023. type: array
  6024. required:
  6025. - key
  6026. - operator
  6027. type: object
  6028. type: array
  6029. matchFields:
  6030. description: A list of node selector requirements by node's fields.
  6031. items:
  6032. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6033. properties:
  6034. key:
  6035. description: The label key that the selector applies to.
  6036. type: string
  6037. operator:
  6038. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  6039. type: string
  6040. values:
  6041. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  6042. items:
  6043. type: string
  6044. type: array
  6045. required:
  6046. - key
  6047. - operator
  6048. type: object
  6049. type: array
  6050. type: object
  6051. x-kubernetes-map-type: atomic
  6052. type: array
  6053. required:
  6054. - nodeSelectorTerms
  6055. type: object
  6056. x-kubernetes-map-type: atomic
  6057. type: object
  6058. podAffinity:
  6059. description: PodAffinity is a group of inter pod affinity scheduling rules
  6060. properties:
  6061. preferredDuringSchedulingIgnoredDuringExecution:
  6062. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  6063. items:
  6064. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6065. properties:
  6066. podAffinityTerm:
  6067. description: Required. A pod affinity term, associated with the corresponding weight.
  6068. properties:
  6069. labelSelector:
  6070. description: A label query over a set of resources, in this case pods.
  6071. properties:
  6072. matchExpressions:
  6073. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6074. items:
  6075. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6076. properties:
  6077. key:
  6078. description: key is the label key that the selector applies to.
  6079. type: string
  6080. operator:
  6081. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6082. type: string
  6083. values:
  6084. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6085. items:
  6086. type: string
  6087. type: array
  6088. required:
  6089. - key
  6090. - operator
  6091. type: object
  6092. type: array
  6093. matchLabels:
  6094. additionalProperties:
  6095. type: string
  6096. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6097. type: object
  6098. type: object
  6099. x-kubernetes-map-type: atomic
  6100. namespaceSelector:
  6101. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6102. properties:
  6103. matchExpressions:
  6104. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6105. items:
  6106. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6107. properties:
  6108. key:
  6109. description: key is the label key that the selector applies to.
  6110. type: string
  6111. operator:
  6112. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6113. type: string
  6114. values:
  6115. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6116. items:
  6117. type: string
  6118. type: array
  6119. required:
  6120. - key
  6121. - operator
  6122. type: object
  6123. type: array
  6124. matchLabels:
  6125. additionalProperties:
  6126. type: string
  6127. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6128. type: object
  6129. type: object
  6130. x-kubernetes-map-type: atomic
  6131. namespaces:
  6132. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6133. items:
  6134. type: string
  6135. type: array
  6136. topologyKey:
  6137. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6138. type: string
  6139. required:
  6140. - topologyKey
  6141. type: object
  6142. weight:
  6143. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6144. format: int32
  6145. type: integer
  6146. required:
  6147. - podAffinityTerm
  6148. - weight
  6149. type: object
  6150. type: array
  6151. requiredDuringSchedulingIgnoredDuringExecution:
  6152. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6153. items:
  6154. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6155. properties:
  6156. labelSelector:
  6157. description: A label query over a set of resources, in this case pods.
  6158. properties:
  6159. matchExpressions:
  6160. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6161. items:
  6162. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6163. properties:
  6164. key:
  6165. description: key is the label key that the selector applies to.
  6166. type: string
  6167. operator:
  6168. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6169. type: string
  6170. values:
  6171. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6172. items:
  6173. type: string
  6174. type: array
  6175. required:
  6176. - key
  6177. - operator
  6178. type: object
  6179. type: array
  6180. matchLabels:
  6181. additionalProperties:
  6182. type: string
  6183. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6184. type: object
  6185. type: object
  6186. x-kubernetes-map-type: atomic
  6187. namespaceSelector:
  6188. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6189. properties:
  6190. matchExpressions:
  6191. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6192. items:
  6193. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6194. properties:
  6195. key:
  6196. description: key is the label key that the selector applies to.
  6197. type: string
  6198. operator:
  6199. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6200. type: string
  6201. values:
  6202. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6203. items:
  6204. type: string
  6205. type: array
  6206. required:
  6207. - key
  6208. - operator
  6209. type: object
  6210. type: array
  6211. matchLabels:
  6212. additionalProperties:
  6213. type: string
  6214. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6215. type: object
  6216. type: object
  6217. x-kubernetes-map-type: atomic
  6218. namespaces:
  6219. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6220. items:
  6221. type: string
  6222. type: array
  6223. topologyKey:
  6224. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6225. type: string
  6226. required:
  6227. - topologyKey
  6228. type: object
  6229. type: array
  6230. type: object
  6231. podAntiAffinity:
  6232. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  6233. properties:
  6234. preferredDuringSchedulingIgnoredDuringExecution:
  6235. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  6236. items:
  6237. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  6238. properties:
  6239. podAffinityTerm:
  6240. description: Required. A pod affinity term, associated with the corresponding weight.
  6241. properties:
  6242. labelSelector:
  6243. description: A label query over a set of resources, in this case pods.
  6244. properties:
  6245. matchExpressions:
  6246. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6247. items:
  6248. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6249. properties:
  6250. key:
  6251. description: key is the label key that the selector applies to.
  6252. type: string
  6253. operator:
  6254. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6255. type: string
  6256. values:
  6257. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6258. items:
  6259. type: string
  6260. type: array
  6261. required:
  6262. - key
  6263. - operator
  6264. type: object
  6265. type: array
  6266. matchLabels:
  6267. additionalProperties:
  6268. type: string
  6269. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6270. type: object
  6271. type: object
  6272. x-kubernetes-map-type: atomic
  6273. namespaceSelector:
  6274. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6275. properties:
  6276. matchExpressions:
  6277. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6278. items:
  6279. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6280. properties:
  6281. key:
  6282. description: key is the label key that the selector applies to.
  6283. type: string
  6284. operator:
  6285. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6286. type: string
  6287. values:
  6288. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6289. items:
  6290. type: string
  6291. type: array
  6292. required:
  6293. - key
  6294. - operator
  6295. type: object
  6296. type: array
  6297. matchLabels:
  6298. additionalProperties:
  6299. type: string
  6300. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6301. type: object
  6302. type: object
  6303. x-kubernetes-map-type: atomic
  6304. namespaces:
  6305. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6306. items:
  6307. type: string
  6308. type: array
  6309. topologyKey:
  6310. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6311. type: string
  6312. required:
  6313. - topologyKey
  6314. type: object
  6315. weight:
  6316. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  6317. format: int32
  6318. type: integer
  6319. required:
  6320. - podAffinityTerm
  6321. - weight
  6322. type: object
  6323. type: array
  6324. requiredDuringSchedulingIgnoredDuringExecution:
  6325. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  6326. items:
  6327. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  6328. properties:
  6329. labelSelector:
  6330. description: A label query over a set of resources, in this case pods.
  6331. properties:
  6332. matchExpressions:
  6333. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6334. items:
  6335. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6336. properties:
  6337. key:
  6338. description: key is the label key that the selector applies to.
  6339. type: string
  6340. operator:
  6341. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6342. type: string
  6343. values:
  6344. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6345. items:
  6346. type: string
  6347. type: array
  6348. required:
  6349. - key
  6350. - operator
  6351. type: object
  6352. type: array
  6353. matchLabels:
  6354. additionalProperties:
  6355. type: string
  6356. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6357. type: object
  6358. type: object
  6359. x-kubernetes-map-type: atomic
  6360. namespaceSelector:
  6361. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  6362. properties:
  6363. matchExpressions:
  6364. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6365. items:
  6366. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6367. properties:
  6368. key:
  6369. description: key is the label key that the selector applies to.
  6370. type: string
  6371. operator:
  6372. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6373. type: string
  6374. values:
  6375. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6376. items:
  6377. type: string
  6378. type: array
  6379. required:
  6380. - key
  6381. - operator
  6382. type: object
  6383. type: array
  6384. matchLabels:
  6385. additionalProperties:
  6386. type: string
  6387. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6388. type: object
  6389. type: object
  6390. x-kubernetes-map-type: atomic
  6391. namespaces:
  6392. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  6393. items:
  6394. type: string
  6395. type: array
  6396. topologyKey:
  6397. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  6398. type: string
  6399. required:
  6400. - topologyKey
  6401. type: object
  6402. type: array
  6403. type: object
  6404. tolerations:
  6405. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  6406. items:
  6407. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  6408. properties:
  6409. effect:
  6410. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  6411. type: string
  6412. key:
  6413. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  6414. type: string
  6415. operator:
  6416. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  6417. type: string
  6418. tolerationSeconds:
  6419. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  6420. format: int64
  6421. type: integer
  6422. value:
  6423. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  6424. type: string
  6425. type: object
  6426. type: array
  6427. topologySpreadConstraints:
  6428. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  6429. items:
  6430. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  6431. properties:
  6432. labelSelector:
  6433. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  6434. properties:
  6435. matchExpressions:
  6436. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  6437. items:
  6438. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  6439. properties:
  6440. key:
  6441. description: key is the label key that the selector applies to.
  6442. type: string
  6443. operator:
  6444. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  6445. type: string
  6446. values:
  6447. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  6448. items:
  6449. type: string
  6450. type: array
  6451. required:
  6452. - key
  6453. - operator
  6454. type: object
  6455. type: array
  6456. matchLabels:
  6457. additionalProperties:
  6458. type: string
  6459. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  6460. type: object
  6461. type: object
  6462. x-kubernetes-map-type: atomic
  6463. matchLabelKeys:
  6464. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  6465. items:
  6466. type: string
  6467. type: array
  6468. x-kubernetes-list-type: atomic
  6469. maxSkew:
  6470. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  6471. format: int32
  6472. type: integer
  6473. minDomains:
  6474. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  6475. format: int32
  6476. type: integer
  6477. nodeAffinityPolicy:
  6478. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  6479. type: string
  6480. nodeTaintsPolicy:
  6481. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  6482. type: string
  6483. topologyKey:
  6484. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  6485. type: string
  6486. whenUnsatisfiable:
  6487. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  6488. type: string
  6489. required:
  6490. - maxSkew
  6491. - topologyKey
  6492. - whenUnsatisfiable
  6493. type: object
  6494. type: array
  6495. type: object
  6496. priorityClassName:
  6497. description: PriorityClassName sets priority class on the cephfs-mirror pods
  6498. type: string
  6499. resources:
  6500. description: The resource requirements for the cephfs-mirror pods
  6501. nullable: true
  6502. properties:
  6503. claims:
  6504. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  6505. items:
  6506. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  6507. properties:
  6508. name:
  6509. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  6510. type: string
  6511. required:
  6512. - name
  6513. type: object
  6514. type: array
  6515. x-kubernetes-list-map-keys:
  6516. - name
  6517. x-kubernetes-list-type: map
  6518. limits:
  6519. additionalProperties:
  6520. anyOf:
  6521. - type: integer
  6522. - type: string
  6523. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6524. x-kubernetes-int-or-string: true
  6525. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  6526. type: object
  6527. requests:
  6528. additionalProperties:
  6529. anyOf:
  6530. - type: integer
  6531. - type: string
  6532. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6533. x-kubernetes-int-or-string: true
  6534. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  6535. type: object
  6536. type: object
  6537. type: object
  6538. status:
  6539. description: Status represents the status of an object
  6540. properties:
  6541. conditions:
  6542. items:
  6543. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  6544. properties:
  6545. lastHeartbeatTime:
  6546. format: date-time
  6547. type: string
  6548. lastTransitionTime:
  6549. format: date-time
  6550. type: string
  6551. message:
  6552. type: string
  6553. reason:
  6554. description: ConditionReason is a reason for a condition
  6555. type: string
  6556. status:
  6557. type: string
  6558. type:
  6559. description: ConditionType represent a resource's status
  6560. type: string
  6561. type: object
  6562. type: array
  6563. observedGeneration:
  6564. description: ObservedGeneration is the latest generation observed by the controller.
  6565. format: int64
  6566. type: integer
  6567. phase:
  6568. type: string
  6569. type: object
  6570. required:
  6571. - metadata
  6572. - spec
  6573. type: object
  6574. served: true
  6575. storage: true
  6576. subresources:
  6577. status: {}
  6578. ---
  6579. # Source: rook-ceph/templates/resources.yaml
  6580. apiVersion: apiextensions.k8s.io/v1
  6581. kind: CustomResourceDefinition
  6582. metadata:
  6583. annotations:
  6584. controller-gen.kubebuilder.io/version: v0.11.3
  6585. helm.sh/resource-policy: keep
  6586. creationTimestamp: null
  6587. name: cephfilesystems.ceph.rook.io
  6588. spec:
  6589. group: ceph.rook.io
  6590. names:
  6591. kind: CephFilesystem
  6592. listKind: CephFilesystemList
  6593. plural: cephfilesystems
  6594. singular: cephfilesystem
  6595. scope: Namespaced
  6596. versions:
  6597. - additionalPrinterColumns:
  6598. - description: Number of desired active MDS daemons
  6599. jsonPath: .spec.metadataServer.activeCount
  6600. name: ActiveMDS
  6601. type: string
  6602. - jsonPath: .metadata.creationTimestamp
  6603. name: Age
  6604. type: date
  6605. - jsonPath: .status.phase
  6606. name: Phase
  6607. type: string
  6608. name: v1
  6609. schema:
  6610. openAPIV3Schema:
  6611. description: CephFilesystem represents a Ceph Filesystem
  6612. properties:
  6613. apiVersion:
  6614. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  6615. type: string
  6616. kind:
  6617. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  6618. type: string
  6619. metadata:
  6620. type: object
  6621. spec:
  6622. description: FilesystemSpec represents the spec of a file system
  6623. properties:
  6624. dataPools:
  6625. description: The data pool settings, with optional predefined pool name.
  6626. items:
  6627. description: NamedPoolSpec represents the named ceph pool spec
  6628. properties:
  6629. compressionMode:
  6630. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6631. enum:
  6632. - none
  6633. - passive
  6634. - aggressive
  6635. - force
  6636. - ""
  6637. nullable: true
  6638. type: string
  6639. crushRoot:
  6640. description: The root of the crush hierarchy utilized by the pool
  6641. nullable: true
  6642. type: string
  6643. deviceClass:
  6644. description: The device class the OSD should set to for use in the pool
  6645. nullable: true
  6646. type: string
  6647. enableRBDStats:
  6648. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6649. type: boolean
  6650. erasureCoded:
  6651. description: The erasure code settings
  6652. properties:
  6653. algorithm:
  6654. description: The algorithm for erasure coding
  6655. type: string
  6656. codingChunks:
  6657. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6658. minimum: 0
  6659. type: integer
  6660. dataChunks:
  6661. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6662. minimum: 0
  6663. type: integer
  6664. required:
  6665. - codingChunks
  6666. - dataChunks
  6667. type: object
  6668. failureDomain:
  6669. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6670. type: string
  6671. mirroring:
  6672. description: The mirroring settings
  6673. properties:
  6674. enabled:
  6675. description: Enabled whether this pool is mirrored or not
  6676. type: boolean
  6677. mode:
  6678. description: 'Mode is the mirroring mode: either pool or image'
  6679. type: string
  6680. peers:
  6681. description: Peers represents the peers spec
  6682. nullable: true
  6683. properties:
  6684. secretNames:
  6685. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6686. items:
  6687. type: string
  6688. type: array
  6689. type: object
  6690. snapshotSchedules:
  6691. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6692. items:
  6693. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6694. properties:
  6695. interval:
  6696. description: Interval represent the periodicity of the snapshot.
  6697. type: string
  6698. path:
  6699. description: Path is the path to snapshot, only valid for CephFS
  6700. type: string
  6701. startTime:
  6702. description: StartTime indicates when to start the snapshot
  6703. type: string
  6704. type: object
  6705. type: array
  6706. type: object
  6707. name:
  6708. description: Name of the pool
  6709. type: string
  6710. parameters:
  6711. additionalProperties:
  6712. type: string
  6713. description: Parameters is a list of properties to enable on a given pool
  6714. nullable: true
  6715. type: object
  6716. x-kubernetes-preserve-unknown-fields: true
  6717. quotas:
  6718. description: The quota settings
  6719. nullable: true
  6720. properties:
  6721. maxBytes:
  6722. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6723. format: int64
  6724. type: integer
  6725. maxObjects:
  6726. description: MaxObjects represents the quota in objects
  6727. format: int64
  6728. type: integer
  6729. maxSize:
  6730. description: MaxSize represents the quota in bytes as a string
  6731. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6732. type: string
  6733. type: object
  6734. replicated:
  6735. description: The replication settings
  6736. properties:
  6737. hybridStorage:
  6738. description: HybridStorage represents hybrid storage tier settings
  6739. nullable: true
  6740. properties:
  6741. primaryDeviceClass:
  6742. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6743. minLength: 1
  6744. type: string
  6745. secondaryDeviceClass:
  6746. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6747. minLength: 1
  6748. type: string
  6749. required:
  6750. - primaryDeviceClass
  6751. - secondaryDeviceClass
  6752. type: object
  6753. replicasPerFailureDomain:
  6754. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6755. minimum: 1
  6756. type: integer
  6757. requireSafeReplicaSize:
  6758. description: RequireSafeReplicaSize if false allows you to set replica 1
  6759. type: boolean
  6760. size:
  6761. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6762. minimum: 0
  6763. type: integer
  6764. subFailureDomain:
  6765. description: SubFailureDomain the name of the sub-failure domain
  6766. type: string
  6767. targetSizeRatio:
  6768. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6769. type: number
  6770. required:
  6771. - size
  6772. type: object
  6773. statusCheck:
  6774. description: The mirroring statusCheck
  6775. properties:
  6776. mirror:
  6777. description: HealthCheckSpec represents the health check of an object store bucket
  6778. nullable: true
  6779. properties:
  6780. disabled:
  6781. type: boolean
  6782. interval:
  6783. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  6784. type: string
  6785. timeout:
  6786. type: string
  6787. type: object
  6788. type: object
  6789. x-kubernetes-preserve-unknown-fields: true
  6790. type: object
  6791. nullable: true
  6792. type: array
  6793. metadataPool:
  6794. description: The metadata pool settings
  6795. nullable: true
  6796. properties:
  6797. compressionMode:
  6798. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  6799. enum:
  6800. - none
  6801. - passive
  6802. - aggressive
  6803. - force
  6804. - ""
  6805. nullable: true
  6806. type: string
  6807. crushRoot:
  6808. description: The root of the crush hierarchy utilized by the pool
  6809. nullable: true
  6810. type: string
  6811. deviceClass:
  6812. description: The device class the OSD should set to for use in the pool
  6813. nullable: true
  6814. type: string
  6815. enableRBDStats:
  6816. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  6817. type: boolean
  6818. erasureCoded:
  6819. description: The erasure code settings
  6820. properties:
  6821. algorithm:
  6822. description: The algorithm for erasure coding
  6823. type: string
  6824. codingChunks:
  6825. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  6826. minimum: 0
  6827. type: integer
  6828. dataChunks:
  6829. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  6830. minimum: 0
  6831. type: integer
  6832. required:
  6833. - codingChunks
  6834. - dataChunks
  6835. type: object
  6836. failureDomain:
  6837. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  6838. type: string
  6839. mirroring:
  6840. description: The mirroring settings
  6841. properties:
  6842. enabled:
  6843. description: Enabled whether this pool is mirrored or not
  6844. type: boolean
  6845. mode:
  6846. description: 'Mode is the mirroring mode: either pool or image'
  6847. type: string
  6848. peers:
  6849. description: Peers represents the peers spec
  6850. nullable: true
  6851. properties:
  6852. secretNames:
  6853. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  6854. items:
  6855. type: string
  6856. type: array
  6857. type: object
  6858. snapshotSchedules:
  6859. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  6860. items:
  6861. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  6862. properties:
  6863. interval:
  6864. description: Interval represent the periodicity of the snapshot.
  6865. type: string
  6866. path:
  6867. description: Path is the path to snapshot, only valid for CephFS
  6868. type: string
  6869. startTime:
  6870. description: StartTime indicates when to start the snapshot
  6871. type: string
  6872. type: object
  6873. type: array
  6874. type: object
  6875. parameters:
  6876. additionalProperties:
  6877. type: string
  6878. description: Parameters is a list of properties to enable on a given pool
  6879. nullable: true
  6880. type: object
  6881. x-kubernetes-preserve-unknown-fields: true
  6882. quotas:
  6883. description: The quota settings
  6884. nullable: true
  6885. properties:
  6886. maxBytes:
  6887. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  6888. format: int64
  6889. type: integer
  6890. maxObjects:
  6891. description: MaxObjects represents the quota in objects
  6892. format: int64
  6893. type: integer
  6894. maxSize:
  6895. description: MaxSize represents the quota in bytes as a string
  6896. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  6897. type: string
  6898. type: object
  6899. replicated:
  6900. description: The replication settings
  6901. properties:
  6902. hybridStorage:
  6903. description: HybridStorage represents hybrid storage tier settings
  6904. nullable: true
  6905. properties:
  6906. primaryDeviceClass:
  6907. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  6908. minLength: 1
  6909. type: string
  6910. secondaryDeviceClass:
  6911. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  6912. minLength: 1
  6913. type: string
  6914. required:
  6915. - primaryDeviceClass
  6916. - secondaryDeviceClass
  6917. type: object
  6918. replicasPerFailureDomain:
  6919. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  6920. minimum: 1
  6921. type: integer
  6922. requireSafeReplicaSize:
  6923. description: RequireSafeReplicaSize if false allows you to set replica 1
  6924. type: boolean
  6925. size:
  6926. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  6927. minimum: 0
  6928. type: integer
  6929. subFailureDomain:
  6930. description: SubFailureDomain the name of the sub-failure domain
  6931. type: string
  6932. targetSizeRatio:
  6933. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  6934. type: number
  6935. required:
  6936. - size
  6937. type: object
  6938. statusCheck:
  6939. description: The mirroring statusCheck
  6940. properties:
  6941. mirror:
  6942. description: HealthCheckSpec represents the health check of an object store bucket
  6943. nullable: true
  6944. properties:
  6945. disabled:
  6946. type: boolean
  6947. interval:
  6948. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  6949. type: string
  6950. timeout:
  6951. type: string
  6952. type: object
  6953. type: object
  6954. x-kubernetes-preserve-unknown-fields: true
  6955. type: object
  6956. metadataServer:
  6957. description: The mds pod info
  6958. properties:
  6959. activeCount:
  6960. description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
  6961. format: int32
  6962. maximum: 10
  6963. minimum: 1
  6964. type: integer
  6965. activeStandby:
  6966. description: Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover. If false, standbys will still be available, but will not have a warm metadata cache.
  6967. type: boolean
  6968. annotations:
  6969. additionalProperties:
  6970. type: string
  6971. description: The annotations-related configuration to add/set on each Pod related object.
  6972. nullable: true
  6973. type: object
  6974. x-kubernetes-preserve-unknown-fields: true
  6975. labels:
  6976. additionalProperties:
  6977. type: string
  6978. description: The labels-related configuration to add/set on each Pod related object.
  6979. nullable: true
  6980. type: object
  6981. x-kubernetes-preserve-unknown-fields: true
  6982. livenessProbe:
  6983. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  6984. properties:
  6985. disabled:
  6986. description: Disabled determines whether probe is disable or not
  6987. type: boolean
  6988. probe:
  6989. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  6990. properties:
  6991. exec:
  6992. description: Exec specifies the action to take.
  6993. properties:
  6994. command:
  6995. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  6996. items:
  6997. type: string
  6998. type: array
  6999. type: object
  7000. failureThreshold:
  7001. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  7002. format: int32
  7003. type: integer
  7004. grpc:
  7005. description: GRPC specifies an action involving a GRPC port.
  7006. properties:
  7007. port:
  7008. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7009. format: int32
  7010. type: integer
  7011. service:
  7012. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  7013. type: string
  7014. required:
  7015. - port
  7016. type: object
  7017. httpGet:
  7018. description: HTTPGet specifies the http request to perform.
  7019. properties:
  7020. host:
  7021. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  7022. type: string
  7023. httpHeaders:
  7024. description: Custom headers to set in the request. HTTP allows repeated headers.
  7025. items:
  7026. description: HTTPHeader describes a custom header to be used in HTTP probes
  7027. properties:
  7028. name:
  7029. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7030. type: string
  7031. value:
  7032. description: The header field value
  7033. type: string
  7034. required:
  7035. - name
  7036. - value
  7037. type: object
  7038. type: array
  7039. path:
  7040. description: Path to access on the HTTP server.
  7041. type: string
  7042. port:
  7043. anyOf:
  7044. - type: integer
  7045. - type: string
  7046. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7047. x-kubernetes-int-or-string: true
  7048. scheme:
  7049. description: Scheme to use for connecting to the host. Defaults to HTTP.
  7050. type: string
  7051. required:
  7052. - port
  7053. type: object
  7054. initialDelaySeconds:
  7055. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7056. format: int32
  7057. type: integer
  7058. periodSeconds:
  7059. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  7060. format: int32
  7061. type: integer
  7062. successThreshold:
  7063. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  7064. format: int32
  7065. type: integer
  7066. tcpSocket:
  7067. description: TCPSocket specifies an action involving a TCP port.
  7068. properties:
  7069. host:
  7070. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7071. type: string
  7072. port:
  7073. anyOf:
  7074. - type: integer
  7075. - type: string
  7076. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7077. x-kubernetes-int-or-string: true
  7078. required:
  7079. - port
  7080. type: object
  7081. terminationGracePeriodSeconds:
  7082. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  7083. format: int64
  7084. type: integer
  7085. timeoutSeconds:
  7086. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7087. format: int32
  7088. type: integer
  7089. type: object
  7090. type: object
  7091. placement:
  7092. description: The affinity to place the mds pods (default is to place on all available node) with a daemonset
  7093. nullable: true
  7094. properties:
  7095. nodeAffinity:
  7096. description: NodeAffinity is a group of node affinity scheduling rules
  7097. properties:
  7098. preferredDuringSchedulingIgnoredDuringExecution:
  7099. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  7100. items:
  7101. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  7102. properties:
  7103. preference:
  7104. description: A node selector term, associated with the corresponding weight.
  7105. properties:
  7106. matchExpressions:
  7107. description: A list of node selector requirements by node's labels.
  7108. items:
  7109. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7110. properties:
  7111. key:
  7112. description: The label key that the selector applies to.
  7113. type: string
  7114. operator:
  7115. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7116. type: string
  7117. values:
  7118. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7119. items:
  7120. type: string
  7121. type: array
  7122. required:
  7123. - key
  7124. - operator
  7125. type: object
  7126. type: array
  7127. matchFields:
  7128. description: A list of node selector requirements by node's fields.
  7129. items:
  7130. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7131. properties:
  7132. key:
  7133. description: The label key that the selector applies to.
  7134. type: string
  7135. operator:
  7136. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7137. type: string
  7138. values:
  7139. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7140. items:
  7141. type: string
  7142. type: array
  7143. required:
  7144. - key
  7145. - operator
  7146. type: object
  7147. type: array
  7148. type: object
  7149. x-kubernetes-map-type: atomic
  7150. weight:
  7151. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  7152. format: int32
  7153. type: integer
  7154. required:
  7155. - preference
  7156. - weight
  7157. type: object
  7158. type: array
  7159. requiredDuringSchedulingIgnoredDuringExecution:
  7160. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  7161. properties:
  7162. nodeSelectorTerms:
  7163. description: Required. A list of node selector terms. The terms are ORed.
  7164. items:
  7165. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  7166. properties:
  7167. matchExpressions:
  7168. description: A list of node selector requirements by node's labels.
  7169. items:
  7170. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7171. properties:
  7172. key:
  7173. description: The label key that the selector applies to.
  7174. type: string
  7175. operator:
  7176. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7177. type: string
  7178. values:
  7179. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7180. items:
  7181. type: string
  7182. type: array
  7183. required:
  7184. - key
  7185. - operator
  7186. type: object
  7187. type: array
  7188. matchFields:
  7189. description: A list of node selector requirements by node's fields.
  7190. items:
  7191. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7192. properties:
  7193. key:
  7194. description: The label key that the selector applies to.
  7195. type: string
  7196. operator:
  7197. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  7198. type: string
  7199. values:
  7200. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  7201. items:
  7202. type: string
  7203. type: array
  7204. required:
  7205. - key
  7206. - operator
  7207. type: object
  7208. type: array
  7209. type: object
  7210. x-kubernetes-map-type: atomic
  7211. type: array
  7212. required:
  7213. - nodeSelectorTerms
  7214. type: object
  7215. x-kubernetes-map-type: atomic
  7216. type: object
  7217. podAffinity:
  7218. description: PodAffinity is a group of inter pod affinity scheduling rules
  7219. properties:
  7220. preferredDuringSchedulingIgnoredDuringExecution:
  7221. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7222. items:
  7223. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7224. properties:
  7225. podAffinityTerm:
  7226. description: Required. A pod affinity term, associated with the corresponding weight.
  7227. properties:
  7228. labelSelector:
  7229. description: A label query over a set of resources, in this case pods.
  7230. properties:
  7231. matchExpressions:
  7232. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7233. items:
  7234. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7235. properties:
  7236. key:
  7237. description: key is the label key that the selector applies to.
  7238. type: string
  7239. operator:
  7240. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7241. type: string
  7242. values:
  7243. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7244. items:
  7245. type: string
  7246. type: array
  7247. required:
  7248. - key
  7249. - operator
  7250. type: object
  7251. type: array
  7252. matchLabels:
  7253. additionalProperties:
  7254. type: string
  7255. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7256. type: object
  7257. type: object
  7258. x-kubernetes-map-type: atomic
  7259. namespaceSelector:
  7260. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7261. properties:
  7262. matchExpressions:
  7263. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7264. items:
  7265. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7266. properties:
  7267. key:
  7268. description: key is the label key that the selector applies to.
  7269. type: string
  7270. operator:
  7271. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7272. type: string
  7273. values:
  7274. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7275. items:
  7276. type: string
  7277. type: array
  7278. required:
  7279. - key
  7280. - operator
  7281. type: object
  7282. type: array
  7283. matchLabels:
  7284. additionalProperties:
  7285. type: string
  7286. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7287. type: object
  7288. type: object
  7289. x-kubernetes-map-type: atomic
  7290. namespaces:
  7291. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7292. items:
  7293. type: string
  7294. type: array
  7295. topologyKey:
  7296. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7297. type: string
  7298. required:
  7299. - topologyKey
  7300. type: object
  7301. weight:
  7302. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7303. format: int32
  7304. type: integer
  7305. required:
  7306. - podAffinityTerm
  7307. - weight
  7308. type: object
  7309. type: array
  7310. requiredDuringSchedulingIgnoredDuringExecution:
  7311. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7312. items:
  7313. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7314. properties:
  7315. labelSelector:
  7316. description: A label query over a set of resources, in this case pods.
  7317. properties:
  7318. matchExpressions:
  7319. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7320. items:
  7321. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7322. properties:
  7323. key:
  7324. description: key is the label key that the selector applies to.
  7325. type: string
  7326. operator:
  7327. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7328. type: string
  7329. values:
  7330. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7331. items:
  7332. type: string
  7333. type: array
  7334. required:
  7335. - key
  7336. - operator
  7337. type: object
  7338. type: array
  7339. matchLabels:
  7340. additionalProperties:
  7341. type: string
  7342. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7343. type: object
  7344. type: object
  7345. x-kubernetes-map-type: atomic
  7346. namespaceSelector:
  7347. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7348. properties:
  7349. matchExpressions:
  7350. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7351. items:
  7352. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7353. properties:
  7354. key:
  7355. description: key is the label key that the selector applies to.
  7356. type: string
  7357. operator:
  7358. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7359. type: string
  7360. values:
  7361. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7362. items:
  7363. type: string
  7364. type: array
  7365. required:
  7366. - key
  7367. - operator
  7368. type: object
  7369. type: array
  7370. matchLabels:
  7371. additionalProperties:
  7372. type: string
  7373. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7374. type: object
  7375. type: object
  7376. x-kubernetes-map-type: atomic
  7377. namespaces:
  7378. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7379. items:
  7380. type: string
  7381. type: array
  7382. topologyKey:
  7383. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7384. type: string
  7385. required:
  7386. - topologyKey
  7387. type: object
  7388. type: array
  7389. type: object
  7390. podAntiAffinity:
  7391. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  7392. properties:
  7393. preferredDuringSchedulingIgnoredDuringExecution:
  7394. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  7395. items:
  7396. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  7397. properties:
  7398. podAffinityTerm:
  7399. description: Required. A pod affinity term, associated with the corresponding weight.
  7400. properties:
  7401. labelSelector:
  7402. description: A label query over a set of resources, in this case pods.
  7403. properties:
  7404. matchExpressions:
  7405. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7406. items:
  7407. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7408. properties:
  7409. key:
  7410. description: key is the label key that the selector applies to.
  7411. type: string
  7412. operator:
  7413. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7414. type: string
  7415. values:
  7416. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7417. items:
  7418. type: string
  7419. type: array
  7420. required:
  7421. - key
  7422. - operator
  7423. type: object
  7424. type: array
  7425. matchLabels:
  7426. additionalProperties:
  7427. type: string
  7428. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7429. type: object
  7430. type: object
  7431. x-kubernetes-map-type: atomic
  7432. namespaceSelector:
  7433. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7434. properties:
  7435. matchExpressions:
  7436. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7437. items:
  7438. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7439. properties:
  7440. key:
  7441. description: key is the label key that the selector applies to.
  7442. type: string
  7443. operator:
  7444. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7445. type: string
  7446. values:
  7447. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7448. items:
  7449. type: string
  7450. type: array
  7451. required:
  7452. - key
  7453. - operator
  7454. type: object
  7455. type: array
  7456. matchLabels:
  7457. additionalProperties:
  7458. type: string
  7459. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7460. type: object
  7461. type: object
  7462. x-kubernetes-map-type: atomic
  7463. namespaces:
  7464. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7465. items:
  7466. type: string
  7467. type: array
  7468. topologyKey:
  7469. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7470. type: string
  7471. required:
  7472. - topologyKey
  7473. type: object
  7474. weight:
  7475. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  7476. format: int32
  7477. type: integer
  7478. required:
  7479. - podAffinityTerm
  7480. - weight
  7481. type: object
  7482. type: array
  7483. requiredDuringSchedulingIgnoredDuringExecution:
  7484. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  7485. items:
  7486. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  7487. properties:
  7488. labelSelector:
  7489. description: A label query over a set of resources, in this case pods.
  7490. properties:
  7491. matchExpressions:
  7492. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7493. items:
  7494. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7495. properties:
  7496. key:
  7497. description: key is the label key that the selector applies to.
  7498. type: string
  7499. operator:
  7500. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7501. type: string
  7502. values:
  7503. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7504. items:
  7505. type: string
  7506. type: array
  7507. required:
  7508. - key
  7509. - operator
  7510. type: object
  7511. type: array
  7512. matchLabels:
  7513. additionalProperties:
  7514. type: string
  7515. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7516. type: object
  7517. type: object
  7518. x-kubernetes-map-type: atomic
  7519. namespaceSelector:
  7520. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  7521. properties:
  7522. matchExpressions:
  7523. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7524. items:
  7525. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7526. properties:
  7527. key:
  7528. description: key is the label key that the selector applies to.
  7529. type: string
  7530. operator:
  7531. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7532. type: string
  7533. values:
  7534. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7535. items:
  7536. type: string
  7537. type: array
  7538. required:
  7539. - key
  7540. - operator
  7541. type: object
  7542. type: array
  7543. matchLabels:
  7544. additionalProperties:
  7545. type: string
  7546. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7547. type: object
  7548. type: object
  7549. x-kubernetes-map-type: atomic
  7550. namespaces:
  7551. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  7552. items:
  7553. type: string
  7554. type: array
  7555. topologyKey:
  7556. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  7557. type: string
  7558. required:
  7559. - topologyKey
  7560. type: object
  7561. type: array
  7562. type: object
  7563. tolerations:
  7564. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  7565. items:
  7566. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  7567. properties:
  7568. effect:
  7569. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  7570. type: string
  7571. key:
  7572. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  7573. type: string
  7574. operator:
  7575. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  7576. type: string
  7577. tolerationSeconds:
  7578. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  7579. format: int64
  7580. type: integer
  7581. value:
  7582. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  7583. type: string
  7584. type: object
  7585. type: array
  7586. topologySpreadConstraints:
  7587. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  7588. items:
  7589. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  7590. properties:
  7591. labelSelector:
  7592. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  7593. properties:
  7594. matchExpressions:
  7595. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  7596. items:
  7597. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  7598. properties:
  7599. key:
  7600. description: key is the label key that the selector applies to.
  7601. type: string
  7602. operator:
  7603. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  7604. type: string
  7605. values:
  7606. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  7607. items:
  7608. type: string
  7609. type: array
  7610. required:
  7611. - key
  7612. - operator
  7613. type: object
  7614. type: array
  7615. matchLabels:
  7616. additionalProperties:
  7617. type: string
  7618. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  7619. type: object
  7620. type: object
  7621. x-kubernetes-map-type: atomic
  7622. matchLabelKeys:
  7623. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  7624. items:
  7625. type: string
  7626. type: array
  7627. x-kubernetes-list-type: atomic
  7628. maxSkew:
  7629. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  7630. format: int32
  7631. type: integer
  7632. minDomains:
  7633. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  7634. format: int32
  7635. type: integer
  7636. nodeAffinityPolicy:
  7637. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  7638. type: string
  7639. nodeTaintsPolicy:
  7640. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  7641. type: string
  7642. topologyKey:
  7643. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  7644. type: string
  7645. whenUnsatisfiable:
  7646. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  7647. type: string
  7648. required:
  7649. - maxSkew
  7650. - topologyKey
  7651. - whenUnsatisfiable
  7652. type: object
  7653. type: array
  7654. type: object
  7655. x-kubernetes-preserve-unknown-fields: true
  7656. priorityClassName:
  7657. description: PriorityClassName sets priority classes on components
  7658. type: string
  7659. resources:
  7660. description: The resource requirements for the rgw pods
  7661. nullable: true
  7662. properties:
  7663. claims:
  7664. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  7665. items:
  7666. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  7667. properties:
  7668. name:
  7669. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  7670. type: string
  7671. required:
  7672. - name
  7673. type: object
  7674. type: array
  7675. x-kubernetes-list-map-keys:
  7676. - name
  7677. x-kubernetes-list-type: map
  7678. limits:
  7679. additionalProperties:
  7680. anyOf:
  7681. - type: integer
  7682. - type: string
  7683. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7684. x-kubernetes-int-or-string: true
  7685. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  7686. type: object
  7687. requests:
  7688. additionalProperties:
  7689. anyOf:
  7690. - type: integer
  7691. - type: string
  7692. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  7693. x-kubernetes-int-or-string: true
  7694. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  7695. type: object
  7696. type: object
  7697. x-kubernetes-preserve-unknown-fields: true
  7698. startupProbe:
  7699. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  7700. properties:
  7701. disabled:
  7702. description: Disabled determines whether probe is disable or not
  7703. type: boolean
  7704. probe:
  7705. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  7706. properties:
  7707. exec:
  7708. description: Exec specifies the action to take.
  7709. properties:
  7710. command:
  7711. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  7712. items:
  7713. type: string
  7714. type: array
  7715. type: object
  7716. failureThreshold:
  7717. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  7718. format: int32
  7719. type: integer
  7720. grpc:
  7721. description: GRPC specifies an action involving a GRPC port.
  7722. properties:
  7723. port:
  7724. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  7725. format: int32
  7726. type: integer
  7727. service:
  7728. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  7729. type: string
  7730. required:
  7731. - port
  7732. type: object
  7733. httpGet:
  7734. description: HTTPGet specifies the http request to perform.
  7735. properties:
  7736. host:
  7737. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  7738. type: string
  7739. httpHeaders:
  7740. description: Custom headers to set in the request. HTTP allows repeated headers.
  7741. items:
  7742. description: HTTPHeader describes a custom header to be used in HTTP probes
  7743. properties:
  7744. name:
  7745. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  7746. type: string
  7747. value:
  7748. description: The header field value
  7749. type: string
  7750. required:
  7751. - name
  7752. - value
  7753. type: object
  7754. type: array
  7755. path:
  7756. description: Path to access on the HTTP server.
  7757. type: string
  7758. port:
  7759. anyOf:
  7760. - type: integer
  7761. - type: string
  7762. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7763. x-kubernetes-int-or-string: true
  7764. scheme:
  7765. description: Scheme to use for connecting to the host. Defaults to HTTP.
  7766. type: string
  7767. required:
  7768. - port
  7769. type: object
  7770. initialDelaySeconds:
  7771. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7772. format: int32
  7773. type: integer
  7774. periodSeconds:
  7775. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  7776. format: int32
  7777. type: integer
  7778. successThreshold:
  7779. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  7780. format: int32
  7781. type: integer
  7782. tcpSocket:
  7783. description: TCPSocket specifies an action involving a TCP port.
  7784. properties:
  7785. host:
  7786. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  7787. type: string
  7788. port:
  7789. anyOf:
  7790. - type: integer
  7791. - type: string
  7792. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  7793. x-kubernetes-int-or-string: true
  7794. required:
  7795. - port
  7796. type: object
  7797. terminationGracePeriodSeconds:
  7798. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  7799. format: int64
  7800. type: integer
  7801. timeoutSeconds:
  7802. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  7803. format: int32
  7804. type: integer
  7805. type: object
  7806. type: object
  7807. required:
  7808. - activeCount
  7809. type: object
  7810. mirroring:
  7811. description: The mirroring settings
  7812. nullable: true
  7813. properties:
  7814. enabled:
  7815. description: Enabled whether this filesystem is mirrored or not
  7816. type: boolean
  7817. peers:
  7818. description: Peers represents the peers spec
  7819. nullable: true
  7820. properties:
  7821. secretNames:
  7822. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  7823. items:
  7824. type: string
  7825. type: array
  7826. type: object
  7827. snapshotRetention:
  7828. description: Retention is the retention policy for a snapshot schedule One path has exactly one retention policy. A policy can however contain multiple count-time period pairs in order to specify complex retention policies
  7829. items:
  7830. description: SnapshotScheduleRetentionSpec is a retention policy
  7831. properties:
  7832. duration:
  7833. description: Duration represents the retention duration for a snapshot
  7834. type: string
  7835. path:
  7836. description: Path is the path to snapshot
  7837. type: string
  7838. type: object
  7839. type: array
  7840. snapshotSchedules:
  7841. description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
  7842. items:
  7843. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  7844. properties:
  7845. interval:
  7846. description: Interval represent the periodicity of the snapshot.
  7847. type: string
  7848. path:
  7849. description: Path is the path to snapshot, only valid for CephFS
  7850. type: string
  7851. startTime:
  7852. description: StartTime indicates when to start the snapshot
  7853. type: string
  7854. type: object
  7855. type: array
  7856. type: object
  7857. preserveFilesystemOnDelete:
  7858. description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
  7859. type: boolean
  7860. preservePoolsOnDelete:
  7861. description: Preserve pools on filesystem deletion
  7862. type: boolean
  7863. statusCheck:
  7864. description: The mirroring statusCheck
  7865. properties:
  7866. mirror:
  7867. description: HealthCheckSpec represents the health check of an object store bucket
  7868. nullable: true
  7869. properties:
  7870. disabled:
  7871. type: boolean
  7872. interval:
  7873. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  7874. type: string
  7875. timeout:
  7876. type: string
  7877. type: object
  7878. type: object
  7879. x-kubernetes-preserve-unknown-fields: true
  7880. required:
  7881. - dataPools
  7882. - metadataPool
  7883. - metadataServer
  7884. type: object
  7885. status:
  7886. description: CephFilesystemStatus represents the status of a Ceph Filesystem
  7887. properties:
  7888. conditions:
  7889. items:
  7890. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  7891. properties:
  7892. lastHeartbeatTime:
  7893. format: date-time
  7894. type: string
  7895. lastTransitionTime:
  7896. format: date-time
  7897. type: string
  7898. message:
  7899. type: string
  7900. reason:
  7901. description: ConditionReason is a reason for a condition
  7902. type: string
  7903. status:
  7904. type: string
  7905. type:
  7906. description: ConditionType represent a resource's status
  7907. type: string
  7908. type: object
  7909. type: array
  7910. info:
  7911. additionalProperties:
  7912. type: string
  7913. description: Use only info and put mirroringStatus in it?
  7914. nullable: true
  7915. type: object
  7916. mirroringStatus:
  7917. description: MirroringStatus is the filesystem mirroring status
  7918. properties:
  7919. daemonsStatus:
  7920. description: PoolMirroringStatus is the mirroring status of a filesystem
  7921. items:
  7922. description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem
  7923. properties:
  7924. daemon_id:
  7925. description: DaemonID is the cephfs-mirror name
  7926. type: integer
  7927. filesystems:
  7928. description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
  7929. items:
  7930. description: FilesystemsSpec is spec for the mirrored filesystem
  7931. properties:
  7932. directory_count:
  7933. description: DirectoryCount is the number of directories in the filesystem
  7934. type: integer
  7935. filesystem_id:
  7936. description: FilesystemID is the filesystem identifier
  7937. type: integer
  7938. name:
  7939. description: Name is name of the filesystem
  7940. type: string
  7941. peers:
  7942. description: Peers represents the mirroring peers
  7943. items:
  7944. description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror
  7945. properties:
  7946. remote:
  7947. description: Remote are the remote cluster information
  7948. properties:
  7949. client_name:
  7950. description: ClientName is cephx name
  7951. type: string
  7952. cluster_name:
  7953. description: ClusterName is the name of the cluster
  7954. type: string
  7955. fs_name:
  7956. description: FsName is the filesystem name
  7957. type: string
  7958. type: object
  7959. stats:
  7960. description: Stats are the stat a peer mirror
  7961. properties:
  7962. failure_count:
  7963. description: FailureCount is the number of mirroring failure
  7964. type: integer
  7965. recovery_count:
  7966. description: RecoveryCount is the number of recovery attempted after failures
  7967. type: integer
  7968. type: object
  7969. uuid:
  7970. description: UUID is the peer unique identifier
  7971. type: string
  7972. type: object
  7973. type: array
  7974. type: object
  7975. type: array
  7976. type: object
  7977. nullable: true
  7978. type: array
  7979. details:
  7980. description: Details contains potential status errors
  7981. type: string
  7982. lastChanged:
  7983. description: LastChanged is the last time time the status last changed
  7984. type: string
  7985. lastChecked:
  7986. description: LastChecked is the last time time the status was checked
  7987. type: string
  7988. type: object
  7989. observedGeneration:
  7990. description: ObservedGeneration is the latest generation observed by the controller.
  7991. format: int64
  7992. type: integer
  7993. phase:
  7994. description: ConditionType represent a resource's status
  7995. type: string
  7996. snapshotScheduleStatus:
  7997. description: FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
  7998. properties:
  7999. details:
  8000. description: Details contains potential status errors
  8001. type: string
  8002. lastChanged:
  8003. description: LastChanged is the last time time the status last changed
  8004. type: string
  8005. lastChecked:
  8006. description: LastChecked is the last time time the status was checked
  8007. type: string
  8008. snapshotSchedules:
  8009. description: SnapshotSchedules is the list of snapshots scheduled
  8010. items:
  8011. description: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
  8012. properties:
  8013. fs:
  8014. description: Fs is the name of the Ceph Filesystem
  8015. type: string
  8016. path:
  8017. description: Path is the path on the filesystem
  8018. type: string
  8019. rel_path:
  8020. type: string
  8021. retention:
  8022. description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
  8023. properties:
  8024. active:
  8025. description: Active is whether the scheduled is active or not
  8026. type: boolean
  8027. created:
  8028. description: Created is when the snapshot schedule was created
  8029. type: string
  8030. created_count:
  8031. description: CreatedCount is total amount of snapshots
  8032. type: integer
  8033. first:
  8034. description: First is when the first snapshot schedule was taken
  8035. type: string
  8036. last:
  8037. description: Last is when the last snapshot schedule was taken
  8038. type: string
  8039. last_pruned:
  8040. description: LastPruned is when the last snapshot schedule was pruned
  8041. type: string
  8042. pruned_count:
  8043. description: PrunedCount is total amount of pruned snapshots
  8044. type: integer
  8045. start:
  8046. description: Start is when the snapshot schedule starts
  8047. type: string
  8048. type: object
  8049. schedule:
  8050. type: string
  8051. subvol:
  8052. description: Subvol is the name of the sub volume
  8053. type: string
  8054. type: object
  8055. nullable: true
  8056. type: array
  8057. type: object
  8058. type: object
  8059. x-kubernetes-preserve-unknown-fields: true
  8060. required:
  8061. - metadata
  8062. - spec
  8063. type: object
  8064. served: true
  8065. storage: true
  8066. subresources:
  8067. status: {}
  8068. ---
  8069. # Source: rook-ceph/templates/resources.yaml
  8070. apiVersion: apiextensions.k8s.io/v1
  8071. kind: CustomResourceDefinition
  8072. metadata:
  8073. annotations:
  8074. controller-gen.kubebuilder.io/version: v0.11.3
  8075. helm.sh/resource-policy: keep
  8076. creationTimestamp: null
  8077. name: cephfilesystemsubvolumegroups.ceph.rook.io
  8078. spec:
  8079. group: ceph.rook.io
  8080. names:
  8081. kind: CephFilesystemSubVolumeGroup
  8082. listKind: CephFilesystemSubVolumeGroupList
  8083. plural: cephfilesystemsubvolumegroups
  8084. singular: cephfilesystemsubvolumegroup
  8085. scope: Namespaced
  8086. versions:
  8087. - additionalPrinterColumns:
  8088. - jsonPath: .status.phase
  8089. name: Phase
  8090. type: string
  8091. name: v1
  8092. schema:
  8093. openAPIV3Schema:
  8094. description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
  8095. properties:
  8096. apiVersion:
  8097. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8098. type: string
  8099. kind:
  8100. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8101. type: string
  8102. metadata:
  8103. type: object
  8104. spec:
  8105. description: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
  8106. properties:
  8107. filesystemName:
  8108. description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
  8109. type: string
  8110. required:
  8111. - filesystemName
  8112. type: object
  8113. status:
  8114. description: Status represents the status of a CephFilesystem SubvolumeGroup
  8115. properties:
  8116. info:
  8117. additionalProperties:
  8118. type: string
  8119. nullable: true
  8120. type: object
  8121. observedGeneration:
  8122. description: ObservedGeneration is the latest generation observed by the controller.
  8123. format: int64
  8124. type: integer
  8125. phase:
  8126. description: ConditionType represent a resource's status
  8127. type: string
  8128. type: object
  8129. x-kubernetes-preserve-unknown-fields: true
  8130. required:
  8131. - metadata
  8132. - spec
  8133. type: object
  8134. served: true
  8135. storage: true
  8136. subresources:
  8137. status: {}
  8138. ---
  8139. # Source: rook-ceph/templates/resources.yaml
  8140. apiVersion: apiextensions.k8s.io/v1
  8141. kind: CustomResourceDefinition
  8142. metadata:
  8143. annotations:
  8144. controller-gen.kubebuilder.io/version: v0.11.3
  8145. helm.sh/resource-policy: keep
  8146. creationTimestamp: null
  8147. name: cephnfses.ceph.rook.io
  8148. spec:
  8149. group: ceph.rook.io
  8150. names:
  8151. kind: CephNFS
  8152. listKind: CephNFSList
  8153. plural: cephnfses
  8154. shortNames:
  8155. - nfs
  8156. singular: cephnfs
  8157. scope: Namespaced
  8158. versions:
  8159. - name: v1
  8160. schema:
  8161. openAPIV3Schema:
  8162. description: CephNFS represents a Ceph NFS
  8163. properties:
  8164. apiVersion:
  8165. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  8166. type: string
  8167. kind:
  8168. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  8169. type: string
  8170. metadata:
  8171. type: object
  8172. spec:
  8173. description: NFSGaneshaSpec represents the spec of an nfs ganesha server
  8174. properties:
  8175. rados:
  8176. description: RADOS is the Ganesha RADOS specification
  8177. nullable: true
  8178. properties:
  8179. namespace:
  8180. description: The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific v16+, this is internally set to the name of the CephNFS.
  8181. type: string
  8182. pool:
  8183. description: The Ceph pool used store the shared configuration for NFS-Ganesha daemons. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific 16.2.7+, this is internally hardcoded to ".nfs".
  8184. type: string
  8185. type: object
  8186. security:
  8187. description: Security allows specifying security configurations for the NFS cluster
  8188. nullable: true
  8189. properties:
  8190. kerberos:
  8191. description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
  8192. nullable: true
  8193. properties:
  8194. configFiles:
  8195. description: "ConfigFiles defines where the Kerberos configuration should be sourced from. Config files will be placed into the `/etc/krb5.conf.rook/` directory. \n If this is left empty, Rook will not add any files. This allows you to manage the files yourself however you wish. For example, you may build them into your custom Ceph container image or use the Vault agent injector to securely add the files via annotations on the CephNFS spec (passed to the NFS server pods). \n Rook configures Kerberos to log to stderr. We suggest removing logging sections from config files to avoid consuming unnecessary disk space from logging to files."
  8196. properties:
  8197. volumeSource:
  8198. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for Kerberos configuration files like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. The volume may contain multiple files, all of which will be loaded.
  8199. properties:
  8200. configMap:
  8201. description: configMap represents a configMap that should populate this volume
  8202. properties:
  8203. defaultMode:
  8204. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8205. format: int32
  8206. type: integer
  8207. items:
  8208. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8209. items:
  8210. description: Maps a string key to a path within a volume.
  8211. properties:
  8212. key:
  8213. description: key is the key to project.
  8214. type: string
  8215. mode:
  8216. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8217. format: int32
  8218. type: integer
  8219. path:
  8220. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8221. type: string
  8222. required:
  8223. - key
  8224. - path
  8225. type: object
  8226. type: array
  8227. name:
  8228. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8229. type: string
  8230. optional:
  8231. description: optional specify whether the ConfigMap or its keys must be defined
  8232. type: boolean
  8233. type: object
  8234. x-kubernetes-map-type: atomic
  8235. emptyDir:
  8236. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8237. properties:
  8238. medium:
  8239. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8240. type: string
  8241. sizeLimit:
  8242. anyOf:
  8243. - type: integer
  8244. - type: string
  8245. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8246. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8247. x-kubernetes-int-or-string: true
  8248. type: object
  8249. hostPath:
  8250. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8251. properties:
  8252. path:
  8253. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8254. type: string
  8255. type:
  8256. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8257. type: string
  8258. required:
  8259. - path
  8260. type: object
  8261. persistentVolumeClaim:
  8262. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8263. properties:
  8264. claimName:
  8265. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8266. type: string
  8267. readOnly:
  8268. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8269. type: boolean
  8270. required:
  8271. - claimName
  8272. type: object
  8273. projected:
  8274. description: projected items for all in one resources secrets, configmaps, and downward API
  8275. properties:
  8276. defaultMode:
  8277. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8278. format: int32
  8279. type: integer
  8280. sources:
  8281. description: sources is the list of volume projections
  8282. items:
  8283. description: Projection that may be projected along with other supported volume types
  8284. properties:
  8285. configMap:
  8286. description: configMap information about the configMap data to project
  8287. properties:
  8288. items:
  8289. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8290. items:
  8291. description: Maps a string key to a path within a volume.
  8292. properties:
  8293. key:
  8294. description: key is the key to project.
  8295. type: string
  8296. mode:
  8297. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8298. format: int32
  8299. type: integer
  8300. path:
  8301. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8302. type: string
  8303. required:
  8304. - key
  8305. - path
  8306. type: object
  8307. type: array
  8308. name:
  8309. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8310. type: string
  8311. optional:
  8312. description: optional specify whether the ConfigMap or its keys must be defined
  8313. type: boolean
  8314. type: object
  8315. x-kubernetes-map-type: atomic
  8316. downwardAPI:
  8317. description: downwardAPI information about the downwardAPI data to project
  8318. properties:
  8319. items:
  8320. description: Items is a list of DownwardAPIVolume file
  8321. items:
  8322. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8323. properties:
  8324. fieldRef:
  8325. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8326. properties:
  8327. apiVersion:
  8328. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8329. type: string
  8330. fieldPath:
  8331. description: Path of the field to select in the specified API version.
  8332. type: string
  8333. required:
  8334. - fieldPath
  8335. type: object
  8336. x-kubernetes-map-type: atomic
  8337. mode:
  8338. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8339. format: int32
  8340. type: integer
  8341. path:
  8342. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8343. type: string
  8344. resourceFieldRef:
  8345. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8346. properties:
  8347. containerName:
  8348. description: 'Container name: required for volumes, optional for env vars'
  8349. type: string
  8350. divisor:
  8351. anyOf:
  8352. - type: integer
  8353. - type: string
  8354. description: Specifies the output format of the exposed resources, defaults to "1"
  8355. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8356. x-kubernetes-int-or-string: true
  8357. resource:
  8358. description: 'Required: resource to select'
  8359. type: string
  8360. required:
  8361. - resource
  8362. type: object
  8363. x-kubernetes-map-type: atomic
  8364. required:
  8365. - path
  8366. type: object
  8367. type: array
  8368. type: object
  8369. secret:
  8370. description: secret information about the secret data to project
  8371. properties:
  8372. items:
  8373. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8374. items:
  8375. description: Maps a string key to a path within a volume.
  8376. properties:
  8377. key:
  8378. description: key is the key to project.
  8379. type: string
  8380. mode:
  8381. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8382. format: int32
  8383. type: integer
  8384. path:
  8385. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8386. type: string
  8387. required:
  8388. - key
  8389. - path
  8390. type: object
  8391. type: array
  8392. name:
  8393. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8394. type: string
  8395. optional:
  8396. description: optional field specify whether the Secret or its key must be defined
  8397. type: boolean
  8398. type: object
  8399. x-kubernetes-map-type: atomic
  8400. serviceAccountToken:
  8401. description: serviceAccountToken is information about the serviceAccountToken data to project
  8402. properties:
  8403. audience:
  8404. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8405. type: string
  8406. expirationSeconds:
  8407. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8408. format: int64
  8409. type: integer
  8410. path:
  8411. description: path is the path relative to the mount point of the file to project the token into.
  8412. type: string
  8413. required:
  8414. - path
  8415. type: object
  8416. type: object
  8417. type: array
  8418. type: object
  8419. secret:
  8420. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8421. properties:
  8422. defaultMode:
  8423. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8424. format: int32
  8425. type: integer
  8426. items:
  8427. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8428. items:
  8429. description: Maps a string key to a path within a volume.
  8430. properties:
  8431. key:
  8432. description: key is the key to project.
  8433. type: string
  8434. mode:
  8435. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8436. format: int32
  8437. type: integer
  8438. path:
  8439. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8440. type: string
  8441. required:
  8442. - key
  8443. - path
  8444. type: object
  8445. type: array
  8446. optional:
  8447. description: optional field specify whether the Secret or its keys must be defined
  8448. type: boolean
  8449. secretName:
  8450. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8451. type: string
  8452. type: object
  8453. type: object
  8454. type: object
  8455. domainName:
  8456. description: DomainName should be set to the Kerberos Realm.
  8457. type: string
  8458. keytabFile:
  8459. description: KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file. This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  8460. properties:
  8461. volumeSource:
  8462. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the Kerberos keytab file like what is normally used to configure Volumes for a Pod. For example, a Secret or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: krb5.keytab`. For example, in a Secret, the data item must be named `krb5.keytab`, or `items` must be defined to select the key and give it path `krb5.keytab`. A HostPath directory must have the `krb5.keytab` file. 2. The volume or config file must have mode 0600.'
  8463. properties:
  8464. configMap:
  8465. description: configMap represents a configMap that should populate this volume
  8466. properties:
  8467. defaultMode:
  8468. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8469. format: int32
  8470. type: integer
  8471. items:
  8472. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8473. items:
  8474. description: Maps a string key to a path within a volume.
  8475. properties:
  8476. key:
  8477. description: key is the key to project.
  8478. type: string
  8479. mode:
  8480. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8481. format: int32
  8482. type: integer
  8483. path:
  8484. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8485. type: string
  8486. required:
  8487. - key
  8488. - path
  8489. type: object
  8490. type: array
  8491. name:
  8492. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8493. type: string
  8494. optional:
  8495. description: optional specify whether the ConfigMap or its keys must be defined
  8496. type: boolean
  8497. type: object
  8498. x-kubernetes-map-type: atomic
  8499. emptyDir:
  8500. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8501. properties:
  8502. medium:
  8503. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8504. type: string
  8505. sizeLimit:
  8506. anyOf:
  8507. - type: integer
  8508. - type: string
  8509. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8510. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8511. x-kubernetes-int-or-string: true
  8512. type: object
  8513. hostPath:
  8514. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8515. properties:
  8516. path:
  8517. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8518. type: string
  8519. type:
  8520. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8521. type: string
  8522. required:
  8523. - path
  8524. type: object
  8525. persistentVolumeClaim:
  8526. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8527. properties:
  8528. claimName:
  8529. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8530. type: string
  8531. readOnly:
  8532. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8533. type: boolean
  8534. required:
  8535. - claimName
  8536. type: object
  8537. projected:
  8538. description: projected items for all in one resources secrets, configmaps, and downward API
  8539. properties:
  8540. defaultMode:
  8541. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8542. format: int32
  8543. type: integer
  8544. sources:
  8545. description: sources is the list of volume projections
  8546. items:
  8547. description: Projection that may be projected along with other supported volume types
  8548. properties:
  8549. configMap:
  8550. description: configMap information about the configMap data to project
  8551. properties:
  8552. items:
  8553. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8554. items:
  8555. description: Maps a string key to a path within a volume.
  8556. properties:
  8557. key:
  8558. description: key is the key to project.
  8559. type: string
  8560. mode:
  8561. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8562. format: int32
  8563. type: integer
  8564. path:
  8565. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8566. type: string
  8567. required:
  8568. - key
  8569. - path
  8570. type: object
  8571. type: array
  8572. name:
  8573. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8574. type: string
  8575. optional:
  8576. description: optional specify whether the ConfigMap or its keys must be defined
  8577. type: boolean
  8578. type: object
  8579. x-kubernetes-map-type: atomic
  8580. downwardAPI:
  8581. description: downwardAPI information about the downwardAPI data to project
  8582. properties:
  8583. items:
  8584. description: Items is a list of DownwardAPIVolume file
  8585. items:
  8586. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8587. properties:
  8588. fieldRef:
  8589. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8590. properties:
  8591. apiVersion:
  8592. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8593. type: string
  8594. fieldPath:
  8595. description: Path of the field to select in the specified API version.
  8596. type: string
  8597. required:
  8598. - fieldPath
  8599. type: object
  8600. x-kubernetes-map-type: atomic
  8601. mode:
  8602. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8603. format: int32
  8604. type: integer
  8605. path:
  8606. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8607. type: string
  8608. resourceFieldRef:
  8609. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8610. properties:
  8611. containerName:
  8612. description: 'Container name: required for volumes, optional for env vars'
  8613. type: string
  8614. divisor:
  8615. anyOf:
  8616. - type: integer
  8617. - type: string
  8618. description: Specifies the output format of the exposed resources, defaults to "1"
  8619. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8620. x-kubernetes-int-or-string: true
  8621. resource:
  8622. description: 'Required: resource to select'
  8623. type: string
  8624. required:
  8625. - resource
  8626. type: object
  8627. x-kubernetes-map-type: atomic
  8628. required:
  8629. - path
  8630. type: object
  8631. type: array
  8632. type: object
  8633. secret:
  8634. description: secret information about the secret data to project
  8635. properties:
  8636. items:
  8637. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8638. items:
  8639. description: Maps a string key to a path within a volume.
  8640. properties:
  8641. key:
  8642. description: key is the key to project.
  8643. type: string
  8644. mode:
  8645. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8646. format: int32
  8647. type: integer
  8648. path:
  8649. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8650. type: string
  8651. required:
  8652. - key
  8653. - path
  8654. type: object
  8655. type: array
  8656. name:
  8657. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8658. type: string
  8659. optional:
  8660. description: optional field specify whether the Secret or its key must be defined
  8661. type: boolean
  8662. type: object
  8663. x-kubernetes-map-type: atomic
  8664. serviceAccountToken:
  8665. description: serviceAccountToken is information about the serviceAccountToken data to project
  8666. properties:
  8667. audience:
  8668. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8669. type: string
  8670. expirationSeconds:
  8671. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8672. format: int64
  8673. type: integer
  8674. path:
  8675. description: path is the path relative to the mount point of the file to project the token into.
  8676. type: string
  8677. required:
  8678. - path
  8679. type: object
  8680. type: object
  8681. type: array
  8682. type: object
  8683. secret:
  8684. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8685. properties:
  8686. defaultMode:
  8687. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8688. format: int32
  8689. type: integer
  8690. items:
  8691. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8692. items:
  8693. description: Maps a string key to a path within a volume.
  8694. properties:
  8695. key:
  8696. description: key is the key to project.
  8697. type: string
  8698. mode:
  8699. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8700. format: int32
  8701. type: integer
  8702. path:
  8703. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8704. type: string
  8705. required:
  8706. - key
  8707. - path
  8708. type: object
  8709. type: array
  8710. optional:
  8711. description: optional field specify whether the Secret or its keys must be defined
  8712. type: boolean
  8713. secretName:
  8714. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8715. type: string
  8716. type: object
  8717. type: object
  8718. type: object
  8719. principalName:
  8720. default: nfs
  8721. description: 'PrincipalName corresponds directly to NFS-Ganesha''s NFS_KRB5:PrincipalName config. In practice, this is the service prefix of the principal name. The default is "nfs". This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between) and (b) the Realm configured in the user-provided krb5.conf to determine the full principal name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net. See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.'
  8722. type: string
  8723. type: object
  8724. sssd:
  8725. description: SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to provide user ID mapping from a number of sources. See https://sssd.io for more information about the SSSD project.
  8726. nullable: true
  8727. properties:
  8728. sidecar:
  8729. description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
  8730. properties:
  8731. additionalFiles:
  8732. description: AdditionalFiles defines any number of additional files that should be mounted into the SSSD sidecar. These files may be referenced by the sssd.conf config file.
  8733. items:
  8734. description: SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD configuration should come from and are made available.
  8735. properties:
  8736. subPath:
  8737. description: SubPath defines the sub-path in `/etc/sssd/rook-additional/` where the additional file(s) will be placed. Each subPath definition must be unique and must not contain ':'.
  8738. minLength: 1
  8739. pattern: ^[^:]+$
  8740. type: string
  8741. volumeSource:
  8742. description: VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the additional file(s) like what is normally used to configure Volumes for a Pod. Fore example, a ConfigMap, Secret, or HostPath. Each VolumeSource adds one or more additional files to the SSSD sidecar container in the `/etc/sssd/rook-additional/<subPath>` directory. Be aware that some files may need to have a specific file mode like 0600 due to requirements by SSSD for some files. For example, CA or TLS certificates.
  8743. properties:
  8744. configMap:
  8745. description: configMap represents a configMap that should populate this volume
  8746. properties:
  8747. defaultMode:
  8748. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8749. format: int32
  8750. type: integer
  8751. items:
  8752. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8753. items:
  8754. description: Maps a string key to a path within a volume.
  8755. properties:
  8756. key:
  8757. description: key is the key to project.
  8758. type: string
  8759. mode:
  8760. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8761. format: int32
  8762. type: integer
  8763. path:
  8764. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8765. type: string
  8766. required:
  8767. - key
  8768. - path
  8769. type: object
  8770. type: array
  8771. name:
  8772. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8773. type: string
  8774. optional:
  8775. description: optional specify whether the ConfigMap or its keys must be defined
  8776. type: boolean
  8777. type: object
  8778. x-kubernetes-map-type: atomic
  8779. emptyDir:
  8780. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8781. properties:
  8782. medium:
  8783. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8784. type: string
  8785. sizeLimit:
  8786. anyOf:
  8787. - type: integer
  8788. - type: string
  8789. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  8790. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8791. x-kubernetes-int-or-string: true
  8792. type: object
  8793. hostPath:
  8794. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  8795. properties:
  8796. path:
  8797. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8798. type: string
  8799. type:
  8800. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  8801. type: string
  8802. required:
  8803. - path
  8804. type: object
  8805. persistentVolumeClaim:
  8806. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8807. properties:
  8808. claimName:
  8809. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  8810. type: string
  8811. readOnly:
  8812. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  8813. type: boolean
  8814. required:
  8815. - claimName
  8816. type: object
  8817. projected:
  8818. description: projected items for all in one resources secrets, configmaps, and downward API
  8819. properties:
  8820. defaultMode:
  8821. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  8822. format: int32
  8823. type: integer
  8824. sources:
  8825. description: sources is the list of volume projections
  8826. items:
  8827. description: Projection that may be projected along with other supported volume types
  8828. properties:
  8829. configMap:
  8830. description: configMap information about the configMap data to project
  8831. properties:
  8832. items:
  8833. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8834. items:
  8835. description: Maps a string key to a path within a volume.
  8836. properties:
  8837. key:
  8838. description: key is the key to project.
  8839. type: string
  8840. mode:
  8841. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8842. format: int32
  8843. type: integer
  8844. path:
  8845. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8846. type: string
  8847. required:
  8848. - key
  8849. - path
  8850. type: object
  8851. type: array
  8852. name:
  8853. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8854. type: string
  8855. optional:
  8856. description: optional specify whether the ConfigMap or its keys must be defined
  8857. type: boolean
  8858. type: object
  8859. x-kubernetes-map-type: atomic
  8860. downwardAPI:
  8861. description: downwardAPI information about the downwardAPI data to project
  8862. properties:
  8863. items:
  8864. description: Items is a list of DownwardAPIVolume file
  8865. items:
  8866. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  8867. properties:
  8868. fieldRef:
  8869. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  8870. properties:
  8871. apiVersion:
  8872. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  8873. type: string
  8874. fieldPath:
  8875. description: Path of the field to select in the specified API version.
  8876. type: string
  8877. required:
  8878. - fieldPath
  8879. type: object
  8880. x-kubernetes-map-type: atomic
  8881. mode:
  8882. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8883. format: int32
  8884. type: integer
  8885. path:
  8886. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  8887. type: string
  8888. resourceFieldRef:
  8889. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  8890. properties:
  8891. containerName:
  8892. description: 'Container name: required for volumes, optional for env vars'
  8893. type: string
  8894. divisor:
  8895. anyOf:
  8896. - type: integer
  8897. - type: string
  8898. description: Specifies the output format of the exposed resources, defaults to "1"
  8899. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  8900. x-kubernetes-int-or-string: true
  8901. resource:
  8902. description: 'Required: resource to select'
  8903. type: string
  8904. required:
  8905. - resource
  8906. type: object
  8907. x-kubernetes-map-type: atomic
  8908. required:
  8909. - path
  8910. type: object
  8911. type: array
  8912. type: object
  8913. secret:
  8914. description: secret information about the secret data to project
  8915. properties:
  8916. items:
  8917. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8918. items:
  8919. description: Maps a string key to a path within a volume.
  8920. properties:
  8921. key:
  8922. description: key is the key to project.
  8923. type: string
  8924. mode:
  8925. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8926. format: int32
  8927. type: integer
  8928. path:
  8929. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8930. type: string
  8931. required:
  8932. - key
  8933. - path
  8934. type: object
  8935. type: array
  8936. name:
  8937. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  8938. type: string
  8939. optional:
  8940. description: optional field specify whether the Secret or its key must be defined
  8941. type: boolean
  8942. type: object
  8943. x-kubernetes-map-type: atomic
  8944. serviceAccountToken:
  8945. description: serviceAccountToken is information about the serviceAccountToken data to project
  8946. properties:
  8947. audience:
  8948. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  8949. type: string
  8950. expirationSeconds:
  8951. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  8952. format: int64
  8953. type: integer
  8954. path:
  8955. description: path is the path relative to the mount point of the file to project the token into.
  8956. type: string
  8957. required:
  8958. - path
  8959. type: object
  8960. type: object
  8961. type: array
  8962. type: object
  8963. secret:
  8964. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8965. properties:
  8966. defaultMode:
  8967. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8968. format: int32
  8969. type: integer
  8970. items:
  8971. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  8972. items:
  8973. description: Maps a string key to a path within a volume.
  8974. properties:
  8975. key:
  8976. description: key is the key to project.
  8977. type: string
  8978. mode:
  8979. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  8980. format: int32
  8981. type: integer
  8982. path:
  8983. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  8984. type: string
  8985. required:
  8986. - key
  8987. - path
  8988. type: object
  8989. type: array
  8990. optional:
  8991. description: optional field specify whether the Secret or its keys must be defined
  8992. type: boolean
  8993. secretName:
  8994. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  8995. type: string
  8996. type: object
  8997. type: object
  8998. required:
  8999. - subPath
  9000. - volumeSource
  9001. type: object
  9002. type: array
  9003. debugLevel:
  9004. description: 'DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise, this may be a value between 1 and 10. See SSSD docs for more info: https://sssd.io/troubleshooting/basics.html#sssd-debug-logs'
  9005. maximum: 10
  9006. minimum: 0
  9007. type: integer
  9008. image:
  9009. description: Image defines the container image that should be used for the SSSD sidecar.
  9010. minLength: 1
  9011. type: string
  9012. resources:
  9013. description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
  9014. properties:
  9015. claims:
  9016. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  9017. items:
  9018. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9019. properties:
  9020. name:
  9021. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  9022. type: string
  9023. required:
  9024. - name
  9025. type: object
  9026. type: array
  9027. x-kubernetes-list-map-keys:
  9028. - name
  9029. x-kubernetes-list-type: map
  9030. limits:
  9031. additionalProperties:
  9032. anyOf:
  9033. - type: integer
  9034. - type: string
  9035. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9036. x-kubernetes-int-or-string: true
  9037. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9038. type: object
  9039. requests:
  9040. additionalProperties:
  9041. anyOf:
  9042. - type: integer
  9043. - type: string
  9044. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9045. x-kubernetes-int-or-string: true
  9046. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9047. type: object
  9048. type: object
  9049. sssdConfigFile:
  9050. description: SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file. This allows you to manage the `sssd.conf` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
  9051. properties:
  9052. volumeSource:
  9053. description: 'VolumeSource accepts a pared down version of the standard Kubernetes VolumeSource for the SSSD configuration file like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: sssd.conf`. For example, in a ConfigMap, the data item must be named `sssd.conf`, or `items` must be defined to select the key and give it path `sssd.conf`. A HostPath directory must have the `sssd.conf` file. 2. The volume or config file must have mode 0600.'
  9054. properties:
  9055. configMap:
  9056. description: configMap represents a configMap that should populate this volume
  9057. properties:
  9058. defaultMode:
  9059. description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9060. format: int32
  9061. type: integer
  9062. items:
  9063. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9064. items:
  9065. description: Maps a string key to a path within a volume.
  9066. properties:
  9067. key:
  9068. description: key is the key to project.
  9069. type: string
  9070. mode:
  9071. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9072. format: int32
  9073. type: integer
  9074. path:
  9075. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9076. type: string
  9077. required:
  9078. - key
  9079. - path
  9080. type: object
  9081. type: array
  9082. name:
  9083. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9084. type: string
  9085. optional:
  9086. description: optional specify whether the ConfigMap or its keys must be defined
  9087. type: boolean
  9088. type: object
  9089. x-kubernetes-map-type: atomic
  9090. emptyDir:
  9091. description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9092. properties:
  9093. medium:
  9094. description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9095. type: string
  9096. sizeLimit:
  9097. anyOf:
  9098. - type: integer
  9099. - type: string
  9100. description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
  9101. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9102. x-kubernetes-int-or-string: true
  9103. type: object
  9104. hostPath:
  9105. description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath ---'
  9106. properties:
  9107. path:
  9108. description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9109. type: string
  9110. type:
  9111. description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
  9112. type: string
  9113. required:
  9114. - path
  9115. type: object
  9116. persistentVolumeClaim:
  9117. description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9118. properties:
  9119. claimName:
  9120. description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  9121. type: string
  9122. readOnly:
  9123. description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  9124. type: boolean
  9125. required:
  9126. - claimName
  9127. type: object
  9128. projected:
  9129. description: projected items for all in one resources secrets, configmaps, and downward API
  9130. properties:
  9131. defaultMode:
  9132. description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  9133. format: int32
  9134. type: integer
  9135. sources:
  9136. description: sources is the list of volume projections
  9137. items:
  9138. description: Projection that may be projected along with other supported volume types
  9139. properties:
  9140. configMap:
  9141. description: configMap information about the configMap data to project
  9142. properties:
  9143. items:
  9144. description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9145. items:
  9146. description: Maps a string key to a path within a volume.
  9147. properties:
  9148. key:
  9149. description: key is the key to project.
  9150. type: string
  9151. mode:
  9152. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9153. format: int32
  9154. type: integer
  9155. path:
  9156. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9157. type: string
  9158. required:
  9159. - key
  9160. - path
  9161. type: object
  9162. type: array
  9163. name:
  9164. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9165. type: string
  9166. optional:
  9167. description: optional specify whether the ConfigMap or its keys must be defined
  9168. type: boolean
  9169. type: object
  9170. x-kubernetes-map-type: atomic
  9171. downwardAPI:
  9172. description: downwardAPI information about the downwardAPI data to project
  9173. properties:
  9174. items:
  9175. description: Items is a list of DownwardAPIVolume file
  9176. items:
  9177. description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  9178. properties:
  9179. fieldRef:
  9180. description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  9181. properties:
  9182. apiVersion:
  9183. description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  9184. type: string
  9185. fieldPath:
  9186. description: Path of the field to select in the specified API version.
  9187. type: string
  9188. required:
  9189. - fieldPath
  9190. type: object
  9191. x-kubernetes-map-type: atomic
  9192. mode:
  9193. description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9194. format: int32
  9195. type: integer
  9196. path:
  9197. description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  9198. type: string
  9199. resourceFieldRef:
  9200. description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  9201. properties:
  9202. containerName:
  9203. description: 'Container name: required for volumes, optional for env vars'
  9204. type: string
  9205. divisor:
  9206. anyOf:
  9207. - type: integer
  9208. - type: string
  9209. description: Specifies the output format of the exposed resources, defaults to "1"
  9210. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9211. x-kubernetes-int-or-string: true
  9212. resource:
  9213. description: 'Required: resource to select'
  9214. type: string
  9215. required:
  9216. - resource
  9217. type: object
  9218. x-kubernetes-map-type: atomic
  9219. required:
  9220. - path
  9221. type: object
  9222. type: array
  9223. type: object
  9224. secret:
  9225. description: secret information about the secret data to project
  9226. properties:
  9227. items:
  9228. description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9229. items:
  9230. description: Maps a string key to a path within a volume.
  9231. properties:
  9232. key:
  9233. description: key is the key to project.
  9234. type: string
  9235. mode:
  9236. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9237. format: int32
  9238. type: integer
  9239. path:
  9240. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9241. type: string
  9242. required:
  9243. - key
  9244. - path
  9245. type: object
  9246. type: array
  9247. name:
  9248. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  9249. type: string
  9250. optional:
  9251. description: optional field specify whether the Secret or its key must be defined
  9252. type: boolean
  9253. type: object
  9254. x-kubernetes-map-type: atomic
  9255. serviceAccountToken:
  9256. description: serviceAccountToken is information about the serviceAccountToken data to project
  9257. properties:
  9258. audience:
  9259. description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  9260. type: string
  9261. expirationSeconds:
  9262. description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  9263. format: int64
  9264. type: integer
  9265. path:
  9266. description: path is the path relative to the mount point of the file to project the token into.
  9267. type: string
  9268. required:
  9269. - path
  9270. type: object
  9271. type: object
  9272. type: array
  9273. type: object
  9274. secret:
  9275. description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9276. properties:
  9277. defaultMode:
  9278. description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9279. format: int32
  9280. type: integer
  9281. items:
  9282. description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
  9283. items:
  9284. description: Maps a string key to a path within a volume.
  9285. properties:
  9286. key:
  9287. description: key is the key to project.
  9288. type: string
  9289. mode:
  9290. description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  9291. format: int32
  9292. type: integer
  9293. path:
  9294. description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  9295. type: string
  9296. required:
  9297. - key
  9298. - path
  9299. type: object
  9300. type: array
  9301. optional:
  9302. description: optional field specify whether the Secret or its keys must be defined
  9303. type: boolean
  9304. secretName:
  9305. description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  9306. type: string
  9307. type: object
  9308. type: object
  9309. type: object
  9310. required:
  9311. - image
  9312. type: object
  9313. type: object
  9314. type: object
  9315. server:
  9316. description: Server is the Ganesha Server specification
  9317. properties:
  9318. active:
  9319. description: The number of active Ganesha servers
  9320. type: integer
  9321. annotations:
  9322. additionalProperties:
  9323. type: string
  9324. description: The annotations-related configuration to add/set on each Pod related object.
  9325. nullable: true
  9326. type: object
  9327. x-kubernetes-preserve-unknown-fields: true
  9328. hostNetwork:
  9329. description: Whether host networking is enabled for the Ganesha server. If not set, the network settings from the cluster CR will be applied.
  9330. nullable: true
  9331. type: boolean
  9332. labels:
  9333. additionalProperties:
  9334. type: string
  9335. description: The labels-related configuration to add/set on each Pod related object.
  9336. nullable: true
  9337. type: object
  9338. x-kubernetes-preserve-unknown-fields: true
  9339. logLevel:
  9340. description: LogLevel set logging level
  9341. type: string
  9342. placement:
  9343. description: The affinity to place the ganesha pods
  9344. nullable: true
  9345. properties:
  9346. nodeAffinity:
  9347. description: NodeAffinity is a group of node affinity scheduling rules
  9348. properties:
  9349. preferredDuringSchedulingIgnoredDuringExecution:
  9350. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  9351. items:
  9352. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  9353. properties:
  9354. preference:
  9355. description: A node selector term, associated with the corresponding weight.
  9356. properties:
  9357. matchExpressions:
  9358. description: A list of node selector requirements by node's labels.
  9359. items:
  9360. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9361. properties:
  9362. key:
  9363. description: The label key that the selector applies to.
  9364. type: string
  9365. operator:
  9366. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9367. type: string
  9368. values:
  9369. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9370. items:
  9371. type: string
  9372. type: array
  9373. required:
  9374. - key
  9375. - operator
  9376. type: object
  9377. type: array
  9378. matchFields:
  9379. description: A list of node selector requirements by node's fields.
  9380. items:
  9381. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9382. properties:
  9383. key:
  9384. description: The label key that the selector applies to.
  9385. type: string
  9386. operator:
  9387. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9388. type: string
  9389. values:
  9390. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9391. items:
  9392. type: string
  9393. type: array
  9394. required:
  9395. - key
  9396. - operator
  9397. type: object
  9398. type: array
  9399. type: object
  9400. x-kubernetes-map-type: atomic
  9401. weight:
  9402. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  9403. format: int32
  9404. type: integer
  9405. required:
  9406. - preference
  9407. - weight
  9408. type: object
  9409. type: array
  9410. requiredDuringSchedulingIgnoredDuringExecution:
  9411. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  9412. properties:
  9413. nodeSelectorTerms:
  9414. description: Required. A list of node selector terms. The terms are ORed.
  9415. items:
  9416. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  9417. properties:
  9418. matchExpressions:
  9419. description: A list of node selector requirements by node's labels.
  9420. items:
  9421. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9422. properties:
  9423. key:
  9424. description: The label key that the selector applies to.
  9425. type: string
  9426. operator:
  9427. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9428. type: string
  9429. values:
  9430. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9431. items:
  9432. type: string
  9433. type: array
  9434. required:
  9435. - key
  9436. - operator
  9437. type: object
  9438. type: array
  9439. matchFields:
  9440. description: A list of node selector requirements by node's fields.
  9441. items:
  9442. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9443. properties:
  9444. key:
  9445. description: The label key that the selector applies to.
  9446. type: string
  9447. operator:
  9448. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9449. type: string
  9450. values:
  9451. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  9452. items:
  9453. type: string
  9454. type: array
  9455. required:
  9456. - key
  9457. - operator
  9458. type: object
  9459. type: array
  9460. type: object
  9461. x-kubernetes-map-type: atomic
  9462. type: array
  9463. required:
  9464. - nodeSelectorTerms
  9465. type: object
  9466. x-kubernetes-map-type: atomic
  9467. type: object
  9468. podAffinity:
  9469. description: PodAffinity is a group of inter pod affinity scheduling rules
  9470. properties:
  9471. preferredDuringSchedulingIgnoredDuringExecution:
  9472. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9473. items:
  9474. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9475. properties:
  9476. podAffinityTerm:
  9477. description: Required. A pod affinity term, associated with the corresponding weight.
  9478. properties:
  9479. labelSelector:
  9480. description: A label query over a set of resources, in this case pods.
  9481. properties:
  9482. matchExpressions:
  9483. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9484. items:
  9485. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9486. properties:
  9487. key:
  9488. description: key is the label key that the selector applies to.
  9489. type: string
  9490. operator:
  9491. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9492. type: string
  9493. values:
  9494. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9495. items:
  9496. type: string
  9497. type: array
  9498. required:
  9499. - key
  9500. - operator
  9501. type: object
  9502. type: array
  9503. matchLabels:
  9504. additionalProperties:
  9505. type: string
  9506. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9507. type: object
  9508. type: object
  9509. x-kubernetes-map-type: atomic
  9510. namespaceSelector:
  9511. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9512. properties:
  9513. matchExpressions:
  9514. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9515. items:
  9516. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9517. properties:
  9518. key:
  9519. description: key is the label key that the selector applies to.
  9520. type: string
  9521. operator:
  9522. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9523. type: string
  9524. values:
  9525. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9526. items:
  9527. type: string
  9528. type: array
  9529. required:
  9530. - key
  9531. - operator
  9532. type: object
  9533. type: array
  9534. matchLabels:
  9535. additionalProperties:
  9536. type: string
  9537. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9538. type: object
  9539. type: object
  9540. x-kubernetes-map-type: atomic
  9541. namespaces:
  9542. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9543. items:
  9544. type: string
  9545. type: array
  9546. topologyKey:
  9547. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9548. type: string
  9549. required:
  9550. - topologyKey
  9551. type: object
  9552. weight:
  9553. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9554. format: int32
  9555. type: integer
  9556. required:
  9557. - podAffinityTerm
  9558. - weight
  9559. type: object
  9560. type: array
  9561. requiredDuringSchedulingIgnoredDuringExecution:
  9562. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9563. items:
  9564. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9565. properties:
  9566. labelSelector:
  9567. description: A label query over a set of resources, in this case pods.
  9568. properties:
  9569. matchExpressions:
  9570. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9571. items:
  9572. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9573. properties:
  9574. key:
  9575. description: key is the label key that the selector applies to.
  9576. type: string
  9577. operator:
  9578. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9579. type: string
  9580. values:
  9581. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9582. items:
  9583. type: string
  9584. type: array
  9585. required:
  9586. - key
  9587. - operator
  9588. type: object
  9589. type: array
  9590. matchLabels:
  9591. additionalProperties:
  9592. type: string
  9593. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9594. type: object
  9595. type: object
  9596. x-kubernetes-map-type: atomic
  9597. namespaceSelector:
  9598. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9599. properties:
  9600. matchExpressions:
  9601. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9602. items:
  9603. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9604. properties:
  9605. key:
  9606. description: key is the label key that the selector applies to.
  9607. type: string
  9608. operator:
  9609. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9610. type: string
  9611. values:
  9612. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9613. items:
  9614. type: string
  9615. type: array
  9616. required:
  9617. - key
  9618. - operator
  9619. type: object
  9620. type: array
  9621. matchLabels:
  9622. additionalProperties:
  9623. type: string
  9624. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9625. type: object
  9626. type: object
  9627. x-kubernetes-map-type: atomic
  9628. namespaces:
  9629. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9630. items:
  9631. type: string
  9632. type: array
  9633. topologyKey:
  9634. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9635. type: string
  9636. required:
  9637. - topologyKey
  9638. type: object
  9639. type: array
  9640. type: object
  9641. podAntiAffinity:
  9642. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  9643. properties:
  9644. preferredDuringSchedulingIgnoredDuringExecution:
  9645. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  9646. items:
  9647. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  9648. properties:
  9649. podAffinityTerm:
  9650. description: Required. A pod affinity term, associated with the corresponding weight.
  9651. properties:
  9652. labelSelector:
  9653. description: A label query over a set of resources, in this case pods.
  9654. properties:
  9655. matchExpressions:
  9656. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9657. items:
  9658. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9659. properties:
  9660. key:
  9661. description: key is the label key that the selector applies to.
  9662. type: string
  9663. operator:
  9664. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9665. type: string
  9666. values:
  9667. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9668. items:
  9669. type: string
  9670. type: array
  9671. required:
  9672. - key
  9673. - operator
  9674. type: object
  9675. type: array
  9676. matchLabels:
  9677. additionalProperties:
  9678. type: string
  9679. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9680. type: object
  9681. type: object
  9682. x-kubernetes-map-type: atomic
  9683. namespaceSelector:
  9684. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9685. properties:
  9686. matchExpressions:
  9687. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9688. items:
  9689. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9690. properties:
  9691. key:
  9692. description: key is the label key that the selector applies to.
  9693. type: string
  9694. operator:
  9695. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9696. type: string
  9697. values:
  9698. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9699. items:
  9700. type: string
  9701. type: array
  9702. required:
  9703. - key
  9704. - operator
  9705. type: object
  9706. type: array
  9707. matchLabels:
  9708. additionalProperties:
  9709. type: string
  9710. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9711. type: object
  9712. type: object
  9713. x-kubernetes-map-type: atomic
  9714. namespaces:
  9715. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9716. items:
  9717. type: string
  9718. type: array
  9719. topologyKey:
  9720. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9721. type: string
  9722. required:
  9723. - topologyKey
  9724. type: object
  9725. weight:
  9726. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  9727. format: int32
  9728. type: integer
  9729. required:
  9730. - podAffinityTerm
  9731. - weight
  9732. type: object
  9733. type: array
  9734. requiredDuringSchedulingIgnoredDuringExecution:
  9735. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9736. items:
  9737. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  9738. properties:
  9739. labelSelector:
  9740. description: A label query over a set of resources, in this case pods.
  9741. properties:
  9742. matchExpressions:
  9743. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9744. items:
  9745. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9746. properties:
  9747. key:
  9748. description: key is the label key that the selector applies to.
  9749. type: string
  9750. operator:
  9751. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9752. type: string
  9753. values:
  9754. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9755. items:
  9756. type: string
  9757. type: array
  9758. required:
  9759. - key
  9760. - operator
  9761. type: object
  9762. type: array
  9763. matchLabels:
  9764. additionalProperties:
  9765. type: string
  9766. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9767. type: object
  9768. type: object
  9769. x-kubernetes-map-type: atomic
  9770. namespaceSelector:
  9771. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  9772. properties:
  9773. matchExpressions:
  9774. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9775. items:
  9776. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9777. properties:
  9778. key:
  9779. description: key is the label key that the selector applies to.
  9780. type: string
  9781. operator:
  9782. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9783. type: string
  9784. values:
  9785. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9786. items:
  9787. type: string
  9788. type: array
  9789. required:
  9790. - key
  9791. - operator
  9792. type: object
  9793. type: array
  9794. matchLabels:
  9795. additionalProperties:
  9796. type: string
  9797. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9798. type: object
  9799. type: object
  9800. x-kubernetes-map-type: atomic
  9801. namespaces:
  9802. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9803. items:
  9804. type: string
  9805. type: array
  9806. topologyKey:
  9807. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  9808. type: string
  9809. required:
  9810. - topologyKey
  9811. type: object
  9812. type: array
  9813. type: object
  9814. tolerations:
  9815. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  9816. items:
  9817. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  9818. properties:
  9819. effect:
  9820. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  9821. type: string
  9822. key:
  9823. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  9824. type: string
  9825. operator:
  9826. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  9827. type: string
  9828. tolerationSeconds:
  9829. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  9830. format: int64
  9831. type: integer
  9832. value:
  9833. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  9834. type: string
  9835. type: object
  9836. type: array
  9837. topologySpreadConstraints:
  9838. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  9839. items:
  9840. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  9841. properties:
  9842. labelSelector:
  9843. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  9844. properties:
  9845. matchExpressions:
  9846. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  9847. items:
  9848. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  9849. properties:
  9850. key:
  9851. description: key is the label key that the selector applies to.
  9852. type: string
  9853. operator:
  9854. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  9855. type: string
  9856. values:
  9857. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  9858. items:
  9859. type: string
  9860. type: array
  9861. required:
  9862. - key
  9863. - operator
  9864. type: object
  9865. type: array
  9866. matchLabels:
  9867. additionalProperties:
  9868. type: string
  9869. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  9870. type: object
  9871. type: object
  9872. x-kubernetes-map-type: atomic
  9873. matchLabelKeys:
  9874. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  9875. items:
  9876. type: string
  9877. type: array
  9878. x-kubernetes-list-type: atomic
  9879. maxSkew:
  9880. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  9881. format: int32
  9882. type: integer
  9883. minDomains:
  9884. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  9885. format: int32
  9886. type: integer
  9887. nodeAffinityPolicy:
  9888. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  9889. type: string
  9890. nodeTaintsPolicy:
  9891. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  9892. type: string
  9893. topologyKey:
  9894. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  9895. type: string
  9896. whenUnsatisfiable:
  9897. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  9898. type: string
  9899. required:
  9900. - maxSkew
  9901. - topologyKey
  9902. - whenUnsatisfiable
  9903. type: object
  9904. type: array
  9905. type: object
  9906. x-kubernetes-preserve-unknown-fields: true
  9907. priorityClassName:
  9908. description: PriorityClassName sets the priority class on the pods
  9909. type: string
  9910. resources:
  9911. description: Resources set resource requests and limits
  9912. nullable: true
  9913. properties:
  9914. claims:
  9915. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  9916. items:
  9917. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  9918. properties:
  9919. name:
  9920. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  9921. type: string
  9922. required:
  9923. - name
  9924. type: object
  9925. type: array
  9926. x-kubernetes-list-map-keys:
  9927. - name
  9928. x-kubernetes-list-type: map
  9929. limits:
  9930. additionalProperties:
  9931. anyOf:
  9932. - type: integer
  9933. - type: string
  9934. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9935. x-kubernetes-int-or-string: true
  9936. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9937. type: object
  9938. requests:
  9939. additionalProperties:
  9940. anyOf:
  9941. - type: integer
  9942. - type: string
  9943. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  9944. x-kubernetes-int-or-string: true
  9945. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  9946. type: object
  9947. type: object
  9948. x-kubernetes-preserve-unknown-fields: true
  9949. required:
  9950. - active
  9951. type: object
  9952. required:
  9953. - server
  9954. type: object
  9955. status:
  9956. description: Status represents the status of an object
  9957. properties:
  9958. conditions:
  9959. items:
  9960. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  9961. properties:
  9962. lastHeartbeatTime:
  9963. format: date-time
  9964. type: string
  9965. lastTransitionTime:
  9966. format: date-time
  9967. type: string
  9968. message:
  9969. type: string
  9970. reason:
  9971. description: ConditionReason is a reason for a condition
  9972. type: string
  9973. status:
  9974. type: string
  9975. type:
  9976. description: ConditionType represent a resource's status
  9977. type: string
  9978. type: object
  9979. type: array
  9980. observedGeneration:
  9981. description: ObservedGeneration is the latest generation observed by the controller.
  9982. format: int64
  9983. type: integer
  9984. phase:
  9985. type: string
  9986. type: object
  9987. x-kubernetes-preserve-unknown-fields: true
  9988. required:
  9989. - metadata
  9990. - spec
  9991. type: object
  9992. served: true
  9993. storage: true
  9994. subresources:
  9995. status: {}
  9996. ---
  9997. # Source: rook-ceph/templates/resources.yaml
  9998. apiVersion: apiextensions.k8s.io/v1
  9999. kind: CustomResourceDefinition
  10000. metadata:
  10001. annotations:
  10002. controller-gen.kubebuilder.io/version: v0.11.3
  10003. helm.sh/resource-policy: keep
  10004. creationTimestamp: null
  10005. name: cephobjectrealms.ceph.rook.io
  10006. spec:
  10007. group: ceph.rook.io
  10008. names:
  10009. kind: CephObjectRealm
  10010. listKind: CephObjectRealmList
  10011. plural: cephobjectrealms
  10012. singular: cephobjectrealm
  10013. scope: Namespaced
  10014. versions:
  10015. - name: v1
  10016. schema:
  10017. openAPIV3Schema:
  10018. description: CephObjectRealm represents a Ceph Object Store Gateway Realm
  10019. properties:
  10020. apiVersion:
  10021. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  10022. type: string
  10023. kind:
  10024. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  10025. type: string
  10026. metadata:
  10027. type: object
  10028. spec:
  10029. description: ObjectRealmSpec represent the spec of an ObjectRealm
  10030. nullable: true
  10031. properties:
  10032. pull:
  10033. description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
  10034. properties:
  10035. endpoint:
  10036. pattern: ^https*://
  10037. type: string
  10038. type: object
  10039. type: object
  10040. status:
  10041. description: Status represents the status of an object
  10042. properties:
  10043. conditions:
  10044. items:
  10045. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  10046. properties:
  10047. lastHeartbeatTime:
  10048. format: date-time
  10049. type: string
  10050. lastTransitionTime:
  10051. format: date-time
  10052. type: string
  10053. message:
  10054. type: string
  10055. reason:
  10056. description: ConditionReason is a reason for a condition
  10057. type: string
  10058. status:
  10059. type: string
  10060. type:
  10061. description: ConditionType represent a resource's status
  10062. type: string
  10063. type: object
  10064. type: array
  10065. observedGeneration:
  10066. description: ObservedGeneration is the latest generation observed by the controller.
  10067. format: int64
  10068. type: integer
  10069. phase:
  10070. type: string
  10071. type: object
  10072. x-kubernetes-preserve-unknown-fields: true
  10073. required:
  10074. - metadata
  10075. type: object
  10076. served: true
  10077. storage: true
  10078. subresources:
  10079. status: {}
  10080. ---
  10081. # Source: rook-ceph/templates/resources.yaml
  10082. apiVersion: apiextensions.k8s.io/v1
  10083. kind: CustomResourceDefinition
  10084. metadata:
  10085. annotations:
  10086. controller-gen.kubebuilder.io/version: v0.11.3
  10087. helm.sh/resource-policy: keep
  10088. creationTimestamp: null
  10089. name: cephobjectstores.ceph.rook.io
  10090. spec:
  10091. group: ceph.rook.io
  10092. names:
  10093. kind: CephObjectStore
  10094. listKind: CephObjectStoreList
  10095. plural: cephobjectstores
  10096. singular: cephobjectstore
  10097. scope: Namespaced
  10098. versions:
  10099. - additionalPrinterColumns:
  10100. - jsonPath: .status.phase
  10101. name: Phase
  10102. type: string
  10103. name: v1
  10104. schema:
  10105. openAPIV3Schema:
  10106. description: CephObjectStore represents a Ceph Object Store Gateway
  10107. properties:
  10108. apiVersion:
  10109. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  10110. type: string
  10111. kind:
  10112. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  10113. type: string
  10114. metadata:
  10115. type: object
  10116. spec:
  10117. description: ObjectStoreSpec represent the spec of a pool
  10118. properties:
  10119. allowUsersInNamespaces:
  10120. description: The list of allowed namespaces in addition to the object store namespace where ceph object store users may be created. Specify "*" to allow all namespaces, otherwise list individual namespaces that are to be allowed. This is useful for applications that need object store credentials to be created in their own namespace, where neither OBCs nor COSI is being used to create buckets. The default is empty.
  10121. items:
  10122. type: string
  10123. type: array
  10124. dataPool:
  10125. description: The data pool settings
  10126. nullable: true
  10127. properties:
  10128. compressionMode:
  10129. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  10130. enum:
  10131. - none
  10132. - passive
  10133. - aggressive
  10134. - force
  10135. - ""
  10136. nullable: true
  10137. type: string
  10138. crushRoot:
  10139. description: The root of the crush hierarchy utilized by the pool
  10140. nullable: true
  10141. type: string
  10142. deviceClass:
  10143. description: The device class the OSD should set to for use in the pool
  10144. nullable: true
  10145. type: string
  10146. enableRBDStats:
  10147. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  10148. type: boolean
  10149. erasureCoded:
  10150. description: The erasure code settings
  10151. properties:
  10152. algorithm:
  10153. description: The algorithm for erasure coding
  10154. type: string
  10155. codingChunks:
  10156. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  10157. minimum: 0
  10158. type: integer
  10159. dataChunks:
  10160. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  10161. minimum: 0
  10162. type: integer
  10163. required:
  10164. - codingChunks
  10165. - dataChunks
  10166. type: object
  10167. failureDomain:
  10168. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  10169. type: string
  10170. mirroring:
  10171. description: The mirroring settings
  10172. properties:
  10173. enabled:
  10174. description: Enabled whether this pool is mirrored or not
  10175. type: boolean
  10176. mode:
  10177. description: 'Mode is the mirroring mode: either pool or image'
  10178. type: string
  10179. peers:
  10180. description: Peers represents the peers spec
  10181. nullable: true
  10182. properties:
  10183. secretNames:
  10184. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  10185. items:
  10186. type: string
  10187. type: array
  10188. type: object
  10189. snapshotSchedules:
  10190. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  10191. items:
  10192. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  10193. properties:
  10194. interval:
  10195. description: Interval represent the periodicity of the snapshot.
  10196. type: string
  10197. path:
  10198. description: Path is the path to snapshot, only valid for CephFS
  10199. type: string
  10200. startTime:
  10201. description: StartTime indicates when to start the snapshot
  10202. type: string
  10203. type: object
  10204. type: array
  10205. type: object
  10206. parameters:
  10207. additionalProperties:
  10208. type: string
  10209. description: Parameters is a list of properties to enable on a given pool
  10210. nullable: true
  10211. type: object
  10212. x-kubernetes-preserve-unknown-fields: true
  10213. quotas:
  10214. description: The quota settings
  10215. nullable: true
  10216. properties:
  10217. maxBytes:
  10218. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  10219. format: int64
  10220. type: integer
  10221. maxObjects:
  10222. description: MaxObjects represents the quota in objects
  10223. format: int64
  10224. type: integer
  10225. maxSize:
  10226. description: MaxSize represents the quota in bytes as a string
  10227. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  10228. type: string
  10229. type: object
  10230. replicated:
  10231. description: The replication settings
  10232. properties:
  10233. hybridStorage:
  10234. description: HybridStorage represents hybrid storage tier settings
  10235. nullable: true
  10236. properties:
  10237. primaryDeviceClass:
  10238. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  10239. minLength: 1
  10240. type: string
  10241. secondaryDeviceClass:
  10242. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  10243. minLength: 1
  10244. type: string
  10245. required:
  10246. - primaryDeviceClass
  10247. - secondaryDeviceClass
  10248. type: object
  10249. replicasPerFailureDomain:
  10250. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  10251. minimum: 1
  10252. type: integer
  10253. requireSafeReplicaSize:
  10254. description: RequireSafeReplicaSize if false allows you to set replica 1
  10255. type: boolean
  10256. size:
  10257. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  10258. minimum: 0
  10259. type: integer
  10260. subFailureDomain:
  10261. description: SubFailureDomain the name of the sub-failure domain
  10262. type: string
  10263. targetSizeRatio:
  10264. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  10265. type: number
  10266. required:
  10267. - size
  10268. type: object
  10269. statusCheck:
  10270. description: The mirroring statusCheck
  10271. properties:
  10272. mirror:
  10273. description: HealthCheckSpec represents the health check of an object store bucket
  10274. nullable: true
  10275. properties:
  10276. disabled:
  10277. type: boolean
  10278. interval:
  10279. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  10280. type: string
  10281. timeout:
  10282. type: string
  10283. type: object
  10284. type: object
  10285. x-kubernetes-preserve-unknown-fields: true
  10286. type: object
  10287. gateway:
  10288. description: The rgw pod info
  10289. nullable: true
  10290. properties:
  10291. annotations:
  10292. additionalProperties:
  10293. type: string
  10294. description: The annotations-related configuration to add/set on each Pod related object.
  10295. nullable: true
  10296. type: object
  10297. x-kubernetes-preserve-unknown-fields: true
  10298. caBundleRef:
  10299. description: The name of the secret that stores custom ca-bundle with root and intermediate certificates.
  10300. nullable: true
  10301. type: string
  10302. dashboardEnabled:
  10303. description: Whether rgw dashboard is enabled for the rgw daemon. If not set, the rgw dashboard will be enabled.
  10304. nullable: true
  10305. type: boolean
  10306. x-kubernetes-preserve-unknown-fields: true
  10307. disableMultisiteSyncTraffic:
  10308. description: 'DisableMultisiteSyncTraffic, when true, prevents this object store''s gateways from transmitting multisite replication data. Note that this value does not affect whether gateways receive multisite replication traffic: see ObjectZone.spec.customEndpoints for that. If false or unset, this object store''s gateways will be able to transmit multisite replication data.'
  10309. type: boolean
  10310. externalRgwEndpoints:
  10311. description: ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but for stability of ObjectBucketClaims, we highly recommend that users give only a single external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
  10312. items:
  10313. description: EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress.
  10314. properties:
  10315. hostname:
  10316. description: The DNS-addressable Hostname of this endpoint. This field will be preferred over IP if both are given.
  10317. type: string
  10318. ip:
  10319. description: The IP of this endpoint. As a legacy behavior, this supports being given a DNS-adressable hostname as well.
  10320. type: string
  10321. type: object
  10322. x-kubernetes-map-type: atomic
  10323. nullable: true
  10324. type: array
  10325. hostNetwork:
  10326. description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
  10327. nullable: true
  10328. type: boolean
  10329. x-kubernetes-preserve-unknown-fields: true
  10330. instances:
  10331. description: The number of pods in the rgw replicaset.
  10332. format: int32
  10333. nullable: true
  10334. type: integer
  10335. labels:
  10336. additionalProperties:
  10337. type: string
  10338. description: The labels-related configuration to add/set on each Pod related object.
  10339. nullable: true
  10340. type: object
  10341. x-kubernetes-preserve-unknown-fields: true
  10342. placement:
  10343. description: The affinity to place the rgw pods (default is to place on any available node)
  10344. nullable: true
  10345. properties:
  10346. nodeAffinity:
  10347. description: NodeAffinity is a group of node affinity scheduling rules
  10348. properties:
  10349. preferredDuringSchedulingIgnoredDuringExecution:
  10350. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  10351. items:
  10352. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  10353. properties:
  10354. preference:
  10355. description: A node selector term, associated with the corresponding weight.
  10356. properties:
  10357. matchExpressions:
  10358. description: A list of node selector requirements by node's labels.
  10359. items:
  10360. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10361. properties:
  10362. key:
  10363. description: The label key that the selector applies to.
  10364. type: string
  10365. operator:
  10366. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10367. type: string
  10368. values:
  10369. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10370. items:
  10371. type: string
  10372. type: array
  10373. required:
  10374. - key
  10375. - operator
  10376. type: object
  10377. type: array
  10378. matchFields:
  10379. description: A list of node selector requirements by node's fields.
  10380. items:
  10381. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10382. properties:
  10383. key:
  10384. description: The label key that the selector applies to.
  10385. type: string
  10386. operator:
  10387. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10388. type: string
  10389. values:
  10390. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10391. items:
  10392. type: string
  10393. type: array
  10394. required:
  10395. - key
  10396. - operator
  10397. type: object
  10398. type: array
  10399. type: object
  10400. x-kubernetes-map-type: atomic
  10401. weight:
  10402. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  10403. format: int32
  10404. type: integer
  10405. required:
  10406. - preference
  10407. - weight
  10408. type: object
  10409. type: array
  10410. requiredDuringSchedulingIgnoredDuringExecution:
  10411. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  10412. properties:
  10413. nodeSelectorTerms:
  10414. description: Required. A list of node selector terms. The terms are ORed.
  10415. items:
  10416. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  10417. properties:
  10418. matchExpressions:
  10419. description: A list of node selector requirements by node's labels.
  10420. items:
  10421. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10422. properties:
  10423. key:
  10424. description: The label key that the selector applies to.
  10425. type: string
  10426. operator:
  10427. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10428. type: string
  10429. values:
  10430. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10431. items:
  10432. type: string
  10433. type: array
  10434. required:
  10435. - key
  10436. - operator
  10437. type: object
  10438. type: array
  10439. matchFields:
  10440. description: A list of node selector requirements by node's fields.
  10441. items:
  10442. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10443. properties:
  10444. key:
  10445. description: The label key that the selector applies to.
  10446. type: string
  10447. operator:
  10448. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  10449. type: string
  10450. values:
  10451. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  10452. items:
  10453. type: string
  10454. type: array
  10455. required:
  10456. - key
  10457. - operator
  10458. type: object
  10459. type: array
  10460. type: object
  10461. x-kubernetes-map-type: atomic
  10462. type: array
  10463. required:
  10464. - nodeSelectorTerms
  10465. type: object
  10466. x-kubernetes-map-type: atomic
  10467. type: object
  10468. podAffinity:
  10469. description: PodAffinity is a group of inter pod affinity scheduling rules
  10470. properties:
  10471. preferredDuringSchedulingIgnoredDuringExecution:
  10472. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10473. items:
  10474. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10475. properties:
  10476. podAffinityTerm:
  10477. description: Required. A pod affinity term, associated with the corresponding weight.
  10478. properties:
  10479. labelSelector:
  10480. description: A label query over a set of resources, in this case pods.
  10481. properties:
  10482. matchExpressions:
  10483. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10484. items:
  10485. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10486. properties:
  10487. key:
  10488. description: key is the label key that the selector applies to.
  10489. type: string
  10490. operator:
  10491. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10492. type: string
  10493. values:
  10494. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10495. items:
  10496. type: string
  10497. type: array
  10498. required:
  10499. - key
  10500. - operator
  10501. type: object
  10502. type: array
  10503. matchLabels:
  10504. additionalProperties:
  10505. type: string
  10506. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10507. type: object
  10508. type: object
  10509. x-kubernetes-map-type: atomic
  10510. namespaceSelector:
  10511. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10512. properties:
  10513. matchExpressions:
  10514. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10515. items:
  10516. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10517. properties:
  10518. key:
  10519. description: key is the label key that the selector applies to.
  10520. type: string
  10521. operator:
  10522. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10523. type: string
  10524. values:
  10525. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10526. items:
  10527. type: string
  10528. type: array
  10529. required:
  10530. - key
  10531. - operator
  10532. type: object
  10533. type: array
  10534. matchLabels:
  10535. additionalProperties:
  10536. type: string
  10537. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10538. type: object
  10539. type: object
  10540. x-kubernetes-map-type: atomic
  10541. namespaces:
  10542. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10543. items:
  10544. type: string
  10545. type: array
  10546. topologyKey:
  10547. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10548. type: string
  10549. required:
  10550. - topologyKey
  10551. type: object
  10552. weight:
  10553. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10554. format: int32
  10555. type: integer
  10556. required:
  10557. - podAffinityTerm
  10558. - weight
  10559. type: object
  10560. type: array
  10561. requiredDuringSchedulingIgnoredDuringExecution:
  10562. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10563. items:
  10564. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10565. properties:
  10566. labelSelector:
  10567. description: A label query over a set of resources, in this case pods.
  10568. properties:
  10569. matchExpressions:
  10570. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10571. items:
  10572. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10573. properties:
  10574. key:
  10575. description: key is the label key that the selector applies to.
  10576. type: string
  10577. operator:
  10578. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10579. type: string
  10580. values:
  10581. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10582. items:
  10583. type: string
  10584. type: array
  10585. required:
  10586. - key
  10587. - operator
  10588. type: object
  10589. type: array
  10590. matchLabels:
  10591. additionalProperties:
  10592. type: string
  10593. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10594. type: object
  10595. type: object
  10596. x-kubernetes-map-type: atomic
  10597. namespaceSelector:
  10598. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10599. properties:
  10600. matchExpressions:
  10601. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10602. items:
  10603. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10604. properties:
  10605. key:
  10606. description: key is the label key that the selector applies to.
  10607. type: string
  10608. operator:
  10609. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10610. type: string
  10611. values:
  10612. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10613. items:
  10614. type: string
  10615. type: array
  10616. required:
  10617. - key
  10618. - operator
  10619. type: object
  10620. type: array
  10621. matchLabels:
  10622. additionalProperties:
  10623. type: string
  10624. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10625. type: object
  10626. type: object
  10627. x-kubernetes-map-type: atomic
  10628. namespaces:
  10629. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10630. items:
  10631. type: string
  10632. type: array
  10633. topologyKey:
  10634. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10635. type: string
  10636. required:
  10637. - topologyKey
  10638. type: object
  10639. type: array
  10640. type: object
  10641. podAntiAffinity:
  10642. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  10643. properties:
  10644. preferredDuringSchedulingIgnoredDuringExecution:
  10645. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  10646. items:
  10647. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  10648. properties:
  10649. podAffinityTerm:
  10650. description: Required. A pod affinity term, associated with the corresponding weight.
  10651. properties:
  10652. labelSelector:
  10653. description: A label query over a set of resources, in this case pods.
  10654. properties:
  10655. matchExpressions:
  10656. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10657. items:
  10658. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10659. properties:
  10660. key:
  10661. description: key is the label key that the selector applies to.
  10662. type: string
  10663. operator:
  10664. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10665. type: string
  10666. values:
  10667. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10668. items:
  10669. type: string
  10670. type: array
  10671. required:
  10672. - key
  10673. - operator
  10674. type: object
  10675. type: array
  10676. matchLabels:
  10677. additionalProperties:
  10678. type: string
  10679. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10680. type: object
  10681. type: object
  10682. x-kubernetes-map-type: atomic
  10683. namespaceSelector:
  10684. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10685. properties:
  10686. matchExpressions:
  10687. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10688. items:
  10689. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10690. properties:
  10691. key:
  10692. description: key is the label key that the selector applies to.
  10693. type: string
  10694. operator:
  10695. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10696. type: string
  10697. values:
  10698. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10699. items:
  10700. type: string
  10701. type: array
  10702. required:
  10703. - key
  10704. - operator
  10705. type: object
  10706. type: array
  10707. matchLabels:
  10708. additionalProperties:
  10709. type: string
  10710. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10711. type: object
  10712. type: object
  10713. x-kubernetes-map-type: atomic
  10714. namespaces:
  10715. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10716. items:
  10717. type: string
  10718. type: array
  10719. topologyKey:
  10720. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10721. type: string
  10722. required:
  10723. - topologyKey
  10724. type: object
  10725. weight:
  10726. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  10727. format: int32
  10728. type: integer
  10729. required:
  10730. - podAffinityTerm
  10731. - weight
  10732. type: object
  10733. type: array
  10734. requiredDuringSchedulingIgnoredDuringExecution:
  10735. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  10736. items:
  10737. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  10738. properties:
  10739. labelSelector:
  10740. description: A label query over a set of resources, in this case pods.
  10741. properties:
  10742. matchExpressions:
  10743. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10744. items:
  10745. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10746. properties:
  10747. key:
  10748. description: key is the label key that the selector applies to.
  10749. type: string
  10750. operator:
  10751. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10752. type: string
  10753. values:
  10754. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10755. items:
  10756. type: string
  10757. type: array
  10758. required:
  10759. - key
  10760. - operator
  10761. type: object
  10762. type: array
  10763. matchLabels:
  10764. additionalProperties:
  10765. type: string
  10766. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10767. type: object
  10768. type: object
  10769. x-kubernetes-map-type: atomic
  10770. namespaceSelector:
  10771. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  10772. properties:
  10773. matchExpressions:
  10774. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10775. items:
  10776. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10777. properties:
  10778. key:
  10779. description: key is the label key that the selector applies to.
  10780. type: string
  10781. operator:
  10782. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10783. type: string
  10784. values:
  10785. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10786. items:
  10787. type: string
  10788. type: array
  10789. required:
  10790. - key
  10791. - operator
  10792. type: object
  10793. type: array
  10794. matchLabels:
  10795. additionalProperties:
  10796. type: string
  10797. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10798. type: object
  10799. type: object
  10800. x-kubernetes-map-type: atomic
  10801. namespaces:
  10802. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10803. items:
  10804. type: string
  10805. type: array
  10806. topologyKey:
  10807. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  10808. type: string
  10809. required:
  10810. - topologyKey
  10811. type: object
  10812. type: array
  10813. type: object
  10814. tolerations:
  10815. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  10816. items:
  10817. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  10818. properties:
  10819. effect:
  10820. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  10821. type: string
  10822. key:
  10823. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  10824. type: string
  10825. operator:
  10826. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  10827. type: string
  10828. tolerationSeconds:
  10829. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  10830. format: int64
  10831. type: integer
  10832. value:
  10833. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  10834. type: string
  10835. type: object
  10836. type: array
  10837. topologySpreadConstraints:
  10838. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  10839. items:
  10840. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  10841. properties:
  10842. labelSelector:
  10843. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  10844. properties:
  10845. matchExpressions:
  10846. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  10847. items:
  10848. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  10849. properties:
  10850. key:
  10851. description: key is the label key that the selector applies to.
  10852. type: string
  10853. operator:
  10854. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  10855. type: string
  10856. values:
  10857. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  10858. items:
  10859. type: string
  10860. type: array
  10861. required:
  10862. - key
  10863. - operator
  10864. type: object
  10865. type: array
  10866. matchLabels:
  10867. additionalProperties:
  10868. type: string
  10869. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  10870. type: object
  10871. type: object
  10872. x-kubernetes-map-type: atomic
  10873. matchLabelKeys:
  10874. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  10875. items:
  10876. type: string
  10877. type: array
  10878. x-kubernetes-list-type: atomic
  10879. maxSkew:
  10880. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  10881. format: int32
  10882. type: integer
  10883. minDomains:
  10884. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  10885. format: int32
  10886. type: integer
  10887. nodeAffinityPolicy:
  10888. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  10889. type: string
  10890. nodeTaintsPolicy:
  10891. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  10892. type: string
  10893. topologyKey:
  10894. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  10895. type: string
  10896. whenUnsatisfiable:
  10897. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  10898. type: string
  10899. required:
  10900. - maxSkew
  10901. - topologyKey
  10902. - whenUnsatisfiable
  10903. type: object
  10904. type: array
  10905. type: object
  10906. x-kubernetes-preserve-unknown-fields: true
  10907. port:
  10908. description: The port the rgw service will be listening on (http)
  10909. format: int32
  10910. type: integer
  10911. priorityClassName:
  10912. description: PriorityClassName sets priority classes on the rgw pods
  10913. type: string
  10914. resources:
  10915. description: The resource requirements for the rgw pods
  10916. nullable: true
  10917. properties:
  10918. claims:
  10919. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  10920. items:
  10921. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  10922. properties:
  10923. name:
  10924. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  10925. type: string
  10926. required:
  10927. - name
  10928. type: object
  10929. type: array
  10930. x-kubernetes-list-map-keys:
  10931. - name
  10932. x-kubernetes-list-type: map
  10933. limits:
  10934. additionalProperties:
  10935. anyOf:
  10936. - type: integer
  10937. - type: string
  10938. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10939. x-kubernetes-int-or-string: true
  10940. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  10941. type: object
  10942. requests:
  10943. additionalProperties:
  10944. anyOf:
  10945. - type: integer
  10946. - type: string
  10947. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10948. x-kubernetes-int-or-string: true
  10949. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  10950. type: object
  10951. type: object
  10952. x-kubernetes-preserve-unknown-fields: true
  10953. securePort:
  10954. description: The port the rgw service will be listening on (https)
  10955. format: int32
  10956. maximum: 65535
  10957. minimum: 0
  10958. nullable: true
  10959. type: integer
  10960. service:
  10961. description: The configuration related to add/set on each rgw service.
  10962. nullable: true
  10963. properties:
  10964. annotations:
  10965. additionalProperties:
  10966. type: string
  10967. description: The annotations-related configuration to add/set on each rgw service. nullable optional
  10968. type: object
  10969. type: object
  10970. sslCertificateRef:
  10971. description: The name of the secret that stores the ssl certificate for secure rgw connections
  10972. nullable: true
  10973. type: string
  10974. type: object
  10975. healthCheck:
  10976. description: The RGW health probes
  10977. nullable: true
  10978. properties:
  10979. readinessProbe:
  10980. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  10981. properties:
  10982. disabled:
  10983. description: Disabled determines whether probe is disable or not
  10984. type: boolean
  10985. probe:
  10986. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  10987. properties:
  10988. exec:
  10989. description: Exec specifies the action to take.
  10990. properties:
  10991. command:
  10992. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10993. items:
  10994. type: string
  10995. type: array
  10996. type: object
  10997. failureThreshold:
  10998. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  10999. format: int32
  11000. type: integer
  11001. grpc:
  11002. description: GRPC specifies an action involving a GRPC port.
  11003. properties:
  11004. port:
  11005. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11006. format: int32
  11007. type: integer
  11008. service:
  11009. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  11010. type: string
  11011. required:
  11012. - port
  11013. type: object
  11014. httpGet:
  11015. description: HTTPGet specifies the http request to perform.
  11016. properties:
  11017. host:
  11018. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11019. type: string
  11020. httpHeaders:
  11021. description: Custom headers to set in the request. HTTP allows repeated headers.
  11022. items:
  11023. description: HTTPHeader describes a custom header to be used in HTTP probes
  11024. properties:
  11025. name:
  11026. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11027. type: string
  11028. value:
  11029. description: The header field value
  11030. type: string
  11031. required:
  11032. - name
  11033. - value
  11034. type: object
  11035. type: array
  11036. path:
  11037. description: Path to access on the HTTP server.
  11038. type: string
  11039. port:
  11040. anyOf:
  11041. - type: integer
  11042. - type: string
  11043. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11044. x-kubernetes-int-or-string: true
  11045. scheme:
  11046. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11047. type: string
  11048. required:
  11049. - port
  11050. type: object
  11051. initialDelaySeconds:
  11052. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11053. format: int32
  11054. type: integer
  11055. periodSeconds:
  11056. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11057. format: int32
  11058. type: integer
  11059. successThreshold:
  11060. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  11061. format: int32
  11062. type: integer
  11063. tcpSocket:
  11064. description: TCPSocket specifies an action involving a TCP port.
  11065. properties:
  11066. host:
  11067. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11068. type: string
  11069. port:
  11070. anyOf:
  11071. - type: integer
  11072. - type: string
  11073. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11074. x-kubernetes-int-or-string: true
  11075. required:
  11076. - port
  11077. type: object
  11078. terminationGracePeriodSeconds:
  11079. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11080. format: int64
  11081. type: integer
  11082. timeoutSeconds:
  11083. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11084. format: int32
  11085. type: integer
  11086. type: object
  11087. type: object
  11088. x-kubernetes-preserve-unknown-fields: true
  11089. startupProbe:
  11090. description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
  11091. properties:
  11092. disabled:
  11093. description: Disabled determines whether probe is disable or not
  11094. type: boolean
  11095. probe:
  11096. description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
  11097. properties:
  11098. exec:
  11099. description: Exec specifies the action to take.
  11100. properties:
  11101. command:
  11102. description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  11103. items:
  11104. type: string
  11105. type: array
  11106. type: object
  11107. failureThreshold:
  11108. description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  11109. format: int32
  11110. type: integer
  11111. grpc:
  11112. description: GRPC specifies an action involving a GRPC port.
  11113. properties:
  11114. port:
  11115. description: Port number of the gRPC service. Number must be in the range 1 to 65535.
  11116. format: int32
  11117. type: integer
  11118. service:
  11119. description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
  11120. type: string
  11121. required:
  11122. - port
  11123. type: object
  11124. httpGet:
  11125. description: HTTPGet specifies the http request to perform.
  11126. properties:
  11127. host:
  11128. description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  11129. type: string
  11130. httpHeaders:
  11131. description: Custom headers to set in the request. HTTP allows repeated headers.
  11132. items:
  11133. description: HTTPHeader describes a custom header to be used in HTTP probes
  11134. properties:
  11135. name:
  11136. description: The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11137. type: string
  11138. value:
  11139. description: The header field value
  11140. type: string
  11141. required:
  11142. - name
  11143. - value
  11144. type: object
  11145. type: array
  11146. path:
  11147. description: Path to access on the HTTP server.
  11148. type: string
  11149. port:
  11150. anyOf:
  11151. - type: integer
  11152. - type: string
  11153. description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11154. x-kubernetes-int-or-string: true
  11155. scheme:
  11156. description: Scheme to use for connecting to the host. Defaults to HTTP.
  11157. type: string
  11158. required:
  11159. - port
  11160. type: object
  11161. initialDelaySeconds:
  11162. description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11163. format: int32
  11164. type: integer
  11165. periodSeconds:
  11166. description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  11167. format: int32
  11168. type: integer
  11169. successThreshold:
  11170. description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  11171. format: int32
  11172. type: integer
  11173. tcpSocket:
  11174. description: TCPSocket specifies an action involving a TCP port.
  11175. properties:
  11176. host:
  11177. description: 'Optional: Host name to connect to, defaults to the pod IP.'
  11178. type: string
  11179. port:
  11180. anyOf:
  11181. - type: integer
  11182. - type: string
  11183. description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  11184. x-kubernetes-int-or-string: true
  11185. required:
  11186. - port
  11187. type: object
  11188. terminationGracePeriodSeconds:
  11189. description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11190. format: int64
  11191. type: integer
  11192. timeoutSeconds:
  11193. description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  11194. format: int32
  11195. type: integer
  11196. type: object
  11197. type: object
  11198. type: object
  11199. metadataPool:
  11200. description: The metadata pool settings
  11201. nullable: true
  11202. properties:
  11203. compressionMode:
  11204. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11205. enum:
  11206. - none
  11207. - passive
  11208. - aggressive
  11209. - force
  11210. - ""
  11211. nullable: true
  11212. type: string
  11213. crushRoot:
  11214. description: The root of the crush hierarchy utilized by the pool
  11215. nullable: true
  11216. type: string
  11217. deviceClass:
  11218. description: The device class the OSD should set to for use in the pool
  11219. nullable: true
  11220. type: string
  11221. enableRBDStats:
  11222. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11223. type: boolean
  11224. erasureCoded:
  11225. description: The erasure code settings
  11226. properties:
  11227. algorithm:
  11228. description: The algorithm for erasure coding
  11229. type: string
  11230. codingChunks:
  11231. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11232. minimum: 0
  11233. type: integer
  11234. dataChunks:
  11235. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11236. minimum: 0
  11237. type: integer
  11238. required:
  11239. - codingChunks
  11240. - dataChunks
  11241. type: object
  11242. failureDomain:
  11243. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11244. type: string
  11245. mirroring:
  11246. description: The mirroring settings
  11247. properties:
  11248. enabled:
  11249. description: Enabled whether this pool is mirrored or not
  11250. type: boolean
  11251. mode:
  11252. description: 'Mode is the mirroring mode: either pool or image'
  11253. type: string
  11254. peers:
  11255. description: Peers represents the peers spec
  11256. nullable: true
  11257. properties:
  11258. secretNames:
  11259. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11260. items:
  11261. type: string
  11262. type: array
  11263. type: object
  11264. snapshotSchedules:
  11265. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11266. items:
  11267. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11268. properties:
  11269. interval:
  11270. description: Interval represent the periodicity of the snapshot.
  11271. type: string
  11272. path:
  11273. description: Path is the path to snapshot, only valid for CephFS
  11274. type: string
  11275. startTime:
  11276. description: StartTime indicates when to start the snapshot
  11277. type: string
  11278. type: object
  11279. type: array
  11280. type: object
  11281. parameters:
  11282. additionalProperties:
  11283. type: string
  11284. description: Parameters is a list of properties to enable on a given pool
  11285. nullable: true
  11286. type: object
  11287. x-kubernetes-preserve-unknown-fields: true
  11288. quotas:
  11289. description: The quota settings
  11290. nullable: true
  11291. properties:
  11292. maxBytes:
  11293. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11294. format: int64
  11295. type: integer
  11296. maxObjects:
  11297. description: MaxObjects represents the quota in objects
  11298. format: int64
  11299. type: integer
  11300. maxSize:
  11301. description: MaxSize represents the quota in bytes as a string
  11302. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11303. type: string
  11304. type: object
  11305. replicated:
  11306. description: The replication settings
  11307. properties:
  11308. hybridStorage:
  11309. description: HybridStorage represents hybrid storage tier settings
  11310. nullable: true
  11311. properties:
  11312. primaryDeviceClass:
  11313. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11314. minLength: 1
  11315. type: string
  11316. secondaryDeviceClass:
  11317. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11318. minLength: 1
  11319. type: string
  11320. required:
  11321. - primaryDeviceClass
  11322. - secondaryDeviceClass
  11323. type: object
  11324. replicasPerFailureDomain:
  11325. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11326. minimum: 1
  11327. type: integer
  11328. requireSafeReplicaSize:
  11329. description: RequireSafeReplicaSize if false allows you to set replica 1
  11330. type: boolean
  11331. size:
  11332. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11333. minimum: 0
  11334. type: integer
  11335. subFailureDomain:
  11336. description: SubFailureDomain the name of the sub-failure domain
  11337. type: string
  11338. targetSizeRatio:
  11339. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11340. type: number
  11341. required:
  11342. - size
  11343. type: object
  11344. statusCheck:
  11345. description: The mirroring statusCheck
  11346. properties:
  11347. mirror:
  11348. description: HealthCheckSpec represents the health check of an object store bucket
  11349. nullable: true
  11350. properties:
  11351. disabled:
  11352. type: boolean
  11353. interval:
  11354. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  11355. type: string
  11356. timeout:
  11357. type: string
  11358. type: object
  11359. type: object
  11360. x-kubernetes-preserve-unknown-fields: true
  11361. type: object
  11362. preservePoolsOnDelete:
  11363. description: Preserve pools on object store deletion
  11364. type: boolean
  11365. security:
  11366. description: Security represents security settings
  11367. nullable: true
  11368. properties:
  11369. keyRotation:
  11370. description: KeyRotation defines options for Key Rotation.
  11371. nullable: true
  11372. properties:
  11373. enabled:
  11374. default: false
  11375. description: Enabled represents whether the key rotation is enabled.
  11376. type: boolean
  11377. schedule:
  11378. description: Schedule represents the cron schedule for key rotation.
  11379. type: string
  11380. type: object
  11381. kms:
  11382. description: KeyManagementService is the main Key Management option
  11383. nullable: true
  11384. properties:
  11385. connectionDetails:
  11386. additionalProperties:
  11387. type: string
  11388. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11389. nullable: true
  11390. type: object
  11391. x-kubernetes-preserve-unknown-fields: true
  11392. tokenSecretName:
  11393. description: TokenSecretName is the kubernetes secret containing the KMS token
  11394. type: string
  11395. type: object
  11396. s3:
  11397. description: The settings for supporting AWS-SSE:S3 with RGW
  11398. nullable: true
  11399. properties:
  11400. connectionDetails:
  11401. additionalProperties:
  11402. type: string
  11403. description: ConnectionDetails contains the KMS connection details (address, port etc)
  11404. nullable: true
  11405. type: object
  11406. x-kubernetes-preserve-unknown-fields: true
  11407. tokenSecretName:
  11408. description: TokenSecretName is the kubernetes secret containing the KMS token
  11409. type: string
  11410. type: object
  11411. type: object
  11412. zone:
  11413. description: The multisite info
  11414. nullable: true
  11415. properties:
  11416. name:
  11417. description: RGW Zone the Object Store is in
  11418. type: string
  11419. required:
  11420. - name
  11421. type: object
  11422. type: object
  11423. status:
  11424. description: ObjectStoreStatus represents the status of a Ceph Object Store resource
  11425. properties:
  11426. conditions:
  11427. items:
  11428. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11429. properties:
  11430. lastHeartbeatTime:
  11431. format: date-time
  11432. type: string
  11433. lastTransitionTime:
  11434. format: date-time
  11435. type: string
  11436. message:
  11437. type: string
  11438. reason:
  11439. description: ConditionReason is a reason for a condition
  11440. type: string
  11441. status:
  11442. type: string
  11443. type:
  11444. description: ConditionType represent a resource's status
  11445. type: string
  11446. type: object
  11447. type: array
  11448. endpoints:
  11449. properties:
  11450. insecure:
  11451. items:
  11452. type: string
  11453. nullable: true
  11454. type: array
  11455. secure:
  11456. items:
  11457. type: string
  11458. nullable: true
  11459. type: array
  11460. type: object
  11461. info:
  11462. additionalProperties:
  11463. type: string
  11464. nullable: true
  11465. type: object
  11466. message:
  11467. type: string
  11468. observedGeneration:
  11469. description: ObservedGeneration is the latest generation observed by the controller.
  11470. format: int64
  11471. type: integer
  11472. phase:
  11473. description: ConditionType represent a resource's status
  11474. type: string
  11475. type: object
  11476. x-kubernetes-preserve-unknown-fields: true
  11477. required:
  11478. - metadata
  11479. - spec
  11480. type: object
  11481. served: true
  11482. storage: true
  11483. subresources:
  11484. status: {}
  11485. ---
  11486. # Source: rook-ceph/templates/resources.yaml
  11487. apiVersion: apiextensions.k8s.io/v1
  11488. kind: CustomResourceDefinition
  11489. metadata:
  11490. annotations:
  11491. controller-gen.kubebuilder.io/version: v0.11.3
  11492. helm.sh/resource-policy: keep
  11493. creationTimestamp: null
  11494. name: cephobjectstoreusers.ceph.rook.io
  11495. spec:
  11496. group: ceph.rook.io
  11497. names:
  11498. kind: CephObjectStoreUser
  11499. listKind: CephObjectStoreUserList
  11500. plural: cephobjectstoreusers
  11501. shortNames:
  11502. - rcou
  11503. - objectuser
  11504. singular: cephobjectstoreuser
  11505. scope: Namespaced
  11506. versions:
  11507. - additionalPrinterColumns:
  11508. - jsonPath: .status.phase
  11509. name: Phase
  11510. type: string
  11511. name: v1
  11512. schema:
  11513. openAPIV3Schema:
  11514. description: CephObjectStoreUser represents a Ceph Object Store Gateway User
  11515. properties:
  11516. apiVersion:
  11517. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11518. type: string
  11519. kind:
  11520. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11521. type: string
  11522. metadata:
  11523. type: object
  11524. spec:
  11525. description: ObjectStoreUserSpec represent the spec of an Objectstoreuser
  11526. properties:
  11527. capabilities:
  11528. description: Additional admin-level capabilities for the Ceph object store user
  11529. nullable: true
  11530. properties:
  11531. amz-cache:
  11532. description: Add capabilities for user to send request to RGW Cache API header. Documented in https://docs.ceph.com/en/quincy/radosgw/rgw-cache/#cache-api
  11533. enum:
  11534. - '*'
  11535. - read
  11536. - write
  11537. - read, write
  11538. type: string
  11539. bilog:
  11540. description: Add capabilities for user to change bucket index logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11541. enum:
  11542. - '*'
  11543. - read
  11544. - write
  11545. - read, write
  11546. type: string
  11547. bucket:
  11548. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11549. enum:
  11550. - '*'
  11551. - read
  11552. - write
  11553. - read, write
  11554. type: string
  11555. buckets:
  11556. description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11557. enum:
  11558. - '*'
  11559. - read
  11560. - write
  11561. - read, write
  11562. type: string
  11563. datalog:
  11564. description: Add capabilities for user to change data logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11565. enum:
  11566. - '*'
  11567. - read
  11568. - write
  11569. - read, write
  11570. type: string
  11571. info:
  11572. description: Admin capabilities to read/write information about the user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11573. enum:
  11574. - '*'
  11575. - read
  11576. - write
  11577. - read, write
  11578. type: string
  11579. mdlog:
  11580. description: Add capabilities for user to change metadata logging. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11581. enum:
  11582. - '*'
  11583. - read
  11584. - write
  11585. - read, write
  11586. type: string
  11587. metadata:
  11588. description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11589. enum:
  11590. - '*'
  11591. - read
  11592. - write
  11593. - read, write
  11594. type: string
  11595. oidc-provider:
  11596. description: Add capabilities for user to change oidc provider. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11597. enum:
  11598. - '*'
  11599. - read
  11600. - write
  11601. - read, write
  11602. type: string
  11603. ratelimit:
  11604. 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
  11605. enum:
  11606. - '*'
  11607. - read
  11608. - write
  11609. - read, write
  11610. type: string
  11611. roles:
  11612. description: Admin capabilities to read/write roles for user. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11613. enum:
  11614. - '*'
  11615. - read
  11616. - write
  11617. - read, write
  11618. type: string
  11619. usage:
  11620. description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11621. enum:
  11622. - '*'
  11623. - read
  11624. - write
  11625. - read, write
  11626. type: string
  11627. user:
  11628. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11629. enum:
  11630. - '*'
  11631. - read
  11632. - write
  11633. - read, write
  11634. type: string
  11635. user-policy:
  11636. description: Add capabilities for user to change user policies. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11637. enum:
  11638. - '*'
  11639. - read
  11640. - write
  11641. - read, write
  11642. type: string
  11643. users:
  11644. description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11645. enum:
  11646. - '*'
  11647. - read
  11648. - write
  11649. - read, write
  11650. type: string
  11651. zone:
  11652. description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
  11653. enum:
  11654. - '*'
  11655. - read
  11656. - write
  11657. - read, write
  11658. type: string
  11659. type: object
  11660. clusterNamespace:
  11661. description: The namespace where the parent CephCluster and CephObjectStore are found
  11662. type: string
  11663. displayName:
  11664. description: The display name for the ceph users
  11665. type: string
  11666. quotas:
  11667. 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
  11668. nullable: true
  11669. properties:
  11670. maxBuckets:
  11671. description: Maximum bucket limit for the ceph user
  11672. nullable: true
  11673. type: integer
  11674. maxObjects:
  11675. description: Maximum number of objects across all the user's buckets
  11676. format: int64
  11677. nullable: true
  11678. type: integer
  11679. maxSize:
  11680. anyOf:
  11681. - type: integer
  11682. - type: string
  11683. description: Maximum size limit of all objects across all the user's buckets See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
  11684. nullable: true
  11685. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11686. x-kubernetes-int-or-string: true
  11687. type: object
  11688. store:
  11689. description: The store the user will be created in
  11690. type: string
  11691. type: object
  11692. status:
  11693. description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
  11694. properties:
  11695. info:
  11696. additionalProperties:
  11697. type: string
  11698. nullable: true
  11699. type: object
  11700. observedGeneration:
  11701. description: ObservedGeneration is the latest generation observed by the controller.
  11702. format: int64
  11703. type: integer
  11704. phase:
  11705. type: string
  11706. type: object
  11707. x-kubernetes-preserve-unknown-fields: true
  11708. required:
  11709. - metadata
  11710. - spec
  11711. type: object
  11712. served: true
  11713. storage: true
  11714. subresources:
  11715. status: {}
  11716. ---
  11717. # Source: rook-ceph/templates/resources.yaml
  11718. apiVersion: apiextensions.k8s.io/v1
  11719. kind: CustomResourceDefinition
  11720. metadata:
  11721. annotations:
  11722. controller-gen.kubebuilder.io/version: v0.11.3
  11723. helm.sh/resource-policy: keep
  11724. creationTimestamp: null
  11725. name: cephobjectzonegroups.ceph.rook.io
  11726. spec:
  11727. group: ceph.rook.io
  11728. names:
  11729. kind: CephObjectZoneGroup
  11730. listKind: CephObjectZoneGroupList
  11731. plural: cephobjectzonegroups
  11732. singular: cephobjectzonegroup
  11733. scope: Namespaced
  11734. versions:
  11735. - additionalPrinterColumns:
  11736. - jsonPath: .status.phase
  11737. name: Phase
  11738. type: string
  11739. name: v1
  11740. schema:
  11741. openAPIV3Schema:
  11742. description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
  11743. properties:
  11744. apiVersion:
  11745. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11746. type: string
  11747. kind:
  11748. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11749. type: string
  11750. metadata:
  11751. type: object
  11752. spec:
  11753. description: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
  11754. properties:
  11755. realm:
  11756. description: The display name for the ceph users
  11757. type: string
  11758. required:
  11759. - realm
  11760. type: object
  11761. status:
  11762. description: Status represents the status of an object
  11763. properties:
  11764. conditions:
  11765. items:
  11766. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  11767. properties:
  11768. lastHeartbeatTime:
  11769. format: date-time
  11770. type: string
  11771. lastTransitionTime:
  11772. format: date-time
  11773. type: string
  11774. message:
  11775. type: string
  11776. reason:
  11777. description: ConditionReason is a reason for a condition
  11778. type: string
  11779. status:
  11780. type: string
  11781. type:
  11782. description: ConditionType represent a resource's status
  11783. type: string
  11784. type: object
  11785. type: array
  11786. observedGeneration:
  11787. description: ObservedGeneration is the latest generation observed by the controller.
  11788. format: int64
  11789. type: integer
  11790. phase:
  11791. type: string
  11792. type: object
  11793. x-kubernetes-preserve-unknown-fields: true
  11794. required:
  11795. - metadata
  11796. - spec
  11797. type: object
  11798. served: true
  11799. storage: true
  11800. subresources:
  11801. status: {}
  11802. ---
  11803. # Source: rook-ceph/templates/resources.yaml
  11804. apiVersion: apiextensions.k8s.io/v1
  11805. kind: CustomResourceDefinition
  11806. metadata:
  11807. annotations:
  11808. controller-gen.kubebuilder.io/version: v0.11.3
  11809. helm.sh/resource-policy: keep
  11810. creationTimestamp: null
  11811. name: cephobjectzones.ceph.rook.io
  11812. spec:
  11813. group: ceph.rook.io
  11814. names:
  11815. kind: CephObjectZone
  11816. listKind: CephObjectZoneList
  11817. plural: cephobjectzones
  11818. singular: cephobjectzone
  11819. scope: Namespaced
  11820. versions:
  11821. - additionalPrinterColumns:
  11822. - jsonPath: .status.phase
  11823. name: Phase
  11824. type: string
  11825. name: v1
  11826. schema:
  11827. openAPIV3Schema:
  11828. description: CephObjectZone represents a Ceph Object Store Gateway Zone
  11829. properties:
  11830. apiVersion:
  11831. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  11832. type: string
  11833. kind:
  11834. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  11835. type: string
  11836. metadata:
  11837. type: object
  11838. spec:
  11839. description: ObjectZoneSpec represent the spec of an ObjectZone
  11840. properties:
  11841. customEndpoints:
  11842. description: "If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may include the port in the definition. For example: \"https://my-object-store.my-domain.net:443\". In many cases, you should set this to the endpoint of the ingress resource that makes the CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters. The list can have one or more endpoints pointing to different RGW servers in the zone. \n If a CephObjectStore endpoint is omitted from this list, that object store's gateways will not receive multisite replication data (see CephObjectStore.spec.gateway.disableMultisiteSyncTraffic)."
  11843. items:
  11844. type: string
  11845. nullable: true
  11846. type: array
  11847. dataPool:
  11848. description: The data pool settings
  11849. nullable: true
  11850. properties:
  11851. compressionMode:
  11852. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  11853. enum:
  11854. - none
  11855. - passive
  11856. - aggressive
  11857. - force
  11858. - ""
  11859. nullable: true
  11860. type: string
  11861. crushRoot:
  11862. description: The root of the crush hierarchy utilized by the pool
  11863. nullable: true
  11864. type: string
  11865. deviceClass:
  11866. description: The device class the OSD should set to for use in the pool
  11867. nullable: true
  11868. type: string
  11869. enableRBDStats:
  11870. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  11871. type: boolean
  11872. erasureCoded:
  11873. description: The erasure code settings
  11874. properties:
  11875. algorithm:
  11876. description: The algorithm for erasure coding
  11877. type: string
  11878. codingChunks:
  11879. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  11880. minimum: 0
  11881. type: integer
  11882. dataChunks:
  11883. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  11884. minimum: 0
  11885. type: integer
  11886. required:
  11887. - codingChunks
  11888. - dataChunks
  11889. type: object
  11890. failureDomain:
  11891. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  11892. type: string
  11893. mirroring:
  11894. description: The mirroring settings
  11895. properties:
  11896. enabled:
  11897. description: Enabled whether this pool is mirrored or not
  11898. type: boolean
  11899. mode:
  11900. description: 'Mode is the mirroring mode: either pool or image'
  11901. type: string
  11902. peers:
  11903. description: Peers represents the peers spec
  11904. nullable: true
  11905. properties:
  11906. secretNames:
  11907. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  11908. items:
  11909. type: string
  11910. type: array
  11911. type: object
  11912. snapshotSchedules:
  11913. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  11914. items:
  11915. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  11916. properties:
  11917. interval:
  11918. description: Interval represent the periodicity of the snapshot.
  11919. type: string
  11920. path:
  11921. description: Path is the path to snapshot, only valid for CephFS
  11922. type: string
  11923. startTime:
  11924. description: StartTime indicates when to start the snapshot
  11925. type: string
  11926. type: object
  11927. type: array
  11928. type: object
  11929. parameters:
  11930. additionalProperties:
  11931. type: string
  11932. description: Parameters is a list of properties to enable on a given pool
  11933. nullable: true
  11934. type: object
  11935. x-kubernetes-preserve-unknown-fields: true
  11936. quotas:
  11937. description: The quota settings
  11938. nullable: true
  11939. properties:
  11940. maxBytes:
  11941. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  11942. format: int64
  11943. type: integer
  11944. maxObjects:
  11945. description: MaxObjects represents the quota in objects
  11946. format: int64
  11947. type: integer
  11948. maxSize:
  11949. description: MaxSize represents the quota in bytes as a string
  11950. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  11951. type: string
  11952. type: object
  11953. replicated:
  11954. description: The replication settings
  11955. properties:
  11956. hybridStorage:
  11957. description: HybridStorage represents hybrid storage tier settings
  11958. nullable: true
  11959. properties:
  11960. primaryDeviceClass:
  11961. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  11962. minLength: 1
  11963. type: string
  11964. secondaryDeviceClass:
  11965. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  11966. minLength: 1
  11967. type: string
  11968. required:
  11969. - primaryDeviceClass
  11970. - secondaryDeviceClass
  11971. type: object
  11972. replicasPerFailureDomain:
  11973. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  11974. minimum: 1
  11975. type: integer
  11976. requireSafeReplicaSize:
  11977. description: RequireSafeReplicaSize if false allows you to set replica 1
  11978. type: boolean
  11979. size:
  11980. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  11981. minimum: 0
  11982. type: integer
  11983. subFailureDomain:
  11984. description: SubFailureDomain the name of the sub-failure domain
  11985. type: string
  11986. targetSizeRatio:
  11987. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  11988. type: number
  11989. required:
  11990. - size
  11991. type: object
  11992. statusCheck:
  11993. description: The mirroring statusCheck
  11994. properties:
  11995. mirror:
  11996. description: HealthCheckSpec represents the health check of an object store bucket
  11997. nullable: true
  11998. properties:
  11999. disabled:
  12000. type: boolean
  12001. interval:
  12002. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12003. type: string
  12004. timeout:
  12005. type: string
  12006. type: object
  12007. type: object
  12008. x-kubernetes-preserve-unknown-fields: true
  12009. type: object
  12010. metadataPool:
  12011. description: The metadata pool settings
  12012. nullable: true
  12013. properties:
  12014. compressionMode:
  12015. description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
  12016. enum:
  12017. - none
  12018. - passive
  12019. - aggressive
  12020. - force
  12021. - ""
  12022. nullable: true
  12023. type: string
  12024. crushRoot:
  12025. description: The root of the crush hierarchy utilized by the pool
  12026. nullable: true
  12027. type: string
  12028. deviceClass:
  12029. description: The device class the OSD should set to for use in the pool
  12030. nullable: true
  12031. type: string
  12032. enableRBDStats:
  12033. description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
  12034. type: boolean
  12035. erasureCoded:
  12036. description: The erasure code settings
  12037. properties:
  12038. algorithm:
  12039. description: The algorithm for erasure coding
  12040. type: string
  12041. codingChunks:
  12042. description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
  12043. minimum: 0
  12044. type: integer
  12045. dataChunks:
  12046. description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
  12047. minimum: 0
  12048. type: integer
  12049. required:
  12050. - codingChunks
  12051. - dataChunks
  12052. type: object
  12053. failureDomain:
  12054. description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
  12055. type: string
  12056. mirroring:
  12057. description: The mirroring settings
  12058. properties:
  12059. enabled:
  12060. description: Enabled whether this pool is mirrored or not
  12061. type: boolean
  12062. mode:
  12063. description: 'Mode is the mirroring mode: either pool or image'
  12064. type: string
  12065. peers:
  12066. description: Peers represents the peers spec
  12067. nullable: true
  12068. properties:
  12069. secretNames:
  12070. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12071. items:
  12072. type: string
  12073. type: array
  12074. type: object
  12075. snapshotSchedules:
  12076. description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
  12077. items:
  12078. description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
  12079. properties:
  12080. interval:
  12081. description: Interval represent the periodicity of the snapshot.
  12082. type: string
  12083. path:
  12084. description: Path is the path to snapshot, only valid for CephFS
  12085. type: string
  12086. startTime:
  12087. description: StartTime indicates when to start the snapshot
  12088. type: string
  12089. type: object
  12090. type: array
  12091. type: object
  12092. parameters:
  12093. additionalProperties:
  12094. type: string
  12095. description: Parameters is a list of properties to enable on a given pool
  12096. nullable: true
  12097. type: object
  12098. x-kubernetes-preserve-unknown-fields: true
  12099. quotas:
  12100. description: The quota settings
  12101. nullable: true
  12102. properties:
  12103. maxBytes:
  12104. description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
  12105. format: int64
  12106. type: integer
  12107. maxObjects:
  12108. description: MaxObjects represents the quota in objects
  12109. format: int64
  12110. type: integer
  12111. maxSize:
  12112. description: MaxSize represents the quota in bytes as a string
  12113. pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
  12114. type: string
  12115. type: object
  12116. replicated:
  12117. description: The replication settings
  12118. properties:
  12119. hybridStorage:
  12120. description: HybridStorage represents hybrid storage tier settings
  12121. nullable: true
  12122. properties:
  12123. primaryDeviceClass:
  12124. description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
  12125. minLength: 1
  12126. type: string
  12127. secondaryDeviceClass:
  12128. description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
  12129. minLength: 1
  12130. type: string
  12131. required:
  12132. - primaryDeviceClass
  12133. - secondaryDeviceClass
  12134. type: object
  12135. replicasPerFailureDomain:
  12136. description: ReplicasPerFailureDomain the number of replica in the specified failure domain
  12137. minimum: 1
  12138. type: integer
  12139. requireSafeReplicaSize:
  12140. description: RequireSafeReplicaSize if false allows you to set replica 1
  12141. type: boolean
  12142. size:
  12143. description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
  12144. minimum: 0
  12145. type: integer
  12146. subFailureDomain:
  12147. description: SubFailureDomain the name of the sub-failure domain
  12148. type: string
  12149. targetSizeRatio:
  12150. description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
  12151. type: number
  12152. required:
  12153. - size
  12154. type: object
  12155. statusCheck:
  12156. description: The mirroring statusCheck
  12157. properties:
  12158. mirror:
  12159. description: HealthCheckSpec represents the health check of an object store bucket
  12160. nullable: true
  12161. properties:
  12162. disabled:
  12163. type: boolean
  12164. interval:
  12165. description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
  12166. type: string
  12167. timeout:
  12168. type: string
  12169. type: object
  12170. type: object
  12171. x-kubernetes-preserve-unknown-fields: true
  12172. type: object
  12173. preservePoolsOnDelete:
  12174. default: true
  12175. description: Preserve pools on object zone deletion
  12176. type: boolean
  12177. zoneGroup:
  12178. description: The display name for the ceph users
  12179. type: string
  12180. required:
  12181. - dataPool
  12182. - metadataPool
  12183. - zoneGroup
  12184. type: object
  12185. status:
  12186. description: Status represents the status of an object
  12187. properties:
  12188. conditions:
  12189. items:
  12190. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12191. properties:
  12192. lastHeartbeatTime:
  12193. format: date-time
  12194. type: string
  12195. lastTransitionTime:
  12196. format: date-time
  12197. type: string
  12198. message:
  12199. type: string
  12200. reason:
  12201. description: ConditionReason is a reason for a condition
  12202. type: string
  12203. status:
  12204. type: string
  12205. type:
  12206. description: ConditionType represent a resource's status
  12207. type: string
  12208. type: object
  12209. type: array
  12210. observedGeneration:
  12211. description: ObservedGeneration is the latest generation observed by the controller.
  12212. format: int64
  12213. type: integer
  12214. phase:
  12215. type: string
  12216. type: object
  12217. x-kubernetes-preserve-unknown-fields: true
  12218. required:
  12219. - metadata
  12220. - spec
  12221. type: object
  12222. served: true
  12223. storage: true
  12224. subresources:
  12225. status: {}
  12226. ---
  12227. # Source: rook-ceph/templates/resources.yaml
  12228. apiVersion: apiextensions.k8s.io/v1
  12229. kind: CustomResourceDefinition
  12230. metadata:
  12231. annotations:
  12232. controller-gen.kubebuilder.io/version: v0.11.3
  12233. helm.sh/resource-policy: keep
  12234. creationTimestamp: null
  12235. name: cephrbdmirrors.ceph.rook.io
  12236. spec:
  12237. group: ceph.rook.io
  12238. names:
  12239. kind: CephRBDMirror
  12240. listKind: CephRBDMirrorList
  12241. plural: cephrbdmirrors
  12242. singular: cephrbdmirror
  12243. scope: Namespaced
  12244. versions:
  12245. - additionalPrinterColumns:
  12246. - jsonPath: .status.phase
  12247. name: Phase
  12248. type: string
  12249. name: v1
  12250. schema:
  12251. openAPIV3Schema:
  12252. description: CephRBDMirror represents a Ceph RBD Mirror
  12253. properties:
  12254. apiVersion:
  12255. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  12256. type: string
  12257. kind:
  12258. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  12259. type: string
  12260. metadata:
  12261. type: object
  12262. spec:
  12263. description: RBDMirroringSpec represents the specification of an RBD mirror daemon
  12264. properties:
  12265. annotations:
  12266. additionalProperties:
  12267. type: string
  12268. description: The annotations-related configuration to add/set on each Pod related object.
  12269. nullable: true
  12270. type: object
  12271. x-kubernetes-preserve-unknown-fields: true
  12272. count:
  12273. description: Count represents the number of rbd mirror instance to run
  12274. minimum: 1
  12275. type: integer
  12276. labels:
  12277. additionalProperties:
  12278. type: string
  12279. description: The labels-related configuration to add/set on each Pod related object.
  12280. nullable: true
  12281. type: object
  12282. x-kubernetes-preserve-unknown-fields: true
  12283. peers:
  12284. description: Peers represents the peers spec
  12285. nullable: true
  12286. properties:
  12287. secretNames:
  12288. description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
  12289. items:
  12290. type: string
  12291. type: array
  12292. type: object
  12293. placement:
  12294. description: The affinity to place the rgw pods (default is to place on any available node)
  12295. nullable: true
  12296. properties:
  12297. nodeAffinity:
  12298. description: NodeAffinity is a group of node affinity scheduling rules
  12299. properties:
  12300. preferredDuringSchedulingIgnoredDuringExecution:
  12301. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  12302. items:
  12303. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  12304. properties:
  12305. preference:
  12306. description: A node selector term, associated with the corresponding weight.
  12307. properties:
  12308. matchExpressions:
  12309. description: A list of node selector requirements by node's labels.
  12310. items:
  12311. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12312. properties:
  12313. key:
  12314. description: The label key that the selector applies to.
  12315. type: string
  12316. operator:
  12317. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12318. type: string
  12319. values:
  12320. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12321. items:
  12322. type: string
  12323. type: array
  12324. required:
  12325. - key
  12326. - operator
  12327. type: object
  12328. type: array
  12329. matchFields:
  12330. description: A list of node selector requirements by node's fields.
  12331. items:
  12332. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12333. properties:
  12334. key:
  12335. description: The label key that the selector applies to.
  12336. type: string
  12337. operator:
  12338. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12339. type: string
  12340. values:
  12341. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12342. items:
  12343. type: string
  12344. type: array
  12345. required:
  12346. - key
  12347. - operator
  12348. type: object
  12349. type: array
  12350. type: object
  12351. x-kubernetes-map-type: atomic
  12352. weight:
  12353. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  12354. format: int32
  12355. type: integer
  12356. required:
  12357. - preference
  12358. - weight
  12359. type: object
  12360. type: array
  12361. requiredDuringSchedulingIgnoredDuringExecution:
  12362. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  12363. properties:
  12364. nodeSelectorTerms:
  12365. description: Required. A list of node selector terms. The terms are ORed.
  12366. items:
  12367. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  12368. properties:
  12369. matchExpressions:
  12370. description: A list of node selector requirements by node's labels.
  12371. items:
  12372. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12373. properties:
  12374. key:
  12375. description: The label key that the selector applies to.
  12376. type: string
  12377. operator:
  12378. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12379. type: string
  12380. values:
  12381. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12382. items:
  12383. type: string
  12384. type: array
  12385. required:
  12386. - key
  12387. - operator
  12388. type: object
  12389. type: array
  12390. matchFields:
  12391. description: A list of node selector requirements by node's fields.
  12392. items:
  12393. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12394. properties:
  12395. key:
  12396. description: The label key that the selector applies to.
  12397. type: string
  12398. operator:
  12399. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  12400. type: string
  12401. values:
  12402. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  12403. items:
  12404. type: string
  12405. type: array
  12406. required:
  12407. - key
  12408. - operator
  12409. type: object
  12410. type: array
  12411. type: object
  12412. x-kubernetes-map-type: atomic
  12413. type: array
  12414. required:
  12415. - nodeSelectorTerms
  12416. type: object
  12417. x-kubernetes-map-type: atomic
  12418. type: object
  12419. podAffinity:
  12420. description: PodAffinity is a group of inter pod affinity scheduling rules
  12421. properties:
  12422. preferredDuringSchedulingIgnoredDuringExecution:
  12423. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12424. items:
  12425. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12426. properties:
  12427. podAffinityTerm:
  12428. description: Required. A pod affinity term, associated with the corresponding weight.
  12429. properties:
  12430. labelSelector:
  12431. description: A label query over a set of resources, in this case pods.
  12432. properties:
  12433. matchExpressions:
  12434. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12435. items:
  12436. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12437. properties:
  12438. key:
  12439. description: key is the label key that the selector applies to.
  12440. type: string
  12441. operator:
  12442. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12443. type: string
  12444. values:
  12445. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12446. items:
  12447. type: string
  12448. type: array
  12449. required:
  12450. - key
  12451. - operator
  12452. type: object
  12453. type: array
  12454. matchLabels:
  12455. additionalProperties:
  12456. type: string
  12457. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12458. type: object
  12459. type: object
  12460. x-kubernetes-map-type: atomic
  12461. namespaceSelector:
  12462. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12463. properties:
  12464. matchExpressions:
  12465. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12466. items:
  12467. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12468. properties:
  12469. key:
  12470. description: key is the label key that the selector applies to.
  12471. type: string
  12472. operator:
  12473. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12474. type: string
  12475. values:
  12476. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12477. items:
  12478. type: string
  12479. type: array
  12480. required:
  12481. - key
  12482. - operator
  12483. type: object
  12484. type: array
  12485. matchLabels:
  12486. additionalProperties:
  12487. type: string
  12488. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12489. type: object
  12490. type: object
  12491. x-kubernetes-map-type: atomic
  12492. namespaces:
  12493. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12494. items:
  12495. type: string
  12496. type: array
  12497. topologyKey:
  12498. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12499. type: string
  12500. required:
  12501. - topologyKey
  12502. type: object
  12503. weight:
  12504. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12505. format: int32
  12506. type: integer
  12507. required:
  12508. - podAffinityTerm
  12509. - weight
  12510. type: object
  12511. type: array
  12512. requiredDuringSchedulingIgnoredDuringExecution:
  12513. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12514. items:
  12515. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12516. properties:
  12517. labelSelector:
  12518. description: A label query over a set of resources, in this case pods.
  12519. properties:
  12520. matchExpressions:
  12521. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12522. items:
  12523. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12524. properties:
  12525. key:
  12526. description: key is the label key that the selector applies to.
  12527. type: string
  12528. operator:
  12529. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12530. type: string
  12531. values:
  12532. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12533. items:
  12534. type: string
  12535. type: array
  12536. required:
  12537. - key
  12538. - operator
  12539. type: object
  12540. type: array
  12541. matchLabels:
  12542. additionalProperties:
  12543. type: string
  12544. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12545. type: object
  12546. type: object
  12547. x-kubernetes-map-type: atomic
  12548. namespaceSelector:
  12549. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12550. properties:
  12551. matchExpressions:
  12552. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12553. items:
  12554. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12555. properties:
  12556. key:
  12557. description: key is the label key that the selector applies to.
  12558. type: string
  12559. operator:
  12560. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12561. type: string
  12562. values:
  12563. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12564. items:
  12565. type: string
  12566. type: array
  12567. required:
  12568. - key
  12569. - operator
  12570. type: object
  12571. type: array
  12572. matchLabels:
  12573. additionalProperties:
  12574. type: string
  12575. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12576. type: object
  12577. type: object
  12578. x-kubernetes-map-type: atomic
  12579. namespaces:
  12580. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12581. items:
  12582. type: string
  12583. type: array
  12584. topologyKey:
  12585. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12586. type: string
  12587. required:
  12588. - topologyKey
  12589. type: object
  12590. type: array
  12591. type: object
  12592. podAntiAffinity:
  12593. description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
  12594. properties:
  12595. preferredDuringSchedulingIgnoredDuringExecution:
  12596. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  12597. items:
  12598. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  12599. properties:
  12600. podAffinityTerm:
  12601. description: Required. A pod affinity term, associated with the corresponding weight.
  12602. properties:
  12603. labelSelector:
  12604. description: A label query over a set of resources, in this case pods.
  12605. properties:
  12606. matchExpressions:
  12607. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12608. items:
  12609. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12610. properties:
  12611. key:
  12612. description: key is the label key that the selector applies to.
  12613. type: string
  12614. operator:
  12615. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12616. type: string
  12617. values:
  12618. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12619. items:
  12620. type: string
  12621. type: array
  12622. required:
  12623. - key
  12624. - operator
  12625. type: object
  12626. type: array
  12627. matchLabels:
  12628. additionalProperties:
  12629. type: string
  12630. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12631. type: object
  12632. type: object
  12633. x-kubernetes-map-type: atomic
  12634. namespaceSelector:
  12635. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12636. properties:
  12637. matchExpressions:
  12638. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12639. items:
  12640. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12641. properties:
  12642. key:
  12643. description: key is the label key that the selector applies to.
  12644. type: string
  12645. operator:
  12646. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12647. type: string
  12648. values:
  12649. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12650. items:
  12651. type: string
  12652. type: array
  12653. required:
  12654. - key
  12655. - operator
  12656. type: object
  12657. type: array
  12658. matchLabels:
  12659. additionalProperties:
  12660. type: string
  12661. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12662. type: object
  12663. type: object
  12664. x-kubernetes-map-type: atomic
  12665. namespaces:
  12666. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12667. items:
  12668. type: string
  12669. type: array
  12670. topologyKey:
  12671. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12672. type: string
  12673. required:
  12674. - topologyKey
  12675. type: object
  12676. weight:
  12677. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  12678. format: int32
  12679. type: integer
  12680. required:
  12681. - podAffinityTerm
  12682. - weight
  12683. type: object
  12684. type: array
  12685. requiredDuringSchedulingIgnoredDuringExecution:
  12686. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  12687. items:
  12688. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  12689. properties:
  12690. labelSelector:
  12691. description: A label query over a set of resources, in this case pods.
  12692. properties:
  12693. matchExpressions:
  12694. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12695. items:
  12696. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12697. properties:
  12698. key:
  12699. description: key is the label key that the selector applies to.
  12700. type: string
  12701. operator:
  12702. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12703. type: string
  12704. values:
  12705. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12706. items:
  12707. type: string
  12708. type: array
  12709. required:
  12710. - key
  12711. - operator
  12712. type: object
  12713. type: array
  12714. matchLabels:
  12715. additionalProperties:
  12716. type: string
  12717. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12718. type: object
  12719. type: object
  12720. x-kubernetes-map-type: atomic
  12721. namespaceSelector:
  12722. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  12723. properties:
  12724. matchExpressions:
  12725. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12726. items:
  12727. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12728. properties:
  12729. key:
  12730. description: key is the label key that the selector applies to.
  12731. type: string
  12732. operator:
  12733. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12734. type: string
  12735. values:
  12736. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12737. items:
  12738. type: string
  12739. type: array
  12740. required:
  12741. - key
  12742. - operator
  12743. type: object
  12744. type: array
  12745. matchLabels:
  12746. additionalProperties:
  12747. type: string
  12748. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12749. type: object
  12750. type: object
  12751. x-kubernetes-map-type: atomic
  12752. namespaces:
  12753. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  12754. items:
  12755. type: string
  12756. type: array
  12757. topologyKey:
  12758. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  12759. type: string
  12760. required:
  12761. - topologyKey
  12762. type: object
  12763. type: array
  12764. type: object
  12765. tolerations:
  12766. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
  12767. items:
  12768. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  12769. properties:
  12770. effect:
  12771. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  12772. type: string
  12773. key:
  12774. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  12775. type: string
  12776. operator:
  12777. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  12778. type: string
  12779. tolerationSeconds:
  12780. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  12781. format: int64
  12782. type: integer
  12783. value:
  12784. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  12785. type: string
  12786. type: object
  12787. type: array
  12788. topologySpreadConstraints:
  12789. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
  12790. items:
  12791. description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  12792. properties:
  12793. labelSelector:
  12794. description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
  12795. properties:
  12796. matchExpressions:
  12797. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  12798. items:
  12799. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  12800. properties:
  12801. key:
  12802. description: key is the label key that the selector applies to.
  12803. type: string
  12804. operator:
  12805. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  12806. type: string
  12807. values:
  12808. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  12809. items:
  12810. type: string
  12811. type: array
  12812. required:
  12813. - key
  12814. - operator
  12815. type: object
  12816. type: array
  12817. matchLabels:
  12818. additionalProperties:
  12819. type: string
  12820. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  12821. type: object
  12822. type: object
  12823. x-kubernetes-map-type: atomic
  12824. matchLabelKeys:
  12825. description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)."
  12826. items:
  12827. type: string
  12828. type: array
  12829. x-kubernetes-list-type: atomic
  12830. maxSkew:
  12831. description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  12832. format: int32
  12833. type: integer
  12834. minDomains:
  12835. description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  12836. format: int32
  12837. type: integer
  12838. nodeAffinityPolicy:
  12839. description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  12840. type: string
  12841. nodeTaintsPolicy:
  12842. description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  12843. type: string
  12844. topologyKey:
  12845. description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  12846. type: string
  12847. whenUnsatisfiable:
  12848. description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  12849. type: string
  12850. required:
  12851. - maxSkew
  12852. - topologyKey
  12853. - whenUnsatisfiable
  12854. type: object
  12855. type: array
  12856. type: object
  12857. x-kubernetes-preserve-unknown-fields: true
  12858. priorityClassName:
  12859. description: PriorityClassName sets priority class on the rbd mirror pods
  12860. type: string
  12861. resources:
  12862. description: The resource requirements for the rbd mirror pods
  12863. nullable: true
  12864. properties:
  12865. claims:
  12866. description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
  12867. items:
  12868. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  12869. properties:
  12870. name:
  12871. description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
  12872. type: string
  12873. required:
  12874. - name
  12875. type: object
  12876. type: array
  12877. x-kubernetes-list-map-keys:
  12878. - name
  12879. x-kubernetes-list-type: map
  12880. limits:
  12881. additionalProperties:
  12882. anyOf:
  12883. - type: integer
  12884. - type: string
  12885. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12886. x-kubernetes-int-or-string: true
  12887. description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  12888. type: object
  12889. requests:
  12890. additionalProperties:
  12891. anyOf:
  12892. - type: integer
  12893. - type: string
  12894. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12895. x-kubernetes-int-or-string: true
  12896. description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  12897. type: object
  12898. type: object
  12899. x-kubernetes-preserve-unknown-fields: true
  12900. required:
  12901. - count
  12902. type: object
  12903. status:
  12904. description: Status represents the status of an object
  12905. properties:
  12906. conditions:
  12907. items:
  12908. description: Condition represents a status condition on any Rook-Ceph Custom Resource.
  12909. properties:
  12910. lastHeartbeatTime:
  12911. format: date-time
  12912. type: string
  12913. lastTransitionTime:
  12914. format: date-time
  12915. type: string
  12916. message:
  12917. type: string
  12918. reason:
  12919. description: ConditionReason is a reason for a condition
  12920. type: string
  12921. status:
  12922. type: string
  12923. type:
  12924. description: ConditionType represent a resource's status
  12925. type: string
  12926. type: object
  12927. type: array
  12928. observedGeneration:
  12929. description: ObservedGeneration is the latest generation observed by the controller.
  12930. format: int64
  12931. type: integer
  12932. phase:
  12933. type: string
  12934. type: object
  12935. x-kubernetes-preserve-unknown-fields: true
  12936. required:
  12937. - metadata
  12938. - spec
  12939. type: object
  12940. served: true
  12941. storage: true
  12942. subresources:
  12943. status: {}
  12944. ---
  12945. # Source: rook-ceph/templates/resources.yaml
  12946. apiVersion: apiextensions.k8s.io/v1
  12947. kind: CustomResourceDefinition
  12948. metadata:
  12949. name: objectbucketclaims.objectbucket.io
  12950. annotations:
  12951. helm.sh/resource-policy: keep
  12952. spec:
  12953. group: objectbucket.io
  12954. names:
  12955. kind: ObjectBucketClaim
  12956. listKind: ObjectBucketClaimList
  12957. plural: objectbucketclaims
  12958. singular: objectbucketclaim
  12959. shortNames:
  12960. - obc
  12961. - obcs
  12962. scope: Namespaced
  12963. versions:
  12964. - name: v1alpha1
  12965. served: true
  12966. storage: true
  12967. schema:
  12968. openAPIV3Schema:
  12969. type: object
  12970. properties:
  12971. spec:
  12972. type: object
  12973. properties:
  12974. storageClassName:
  12975. type: string
  12976. bucketName:
  12977. type: string
  12978. generateBucketName:
  12979. type: string
  12980. additionalConfig:
  12981. type: object
  12982. nullable: true
  12983. x-kubernetes-preserve-unknown-fields: true
  12984. objectBucketName:
  12985. type: string
  12986. status:
  12987. type: object
  12988. x-kubernetes-preserve-unknown-fields: true
  12989. subresources:
  12990. status: {}
  12991. ---
  12992. # Source: rook-ceph/templates/resources.yaml
  12993. apiVersion: apiextensions.k8s.io/v1
  12994. kind: CustomResourceDefinition
  12995. metadata:
  12996. name: objectbuckets.objectbucket.io
  12997. annotations:
  12998. helm.sh/resource-policy: keep
  12999. spec:
  13000. group: objectbucket.io
  13001. names:
  13002. kind: ObjectBucket
  13003. listKind: ObjectBucketList
  13004. plural: objectbuckets
  13005. singular: objectbucket
  13006. shortNames:
  13007. - ob
  13008. - obs
  13009. scope: Cluster
  13010. versions:
  13011. - name: v1alpha1
  13012. served: true
  13013. storage: true
  13014. schema:
  13015. openAPIV3Schema:
  13016. type: object
  13017. properties:
  13018. spec:
  13019. type: object
  13020. properties:
  13021. storageClassName:
  13022. type: string
  13023. endpoint:
  13024. type: object
  13025. nullable: true
  13026. properties:
  13027. bucketHost:
  13028. type: string
  13029. bucketPort:
  13030. type: integer
  13031. format: int32
  13032. bucketName:
  13033. type: string
  13034. region:
  13035. type: string
  13036. subRegion:
  13037. type: string
  13038. additionalConfig:
  13039. type: object
  13040. nullable: true
  13041. x-kubernetes-preserve-unknown-fields: true
  13042. authentication:
  13043. type: object
  13044. nullable: true
  13045. items:
  13046. type: object
  13047. x-kubernetes-preserve-unknown-fields: true
  13048. additionalState:
  13049. type: object
  13050. nullable: true
  13051. x-kubernetes-preserve-unknown-fields: true
  13052. reclaimPolicy:
  13053. type: string
  13054. claimRef:
  13055. type: object
  13056. nullable: true
  13057. x-kubernetes-preserve-unknown-fields: true
  13058. status:
  13059. type: object
  13060. x-kubernetes-preserve-unknown-fields: true
  13061. subresources:
  13062. status: {}
  13063. ---
  13064. # Source: rook-ceph/templates/clusterrole.yaml
  13065. kind: ClusterRole
  13066. apiVersion: rbac.authorization.k8s.io/v1
  13067. metadata:
  13068. name: rook-ceph-system
  13069. labels:
  13070. operator: rook
  13071. storage-backend: ceph
  13072. app.kubernetes.io/part-of: rook-ceph-operator
  13073. app.kubernetes.io/managed-by: Helm
  13074. app.kubernetes.io/created-by: helm
  13075. helm.sh/chart: "rook-ceph-v1.12.3"
  13076. rules:
  13077. # Most resources are represented by a string representation of their name, such as "pods", just as it appears in the URL for the relevant API endpoint.
  13078. # However, some Kubernetes APIs involve a "subresource", such as the logs for a pod. [...]
  13079. # To represent this in an RBAC role, use a slash to delimit the resource and subresource.
  13080. # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources
  13081. - apiGroups: [""]
  13082. resources: ["pods", "pods/log"]
  13083. verbs: ["get", "list"]
  13084. - apiGroups: [""]
  13085. resources: ["pods/exec"]
  13086. verbs: ["create"]
  13087. - apiGroups: ["admissionregistration.k8s.io"]
  13088. resources: ["validatingwebhookconfigurations"]
  13089. verbs: ["create", "get", "delete", "update"]
  13090. - apiGroups: ["csiaddons.openshift.io"]
  13091. resources: ["networkfences"]
  13092. verbs: ["create", "get", "update", "delete", "watch", "list"]
  13093. - apiGroups: ["apiextensions.k8s.io"]
  13094. resources: ["customresourcedefinitions"]
  13095. verbs: ["get"]
  13096. ---
  13097. # Source: rook-ceph/templates/clusterrole.yaml
  13098. # The cluster role for managing all the cluster-specific resources in a namespace
  13099. apiVersion: rbac.authorization.k8s.io/v1
  13100. kind: ClusterRole
  13101. metadata:
  13102. name: rook-ceph-cluster-mgmt
  13103. labels:
  13104. operator: rook
  13105. storage-backend: ceph
  13106. app.kubernetes.io/part-of: rook-ceph-operator
  13107. app.kubernetes.io/managed-by: Helm
  13108. app.kubernetes.io/created-by: helm
  13109. helm.sh/chart: "rook-ceph-v1.12.3"
  13110. rules:
  13111. - apiGroups:
  13112. - ""
  13113. - apps
  13114. - extensions
  13115. resources:
  13116. - secrets
  13117. - pods
  13118. - pods/log
  13119. - services
  13120. - configmaps
  13121. - deployments
  13122. - daemonsets
  13123. verbs:
  13124. - get
  13125. - list
  13126. - watch
  13127. - patch
  13128. - create
  13129. - update
  13130. - delete
  13131. ---
  13132. # Source: rook-ceph/templates/clusterrole.yaml
  13133. # The cluster role for managing the Rook CRDs
  13134. apiVersion: rbac.authorization.k8s.io/v1
  13135. # Rook watches for its CRDs in all namespaces, so this should be a cluster-scoped role unless the
  13136. # operator config `ROOK_CURRENT_NAMESPACE_ONLY=true`.
  13137. kind: ClusterRole
  13138. metadata:
  13139. name: rook-ceph-global
  13140. labels:
  13141. operator: rook
  13142. storage-backend: ceph
  13143. app.kubernetes.io/part-of: rook-ceph-operator
  13144. app.kubernetes.io/managed-by: Helm
  13145. app.kubernetes.io/created-by: helm
  13146. helm.sh/chart: "rook-ceph-v1.12.3"
  13147. rules:
  13148. - apiGroups:
  13149. - ""
  13150. resources:
  13151. # Pod access is needed for fencing
  13152. - pods
  13153. # Node access is needed for determining nodes where mons should run
  13154. - nodes
  13155. - nodes/proxy
  13156. - services
  13157. # Rook watches secrets which it uses to configure access to external resources.
  13158. # e.g., external Ceph cluster; TLS certificates for the admission controller or object store
  13159. - secrets
  13160. # Rook watches for changes to the rook-operator-config configmap
  13161. - configmaps
  13162. verbs:
  13163. - get
  13164. - list
  13165. - watch
  13166. - apiGroups:
  13167. - ""
  13168. resources:
  13169. # Rook creates events for its custom resources
  13170. - events
  13171. # Rook creates PVs and PVCs for OSDs managed by the Rook provisioner
  13172. - persistentvolumes
  13173. - persistentvolumeclaims
  13174. # Rook creates endpoints for mgr and object store access
  13175. - endpoints
  13176. verbs:
  13177. - get
  13178. - list
  13179. - watch
  13180. - patch
  13181. - create
  13182. - update
  13183. - delete
  13184. - apiGroups:
  13185. - storage.k8s.io
  13186. resources:
  13187. - storageclasses
  13188. verbs:
  13189. - get
  13190. - list
  13191. - watch
  13192. - apiGroups:
  13193. - batch
  13194. resources:
  13195. - jobs
  13196. - cronjobs
  13197. verbs:
  13198. - get
  13199. - list
  13200. - watch
  13201. - create
  13202. - update
  13203. - delete
  13204. - deletecollection
  13205. # The Rook operator must be able to watch all ceph.rook.io resources to reconcile them.
  13206. - apiGroups: ["ceph.rook.io"]
  13207. resources:
  13208. - cephclients
  13209. - cephclusters
  13210. - cephblockpools
  13211. - cephfilesystems
  13212. - cephnfses
  13213. - cephobjectstores
  13214. - cephobjectstoreusers
  13215. - cephobjectrealms
  13216. - cephobjectzonegroups
  13217. - cephobjectzones
  13218. - cephbuckettopics
  13219. - cephbucketnotifications
  13220. - cephrbdmirrors
  13221. - cephfilesystemmirrors
  13222. - cephfilesystemsubvolumegroups
  13223. - cephblockpoolradosnamespaces
  13224. - cephcosidrivers
  13225. verbs:
  13226. - get
  13227. - list
  13228. - watch
  13229. # Ideally the update permission is not required, but Rook needs it to add finalizers to resources.
  13230. - update
  13231. # Rook must have update access to status subresources for its custom resources.
  13232. - apiGroups: ["ceph.rook.io"]
  13233. resources:
  13234. - cephclients/status
  13235. - cephclusters/status
  13236. - cephblockpools/status
  13237. - cephfilesystems/status
  13238. - cephnfses/status
  13239. - cephobjectstores/status
  13240. - cephobjectstoreusers/status
  13241. - cephobjectrealms/status
  13242. - cephobjectzonegroups/status
  13243. - cephobjectzones/status
  13244. - cephbuckettopics/status
  13245. - cephbucketnotifications/status
  13246. - cephrbdmirrors/status
  13247. - cephfilesystemmirrors/status
  13248. - cephfilesystemsubvolumegroups/status
  13249. - cephblockpoolradosnamespaces/status
  13250. verbs: ["update"]
  13251. # The "*/finalizers" permission may need to be strictly given for K8s clusters where
  13252. # OwnerReferencesPermissionEnforcement is enabled so that Rook can set blockOwnerDeletion on
  13253. # resources owned by Rook CRs (e.g., a Secret owned by an OSD Deployment). See more:
  13254. # https://kubernetes.io/docs/reference/access-authn-authz/_print/#ownerreferencespermissionenforcement
  13255. - apiGroups: ["ceph.rook.io"]
  13256. resources:
  13257. - cephclients/finalizers
  13258. - cephclusters/finalizers
  13259. - cephblockpools/finalizers
  13260. - cephfilesystems/finalizers
  13261. - cephnfses/finalizers
  13262. - cephobjectstores/finalizers
  13263. - cephobjectstoreusers/finalizers
  13264. - cephobjectrealms/finalizers
  13265. - cephobjectzonegroups/finalizers
  13266. - cephobjectzones/finalizers
  13267. - cephbuckettopics/finalizers
  13268. - cephbucketnotifications/finalizers
  13269. - cephrbdmirrors/finalizers
  13270. - cephfilesystemmirrors/finalizers
  13271. - cephfilesystemsubvolumegroups/finalizers
  13272. - cephblockpoolradosnamespaces/finalizers
  13273. verbs: ["update"]
  13274. - apiGroups:
  13275. - policy
  13276. - apps
  13277. - extensions
  13278. resources:
  13279. # This is for the clusterdisruption controller
  13280. - poddisruptionbudgets
  13281. # This is for both clusterdisruption and nodedrain controllers
  13282. - deployments
  13283. - replicasets
  13284. verbs:
  13285. - get
  13286. - list
  13287. - watch
  13288. - create
  13289. - update
  13290. - delete
  13291. - deletecollection
  13292. - apiGroups:
  13293. - apps
  13294. resources:
  13295. # This is to add osd deployment owner ref on key rotation
  13296. # cron jobs.
  13297. - deployments/finalizers
  13298. verbs:
  13299. - update
  13300. - apiGroups:
  13301. - healthchecking.openshift.io
  13302. resources:
  13303. - machinedisruptionbudgets
  13304. verbs:
  13305. - get
  13306. - list
  13307. - watch
  13308. - create
  13309. - update
  13310. - delete
  13311. - apiGroups:
  13312. - machine.openshift.io
  13313. resources:
  13314. - machines
  13315. verbs:
  13316. - get
  13317. - list
  13318. - watch
  13319. - create
  13320. - update
  13321. - delete
  13322. - apiGroups:
  13323. - storage.k8s.io
  13324. resources:
  13325. - csidrivers
  13326. verbs:
  13327. - create
  13328. - delete
  13329. - get
  13330. - update
  13331. - apiGroups:
  13332. - k8s.cni.cncf.io
  13333. resources:
  13334. - network-attachment-definitions
  13335. verbs:
  13336. - get
  13337. ---
  13338. # Source: rook-ceph/templates/clusterrole.yaml
  13339. # Aspects of ceph-mgr that require cluster-wide access
  13340. kind: ClusterRole
  13341. apiVersion: rbac.authorization.k8s.io/v1
  13342. metadata:
  13343. name: rook-ceph-mgr-cluster
  13344. labels:
  13345. operator: rook
  13346. storage-backend: ceph
  13347. app.kubernetes.io/part-of: rook-ceph-operator
  13348. app.kubernetes.io/managed-by: Helm
  13349. app.kubernetes.io/created-by: helm
  13350. helm.sh/chart: "rook-ceph-v1.12.3"
  13351. rules:
  13352. - apiGroups:
  13353. - ""
  13354. resources:
  13355. - configmaps
  13356. - nodes
  13357. - nodes/proxy
  13358. - persistentvolumes
  13359. verbs:
  13360. - get
  13361. - list
  13362. - watch
  13363. - apiGroups:
  13364. - ""
  13365. resources:
  13366. - events
  13367. verbs:
  13368. - create
  13369. - patch
  13370. - list
  13371. - get
  13372. - watch
  13373. - apiGroups:
  13374. - storage.k8s.io
  13375. resources:
  13376. - storageclasses
  13377. verbs:
  13378. - get
  13379. - list
  13380. - watch
  13381. ---
  13382. # Source: rook-ceph/templates/clusterrole.yaml
  13383. # Aspects of ceph-mgr that require access to the system namespace
  13384. kind: ClusterRole
  13385. apiVersion: rbac.authorization.k8s.io/v1
  13386. metadata:
  13387. name: rook-ceph-mgr-system
  13388. rules:
  13389. - apiGroups:
  13390. - ""
  13391. resources:
  13392. - configmaps
  13393. verbs:
  13394. - get
  13395. - list
  13396. - watch
  13397. ---
  13398. # Source: rook-ceph/templates/clusterrole.yaml
  13399. # Used for provisioning ObjectBuckets (OBs) in response to ObjectBucketClaims (OBCs).
  13400. # Note: Rook runs a copy of the lib-bucket-provisioner's OBC controller.
  13401. # OBCs can be created in any Kubernetes namespace, so this must be a cluster-scoped role.
  13402. kind: ClusterRole
  13403. apiVersion: rbac.authorization.k8s.io/v1
  13404. metadata:
  13405. name: rook-ceph-object-bucket
  13406. labels:
  13407. operator: rook
  13408. storage-backend: ceph
  13409. app.kubernetes.io/part-of: rook-ceph-operator
  13410. app.kubernetes.io/managed-by: Helm
  13411. app.kubernetes.io/created-by: helm
  13412. helm.sh/chart: "rook-ceph-v1.12.3"
  13413. rules:
  13414. - apiGroups: [""]
  13415. resources: ["secrets", "configmaps"]
  13416. verbs:
  13417. # OBC controller creates secrets and configmaps containing information for users about how to
  13418. # connect to object buckets. It deletes them when an OBC is deleted.
  13419. - get
  13420. - create
  13421. - update
  13422. - delete
  13423. - apiGroups: ["storage.k8s.io"]
  13424. resources: ["storageclasses"]
  13425. verbs:
  13426. # OBC controller gets parameters from the OBC's storageclass
  13427. # Rook gets additional parameters from the OBC's storageclass
  13428. - get
  13429. - apiGroups: ["objectbucket.io"]
  13430. resources: ["objectbucketclaims"]
  13431. verbs:
  13432. # OBC controller needs to list/watch OBCs and get latest version of a reconciled OBC
  13433. - list
  13434. - watch
  13435. - get
  13436. # Ideally, update should not be needed, but the OBC controller updates the OBC with bucket
  13437. # information outside of the status subresource
  13438. - update
  13439. # OBC controller does not delete OBCs; users do this
  13440. - apiGroups: ["objectbucket.io"]
  13441. resources: ["objectbuckets"]
  13442. verbs:
  13443. # OBC controller needs to list/watch OBs and get latest version of a reconciled OB
  13444. - list
  13445. - watch
  13446. - get
  13447. # OBC controller creates an OB when an OBC's bucket has been provisioned by Ceph, updates them
  13448. # when an OBC is updated, and deletes them when the OBC is de-provisioned.
  13449. - create
  13450. - update
  13451. - delete
  13452. - apiGroups: ["objectbucket.io"]
  13453. resources: ["objectbucketclaims/status", "objectbuckets/status"]
  13454. verbs:
  13455. # OBC controller updates OBC and OB statuses
  13456. - update
  13457. - apiGroups: ["objectbucket.io"]
  13458. # This does not strictly allow the OBC/OB controllers to update finalizers. That is handled by
  13459. # the direct "update" permissions above. Instead, this allows Rook's controller to create
  13460. # resources which are owned by OBs/OBCs and where blockOwnerDeletion is set.
  13461. resources: ["objectbucketclaims/finalizers", "objectbuckets/finalizers"]
  13462. verbs:
  13463. - update
  13464. ---
  13465. # Source: rook-ceph/templates/clusterrole.yaml
  13466. kind: ClusterRole
  13467. apiVersion: rbac.authorization.k8s.io/v1
  13468. metadata:
  13469. name: rook-ceph-osd
  13470. rules:
  13471. - apiGroups:
  13472. - ""
  13473. resources:
  13474. - nodes
  13475. verbs:
  13476. - get
  13477. - list
  13478. ---
  13479. # Source: rook-ceph/templates/clusterrole.yaml
  13480. # TODO: remove this, once https://github.com/rook/rook/issues/10141
  13481. # is resolved.
  13482. kind: ClusterRole
  13483. apiVersion: rbac.authorization.k8s.io/v1
  13484. metadata:
  13485. name: cephfs-csi-nodeplugin
  13486. rules:
  13487. - apiGroups: [""]
  13488. resources: ["nodes"]
  13489. verbs: ["get"]
  13490. ---
  13491. # Source: rook-ceph/templates/clusterrole.yaml
  13492. kind: ClusterRole
  13493. apiVersion: rbac.authorization.k8s.io/v1
  13494. metadata:
  13495. name: cephfs-external-provisioner-runner
  13496. rules:
  13497. - apiGroups: [""]
  13498. resources: ["secrets"]
  13499. verbs: ["get", "list"]
  13500. - apiGroups: [""]
  13501. resources: ["nodes"]
  13502. verbs: ["get", "list", "watch"]
  13503. - apiGroups: [""]
  13504. resources: ["persistentvolumes"]
  13505. verbs: ["get", "list", "watch", "create", "delete", "patch"]
  13506. - apiGroups: [""]
  13507. resources: ["persistentvolumeclaims"]
  13508. verbs: ["get", "list", "watch", "patch", "update"]
  13509. - apiGroups: ["storage.k8s.io"]
  13510. resources: ["storageclasses"]
  13511. verbs: ["get", "list", "watch"]
  13512. - apiGroups: [""]
  13513. resources: ["events"]
  13514. verbs: ["list", "watch", "create", "update", "patch"]
  13515. - apiGroups: ["storage.k8s.io"]
  13516. resources: ["volumeattachments"]
  13517. verbs: ["get", "list", "watch", "patch"]
  13518. - apiGroups: ["storage.k8s.io"]
  13519. resources: ["volumeattachments/status"]
  13520. verbs: ["patch"]
  13521. - apiGroups: [""]
  13522. resources: ["persistentvolumeclaims/status"]
  13523. verbs: ["patch"]
  13524. - apiGroups: ["snapshot.storage.k8s.io"]
  13525. resources: ["volumesnapshots"]
  13526. verbs: ["get", "list"]
  13527. - apiGroups: ["snapshot.storage.k8s.io"]
  13528. resources: ["volumesnapshotclasses"]
  13529. verbs: ["get", "list", "watch"]
  13530. - apiGroups: ["snapshot.storage.k8s.io"]
  13531. resources: ["volumesnapshotcontents"]
  13532. verbs: [ "get", "list", "watch", "patch", "update"]
  13533. - apiGroups: ["snapshot.storage.k8s.io"]
  13534. resources: ["volumesnapshotcontents/status"]
  13535. verbs: ["update", "patch"]
  13536. ---
  13537. # Source: rook-ceph/templates/clusterrole.yaml
  13538. kind: ClusterRole
  13539. apiVersion: rbac.authorization.k8s.io/v1
  13540. metadata:
  13541. name: rbd-csi-nodeplugin
  13542. labels:
  13543. operator: rook
  13544. storage-backend: ceph
  13545. app.kubernetes.io/part-of: rook-ceph-operator
  13546. app.kubernetes.io/managed-by: Helm
  13547. app.kubernetes.io/created-by: helm
  13548. helm.sh/chart: "rook-ceph-v1.12.3"
  13549. rules:
  13550. - apiGroups: [""]
  13551. resources: ["secrets"]
  13552. verbs: ["get", "list"]
  13553. - apiGroups: [""]
  13554. resources: ["persistentvolumes"]
  13555. verbs: ["get", "list"]
  13556. - apiGroups: ["storage.k8s.io"]
  13557. resources: ["volumeattachments"]
  13558. verbs: ["get", "list"]
  13559. - apiGroups: [""]
  13560. resources: ["configmaps"]
  13561. verbs: ["get"]
  13562. - apiGroups: [""]
  13563. resources: ["serviceaccounts"]
  13564. verbs: ["get"]
  13565. - apiGroups: [""]
  13566. resources: ["serviceaccounts/token"]
  13567. verbs: ["create"]
  13568. - apiGroups: [""]
  13569. resources: ["nodes"]
  13570. verbs: ["get"]
  13571. ---
  13572. # Source: rook-ceph/templates/clusterrole.yaml
  13573. kind: ClusterRole
  13574. apiVersion: rbac.authorization.k8s.io/v1
  13575. metadata:
  13576. name: rbd-external-provisioner-runner
  13577. rules:
  13578. - apiGroups: [""]
  13579. resources: ["secrets"]
  13580. verbs: ["get", "list", "watch"]
  13581. - apiGroups: [""]
  13582. resources: ["persistentvolumes"]
  13583. verbs: ["get", "list", "watch", "create", "delete", "patch"]
  13584. - apiGroups: [""]
  13585. resources: ["persistentvolumeclaims"]
  13586. verbs: ["get", "list", "watch", "update"]
  13587. - apiGroups: ["storage.k8s.io"]
  13588. resources: ["storageclasses"]
  13589. verbs: ["get", "list", "watch"]
  13590. - apiGroups: [""]
  13591. resources: ["events"]
  13592. verbs: ["list", "watch", "create", "update", "patch"]
  13593. - apiGroups: ["storage.k8s.io"]
  13594. resources: ["volumeattachments"]
  13595. verbs: ["get", "list", "watch", "patch"]
  13596. - apiGroups: ["storage.k8s.io"]
  13597. resources: ["volumeattachments/status"]
  13598. verbs: ["patch"]
  13599. - apiGroups: [""]
  13600. resources: ["nodes"]
  13601. verbs: ["get", "list", "watch"]
  13602. - apiGroups: ["storage.k8s.io"]
  13603. resources: ["csinodes"]
  13604. verbs: ["get", "list", "watch"]
  13605. - apiGroups: [""]
  13606. resources: ["persistentvolumeclaims/status"]
  13607. verbs: ["patch"]
  13608. - apiGroups: ["snapshot.storage.k8s.io"]
  13609. resources: ["volumesnapshots"]
  13610. verbs: ["get", "list", "watch"]
  13611. - apiGroups: ["snapshot.storage.k8s.io"]
  13612. resources: ["volumesnapshotclasses"]
  13613. verbs: ["get", "list", "watch"]
  13614. - apiGroups: ["snapshot.storage.k8s.io"]
  13615. resources: ["volumesnapshotcontents"]
  13616. verbs: [ "get", "list", "watch", "patch", "update"]
  13617. - apiGroups: ["snapshot.storage.k8s.io"]
  13618. resources: ["volumesnapshotcontents/status"]
  13619. verbs: ["update", "patch"]
  13620. - apiGroups: [""]
  13621. resources: ["configmaps"]
  13622. verbs: ["get"]
  13623. - apiGroups: [""]
  13624. resources: ["serviceaccounts"]
  13625. verbs: ["get"]
  13626. - apiGroups: [""]
  13627. resources: ["serviceaccounts/token"]
  13628. verbs: ["create"]
  13629. - apiGroups: [""]
  13630. resources: ["nodes"]
  13631. verbs: ["get", "list", "watch"]
  13632. - apiGroups: ["storage.k8s.io"]
  13633. resources: ["csinodes"]
  13634. verbs: ["get", "list", "watch"]
  13635. ---
  13636. # Source: rook-ceph/templates/clusterrole.yaml
  13637. kind: ClusterRole
  13638. apiVersion: rbac.authorization.k8s.io/v1
  13639. metadata:
  13640. name: objectstorage-provisioner-role
  13641. labels:
  13642. app.kubernetes.io/part-of: container-object-storage-interface
  13643. app.kubernetes.io/component: driver-ceph
  13644. app.kubernetes.io/name: cosi-driver-ceph
  13645. rules:
  13646. - apiGroups: ["objectstorage.k8s.io"]
  13647. resources:
  13648. [
  13649. "buckets",
  13650. "bucketaccesses",
  13651. "bucketclaims",
  13652. "bucketaccessclasses",
  13653. "buckets/status",
  13654. "bucketaccesses/status",
  13655. "bucketclaims/status",
  13656. "bucketaccessclasses/status",
  13657. ]
  13658. verbs: ["get", "list", "watch", "update", "create", "delete"]
  13659. - apiGroups: ["coordination.k8s.io"]
  13660. resources: ["leases"]
  13661. verbs: ["get", "watch", "list", "delete", "update", "create"]
  13662. - apiGroups: [""]
  13663. resources: ["secrets", "events"]
  13664. verbs: ["get", "delete", "update", "create"]
  13665. ---
  13666. # Source: rook-ceph/templates/cluster-rbac.yaml
  13667. # Allow the ceph mgr to access cluster-wide resources necessary for the mgr modules
  13668. kind: ClusterRoleBinding
  13669. apiVersion: rbac.authorization.k8s.io/v1
  13670. metadata:
  13671. name: rook-ceph-mgr-cluster
  13672. roleRef:
  13673. apiGroup: rbac.authorization.k8s.io
  13674. kind: ClusterRole
  13675. name: rook-ceph-mgr-cluster
  13676. subjects:
  13677. - kind: ServiceAccount
  13678. name: rook-ceph-mgr
  13679. namespace: aleph-ns # namespace:cluster
  13680. ---
  13681. # Source: rook-ceph/templates/cluster-rbac.yaml
  13682. # Allow the ceph osd to access cluster-wide resources necessary for determining their topology location
  13683. kind: ClusterRoleBinding
  13684. apiVersion: rbac.authorization.k8s.io/v1
  13685. metadata:
  13686. name: rook-ceph-osd
  13687. roleRef:
  13688. apiGroup: rbac.authorization.k8s.io
  13689. kind: ClusterRole
  13690. name: rook-ceph-osd
  13691. subjects:
  13692. - kind: ServiceAccount
  13693. name: rook-ceph-osd
  13694. namespace: aleph-ns # namespace:cluster
  13695. ---
  13696. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13697. kind: ClusterRoleBinding
  13698. apiVersion: rbac.authorization.k8s.io/v1
  13699. metadata:
  13700. name: rook-ceph-system
  13701. labels:
  13702. operator: rook
  13703. storage-backend: ceph
  13704. app.kubernetes.io/part-of: rook-ceph-operator
  13705. app.kubernetes.io/managed-by: Helm
  13706. app.kubernetes.io/created-by: helm
  13707. helm.sh/chart: "rook-ceph-v1.12.3"
  13708. roleRef:
  13709. apiGroup: rbac.authorization.k8s.io
  13710. kind: ClusterRole
  13711. name: rook-ceph-system
  13712. subjects:
  13713. - kind: ServiceAccount
  13714. name: rook-ceph-system
  13715. namespace: aleph-ns # namespace:operator
  13716. ---
  13717. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13718. # Grant the rook system daemons cluster-wide access to manage the Rook CRDs, PVCs, and storage classes
  13719. kind: ClusterRoleBinding
  13720. apiVersion: rbac.authorization.k8s.io/v1
  13721. metadata:
  13722. name: rook-ceph-global
  13723. labels:
  13724. operator: rook
  13725. storage-backend: ceph
  13726. app.kubernetes.io/part-of: rook-ceph-operator
  13727. app.kubernetes.io/managed-by: Helm
  13728. app.kubernetes.io/created-by: helm
  13729. helm.sh/chart: "rook-ceph-v1.12.3"
  13730. roleRef:
  13731. apiGroup: rbac.authorization.k8s.io
  13732. kind: ClusterRole
  13733. name: rook-ceph-global
  13734. subjects:
  13735. - kind: ServiceAccount
  13736. name: rook-ceph-system
  13737. namespace: aleph-ns # namespace:operator
  13738. ---
  13739. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13740. kind: ClusterRoleBinding
  13741. # Give Rook-Ceph Operator permissions to provision ObjectBuckets in response to ObjectBucketClaims.
  13742. apiVersion: rbac.authorization.k8s.io/v1
  13743. metadata:
  13744. name: rook-ceph-object-bucket
  13745. roleRef:
  13746. apiGroup: rbac.authorization.k8s.io
  13747. kind: ClusterRole
  13748. name: rook-ceph-object-bucket
  13749. subjects:
  13750. - kind: ServiceAccount
  13751. name: rook-ceph-system
  13752. namespace: aleph-ns # namespace:operator
  13753. ---
  13754. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13755. kind: ClusterRoleBinding
  13756. apiVersion: rbac.authorization.k8s.io/v1
  13757. metadata:
  13758. name: rbd-csi-nodeplugin
  13759. subjects:
  13760. - kind: ServiceAccount
  13761. name: rook-csi-rbd-plugin-sa
  13762. namespace: aleph-ns # namespace:operator
  13763. roleRef:
  13764. kind: ClusterRole
  13765. name: rbd-csi-nodeplugin
  13766. apiGroup: rbac.authorization.k8s.io
  13767. ---
  13768. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13769. kind: ClusterRoleBinding
  13770. apiVersion: rbac.authorization.k8s.io/v1
  13771. metadata:
  13772. name: cephfs-csi-provisioner-role
  13773. subjects:
  13774. - kind: ServiceAccount
  13775. name: rook-csi-cephfs-provisioner-sa
  13776. namespace: aleph-ns # namespace:operator
  13777. roleRef:
  13778. kind: ClusterRole
  13779. name: cephfs-external-provisioner-runner
  13780. apiGroup: rbac.authorization.k8s.io
  13781. ---
  13782. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13783. # This is required by operator-sdk to map the cluster/clusterrolebindings with SA
  13784. # otherwise operator-sdk will create a individual file for these.
  13785. kind: ClusterRoleBinding
  13786. apiVersion: rbac.authorization.k8s.io/v1
  13787. metadata:
  13788. name: cephfs-csi-nodeplugin-role
  13789. subjects:
  13790. - kind: ServiceAccount
  13791. name: rook-csi-cephfs-plugin-sa
  13792. namespace: aleph-ns # namespace:operator
  13793. roleRef:
  13794. kind: ClusterRole
  13795. name: cephfs-csi-nodeplugin
  13796. apiGroup: rbac.authorization.k8s.io
  13797. ---
  13798. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13799. kind: ClusterRoleBinding
  13800. apiVersion: rbac.authorization.k8s.io/v1
  13801. metadata:
  13802. name: rbd-csi-provisioner-role
  13803. subjects:
  13804. - kind: ServiceAccount
  13805. name: rook-csi-rbd-provisioner-sa
  13806. namespace: aleph-ns # namespace:operator
  13807. roleRef:
  13808. kind: ClusterRole
  13809. name: rbd-external-provisioner-runner
  13810. apiGroup: rbac.authorization.k8s.io
  13811. ---
  13812. # Source: rook-ceph/templates/clusterrolebinding.yaml
  13813. # RBAC for ceph cosi driver service account
  13814. kind: ClusterRoleBinding
  13815. apiVersion: rbac.authorization.k8s.io/v1
  13816. metadata:
  13817. name: objectstorage-provisioner-role-binding
  13818. labels:
  13819. app.kubernetes.io/part-of: container-object-storage-interface
  13820. app.kubernetes.io/component: driver-ceph
  13821. app.kubernetes.io/name: cosi-driver-ceph
  13822. subjects:
  13823. - kind: ServiceAccount
  13824. name: objectstorage-provisioner
  13825. namespace: aleph-ns # namespace:operator
  13826. roleRef:
  13827. kind: ClusterRole
  13828. name: objectstorage-provisioner-role
  13829. apiGroup: rbac.authorization.k8s.io
  13830. ---
  13831. # Source: rook-ceph/templates/cluster-rbac.yaml
  13832. kind: Role
  13833. apiVersion: rbac.authorization.k8s.io/v1
  13834. metadata:
  13835. name: rook-ceph-osd
  13836. namespace: aleph-ns # namespace:cluster
  13837. rules:
  13838. # this is needed for rook's "key-management" CLI to fetch the vault token from the secret when
  13839. # validating the connection details and for key rotation operations.
  13840. - apiGroups: [""]
  13841. resources: ["secrets"]
  13842. verbs: ["get","update"]
  13843. - apiGroups: [""]
  13844. resources: ["configmaps"]
  13845. verbs: ["get", "list", "watch", "create", "update", "delete"]
  13846. - apiGroups: ["ceph.rook.io"]
  13847. resources: ["cephclusters", "cephclusters/finalizers"]
  13848. verbs: ["get", "list", "create", "update", "delete"]
  13849. ---
  13850. # Source: rook-ceph/templates/cluster-rbac.yaml
  13851. kind: Role
  13852. apiVersion: rbac.authorization.k8s.io/v1
  13853. metadata:
  13854. name: rook-ceph-rgw
  13855. namespace: aleph-ns # namespace:cluster
  13856. rules:
  13857. # Placeholder role so the rgw service account will
  13858. # be generated in the csv. Remove this role and role binding
  13859. # when fixing https://github.com/rook/rook/issues/10141.
  13860. - apiGroups:
  13861. - ""
  13862. resources:
  13863. - configmaps
  13864. verbs:
  13865. - get
  13866. ---
  13867. # Source: rook-ceph/templates/cluster-rbac.yaml
  13868. # Aspects of ceph-mgr that operate within the cluster's namespace
  13869. kind: Role
  13870. apiVersion: rbac.authorization.k8s.io/v1
  13871. metadata:
  13872. name: rook-ceph-mgr
  13873. namespace: aleph-ns # namespace:cluster
  13874. rules:
  13875. - apiGroups:
  13876. - ""
  13877. resources:
  13878. - pods
  13879. - services
  13880. - pods/log
  13881. verbs:
  13882. - get
  13883. - list
  13884. - watch
  13885. - create
  13886. - update
  13887. - delete
  13888. - apiGroups:
  13889. - batch
  13890. resources:
  13891. - jobs
  13892. verbs:
  13893. - get
  13894. - list
  13895. - watch
  13896. - create
  13897. - update
  13898. - delete
  13899. - apiGroups:
  13900. - ceph.rook.io
  13901. resources:
  13902. - cephclients
  13903. - cephclusters
  13904. - cephblockpools
  13905. - cephfilesystems
  13906. - cephnfses
  13907. - cephobjectstores
  13908. - cephobjectstoreusers
  13909. - cephobjectrealms
  13910. - cephobjectzonegroups
  13911. - cephobjectzones
  13912. - cephbuckettopics
  13913. - cephbucketnotifications
  13914. - cephrbdmirrors
  13915. - cephfilesystemmirrors
  13916. - cephfilesystemsubvolumegroups
  13917. - cephblockpoolradosnamespaces
  13918. - cephcosidrivers
  13919. verbs:
  13920. - get
  13921. - list
  13922. - watch
  13923. - create
  13924. - update
  13925. - delete
  13926. - patch
  13927. - apiGroups:
  13928. - apps
  13929. resources:
  13930. - deployments/scale
  13931. - deployments
  13932. verbs:
  13933. - patch
  13934. - delete
  13935. - apiGroups:
  13936. - ''
  13937. resources:
  13938. - persistentvolumeclaims
  13939. verbs:
  13940. - delete
  13941. ---
  13942. # Source: rook-ceph/templates/cluster-rbac.yaml
  13943. kind: Role
  13944. apiVersion: rbac.authorization.k8s.io/v1
  13945. metadata:
  13946. name: rook-ceph-cmd-reporter
  13947. namespace: aleph-ns # namespace:cluster
  13948. rules:
  13949. - apiGroups:
  13950. - ""
  13951. resources:
  13952. - pods
  13953. - configmaps
  13954. verbs:
  13955. - get
  13956. - list
  13957. - watch
  13958. - create
  13959. - update
  13960. - delete
  13961. ---
  13962. # Source: rook-ceph/templates/cluster-rbac.yaml
  13963. # Aspects of ceph osd purge job that require access to the cluster namespace
  13964. kind: Role
  13965. apiVersion: rbac.authorization.k8s.io/v1
  13966. metadata:
  13967. name: rook-ceph-purge-osd
  13968. namespace: aleph-ns # namespace:cluster
  13969. rules:
  13970. - apiGroups: [""]
  13971. resources: ["configmaps"]
  13972. verbs: ["get"]
  13973. - apiGroups: ["apps"]
  13974. resources: ["deployments"]
  13975. verbs: ["get", "delete" ]
  13976. - apiGroups: ["batch"]
  13977. resources: ["jobs"]
  13978. verbs: ["get", "list", "delete" ]
  13979. - apiGroups: [""]
  13980. resources: ["persistentvolumeclaims"]
  13981. verbs: ["get", "update", "delete", "list"]
  13982. ---
  13983. # Source: rook-ceph/templates/role.yaml
  13984. # Allow the operator to manage resources in its own namespace
  13985. apiVersion: rbac.authorization.k8s.io/v1
  13986. kind: Role
  13987. metadata:
  13988. name: rook-ceph-system
  13989. namespace: aleph-ns # namespace:operator
  13990. labels:
  13991. operator: rook
  13992. storage-backend: ceph
  13993. app.kubernetes.io/part-of: rook-ceph-operator
  13994. app.kubernetes.io/managed-by: Helm
  13995. app.kubernetes.io/created-by: helm
  13996. helm.sh/chart: "rook-ceph-v1.12.3"
  13997. rules:
  13998. - apiGroups:
  13999. - ""
  14000. resources:
  14001. - pods
  14002. - configmaps
  14003. - services
  14004. verbs:
  14005. - get
  14006. - list
  14007. - watch
  14008. - patch
  14009. - create
  14010. - update
  14011. - delete
  14012. - apiGroups:
  14013. - apps
  14014. - extensions
  14015. resources:
  14016. - daemonsets
  14017. - statefulsets
  14018. - deployments
  14019. verbs:
  14020. - get
  14021. - list
  14022. - watch
  14023. - create
  14024. - update
  14025. - delete
  14026. - deletecollection
  14027. - apiGroups:
  14028. - batch
  14029. resources:
  14030. - cronjobs
  14031. verbs:
  14032. - delete
  14033. - apiGroups:
  14034. - cert-manager.io
  14035. resources:
  14036. - certificates
  14037. - issuers
  14038. verbs:
  14039. - get
  14040. - create
  14041. - delete
  14042. - apiGroups:
  14043. - multicluster.x-k8s.io
  14044. resources:
  14045. - serviceexports
  14046. verbs:
  14047. - get
  14048. - create
  14049. ---
  14050. # Source: rook-ceph/templates/role.yaml
  14051. kind: Role
  14052. apiVersion: rbac.authorization.k8s.io/v1
  14053. metadata:
  14054. name: cephfs-external-provisioner-cfg
  14055. namespace: aleph-ns # namespace:operator
  14056. rules:
  14057. - apiGroups: ["coordination.k8s.io"]
  14058. resources: ["leases"]
  14059. verbs: ["get", "watch", "list", "delete", "update", "create"]
  14060. ---
  14061. # Source: rook-ceph/templates/role.yaml
  14062. kind: Role
  14063. apiVersion: rbac.authorization.k8s.io/v1
  14064. metadata:
  14065. name: rbd-external-provisioner-cfg
  14066. namespace: aleph-ns # namespace:operator
  14067. rules:
  14068. - apiGroups: ["coordination.k8s.io"]
  14069. resources: ["leases"]
  14070. verbs: ["get", "watch", "list", "delete", "update", "create"]
  14071. ---
  14072. # Source: rook-ceph/templates/cluster-rbac.yaml
  14073. # Allow the operator to create resources in this cluster's namespace
  14074. kind: RoleBinding
  14075. apiVersion: rbac.authorization.k8s.io/v1
  14076. metadata:
  14077. name: rook-ceph-cluster-mgmt
  14078. namespace: aleph-ns # namespace:cluster
  14079. roleRef:
  14080. apiGroup: rbac.authorization.k8s.io
  14081. kind: ClusterRole
  14082. name: rook-ceph-cluster-mgmt
  14083. subjects:
  14084. - kind: ServiceAccount
  14085. name: rook-ceph-system
  14086. namespace: aleph-ns # namespace:operator
  14087. ---
  14088. # Source: rook-ceph/templates/cluster-rbac.yaml
  14089. # Allow the osd pods in this namespace to work with configmaps
  14090. kind: RoleBinding
  14091. apiVersion: rbac.authorization.k8s.io/v1
  14092. metadata:
  14093. name: rook-ceph-osd
  14094. namespace: aleph-ns # namespace:cluster
  14095. roleRef:
  14096. apiGroup: rbac.authorization.k8s.io
  14097. kind: Role
  14098. name: rook-ceph-osd
  14099. subjects:
  14100. - kind: ServiceAccount
  14101. name: rook-ceph-osd
  14102. namespace: aleph-ns # namespace:cluster
  14103. ---
  14104. # Source: rook-ceph/templates/cluster-rbac.yaml
  14105. # Allow the rgw pods in this namespace to work with configmaps
  14106. kind: RoleBinding
  14107. apiVersion: rbac.authorization.k8s.io/v1
  14108. metadata:
  14109. name: rook-ceph-rgw
  14110. namespace: aleph-ns # namespace:cluster
  14111. roleRef:
  14112. apiGroup: rbac.authorization.k8s.io
  14113. kind: Role
  14114. name: rook-ceph-rgw
  14115. subjects:
  14116. - kind: ServiceAccount
  14117. name: rook-ceph-rgw
  14118. namespace: aleph-ns # namespace:cluster
  14119. ---
  14120. # Source: rook-ceph/templates/cluster-rbac.yaml
  14121. # Allow the ceph mgr to access resources scoped to the CephCluster namespace necessary for mgr modules
  14122. kind: RoleBinding
  14123. apiVersion: rbac.authorization.k8s.io/v1
  14124. metadata:
  14125. name: rook-ceph-mgr
  14126. namespace: aleph-ns # namespace:cluster
  14127. roleRef:
  14128. apiGroup: rbac.authorization.k8s.io
  14129. kind: Role
  14130. name: rook-ceph-mgr
  14131. subjects:
  14132. - kind: ServiceAccount
  14133. name: rook-ceph-mgr
  14134. namespace: aleph-ns # namespace:cluster
  14135. ---
  14136. # Source: rook-ceph/templates/cluster-rbac.yaml
  14137. # Allow the ceph mgr to access resources in the Rook operator namespace necessary for mgr modules
  14138. kind: RoleBinding
  14139. apiVersion: rbac.authorization.k8s.io/v1
  14140. metadata:
  14141. name: rook-ceph-mgr-system
  14142. namespace: aleph-ns # namespace:operator
  14143. roleRef:
  14144. apiGroup: rbac.authorization.k8s.io
  14145. kind: ClusterRole
  14146. name: rook-ceph-mgr-system
  14147. subjects:
  14148. - kind: ServiceAccount
  14149. name: rook-ceph-mgr
  14150. namespace: aleph-ns # namespace:cluster
  14151. ---
  14152. # Source: rook-ceph/templates/cluster-rbac.yaml
  14153. kind: RoleBinding
  14154. apiVersion: rbac.authorization.k8s.io/v1
  14155. metadata:
  14156. name: rook-ceph-cmd-reporter
  14157. namespace: aleph-ns # namespace:cluster
  14158. roleRef:
  14159. apiGroup: rbac.authorization.k8s.io
  14160. kind: Role
  14161. name: rook-ceph-cmd-reporter
  14162. subjects:
  14163. - kind: ServiceAccount
  14164. name: rook-ceph-cmd-reporter
  14165. namespace: aleph-ns # namespace:cluster
  14166. ---
  14167. # Source: rook-ceph/templates/cluster-rbac.yaml
  14168. # Allow the osd purge job to run in this namespace
  14169. kind: RoleBinding
  14170. apiVersion: rbac.authorization.k8s.io/v1
  14171. metadata:
  14172. name: rook-ceph-purge-osd
  14173. namespace: aleph-ns # namespace:cluster
  14174. roleRef:
  14175. apiGroup: rbac.authorization.k8s.io
  14176. kind: Role
  14177. name: rook-ceph-purge-osd
  14178. subjects:
  14179. - kind: ServiceAccount
  14180. name: rook-ceph-purge-osd
  14181. namespace: aleph-ns # namespace:cluster
  14182. ---
  14183. # Source: rook-ceph/templates/rolebinding.yaml
  14184. # Grant the operator, agent, and discovery agents access to resources in the rook-ceph-system namespace
  14185. kind: RoleBinding
  14186. apiVersion: rbac.authorization.k8s.io/v1
  14187. metadata:
  14188. name: rook-ceph-system
  14189. namespace: aleph-ns # namespace:operator
  14190. labels:
  14191. operator: rook
  14192. storage-backend: ceph
  14193. app.kubernetes.io/part-of: rook-ceph-operator
  14194. app.kubernetes.io/managed-by: Helm
  14195. app.kubernetes.io/created-by: helm
  14196. helm.sh/chart: "rook-ceph-v1.12.3"
  14197. roleRef:
  14198. apiGroup: rbac.authorization.k8s.io
  14199. kind: Role
  14200. name: rook-ceph-system
  14201. subjects:
  14202. - kind: ServiceAccount
  14203. name: rook-ceph-system
  14204. namespace: aleph-ns # namespace:operator
  14205. ---
  14206. # Source: rook-ceph/templates/rolebinding.yaml
  14207. kind: RoleBinding
  14208. apiVersion: rbac.authorization.k8s.io/v1
  14209. metadata:
  14210. name: cephfs-csi-provisioner-role-cfg
  14211. namespace: aleph-ns # namespace:operator
  14212. subjects:
  14213. - kind: ServiceAccount
  14214. name: rook-csi-cephfs-provisioner-sa
  14215. namespace: aleph-ns # namespace:operator
  14216. roleRef:
  14217. kind: Role
  14218. name: cephfs-external-provisioner-cfg
  14219. apiGroup: rbac.authorization.k8s.io
  14220. ---
  14221. # Source: rook-ceph/templates/rolebinding.yaml
  14222. kind: RoleBinding
  14223. apiVersion: rbac.authorization.k8s.io/v1
  14224. metadata:
  14225. name: rbd-csi-provisioner-role-cfg
  14226. namespace: aleph-ns # namespace:operator
  14227. subjects:
  14228. - kind: ServiceAccount
  14229. name: rook-csi-rbd-provisioner-sa
  14230. namespace: aleph-ns # namespace:operator
  14231. roleRef:
  14232. kind: Role
  14233. name: rbd-external-provisioner-cfg
  14234. apiGroup: rbac.authorization.k8s.io
  14235. ---
  14236. # Source: rook-ceph/templates/deployment.yaml
  14237. apiVersion: apps/v1
  14238. kind: Deployment
  14239. metadata:
  14240. name: rook-ceph-operator
  14241. labels:
  14242. operator: rook
  14243. storage-backend: ceph
  14244. app.kubernetes.io/part-of: rook-ceph-operator
  14245. app.kubernetes.io/managed-by: Helm
  14246. app.kubernetes.io/created-by: helm
  14247. helm.sh/chart: "rook-ceph-v1.12.3"
  14248. spec:
  14249. replicas: 1
  14250. selector:
  14251. matchLabels:
  14252. app: rook-ceph-operator
  14253. strategy:
  14254. type: Recreate
  14255. template:
  14256. metadata:
  14257. labels:
  14258. app: rook-ceph-operator
  14259. helm.sh/chart: "rook-ceph-v1.12.3"
  14260. spec:
  14261. containers:
  14262. - name: rook-ceph-operator
  14263. image: "rook/ceph:v1.12.3"
  14264. imagePullPolicy: IfNotPresent
  14265. args: ["ceph", "operator"]
  14266. securityContext:
  14267. runAsNonRoot: true
  14268. runAsUser: 2016
  14269. runAsGroup: 2016
  14270. volumeMounts:
  14271. - mountPath: /var/lib/rook
  14272. name: rook-config
  14273. - mountPath: /etc/ceph
  14274. name: default-config-dir
  14275. - mountPath: /etc/webhook
  14276. name: webhook-cert
  14277. ports:
  14278. - containerPort: 9443
  14279. name: https-webhook
  14280. protocol: TCP
  14281. env:
  14282. - name: ROOK_CURRENT_NAMESPACE_ONLY
  14283. value: "false"
  14284. - name: ROOK_HOSTPATH_REQUIRES_PRIVILEGED
  14285. value: "false"
  14286. - name: ROOK_DISABLE_DEVICE_HOTPLUG
  14287. value: "false"
  14288. - name: DISCOVER_DAEMON_UDEV_BLACKLIST
  14289. value: ""
  14290. - name: ROOK_ENABLE_DISCOVERY_DAEMON
  14291. value: "false"
  14292. - name: NODE_NAME
  14293. valueFrom:
  14294. fieldRef:
  14295. fieldPath: spec.nodeName
  14296. - name: POD_NAME
  14297. valueFrom:
  14298. fieldRef:
  14299. fieldPath: metadata.name
  14300. - name: POD_NAMESPACE
  14301. valueFrom:
  14302. fieldRef:
  14303. fieldPath: metadata.namespace
  14304. resources:
  14305. limits:
  14306. cpu: 500m
  14307. memory: 512Mi
  14308. requests:
  14309. cpu: 100m
  14310. memory: 128Mi
  14311. serviceAccountName: rook-ceph-system
  14312. volumes:
  14313. - name: rook-config
  14314. emptyDir: {}
  14315. - name: default-config-dir
  14316. emptyDir: {}
  14317. - name: webhook-cert
  14318. emptyDir: {}
  14319. ---
  14320. # Source: rook-ceph/templates/securityContextConstraints.yaml
  14321. # scc for the Rook and Ceph daemons
  14322. # for creating cluster in openshift