cnpg-1.28.0.yaml 1.1 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527
  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. labels:
  5. app.kubernetes.io/name: cloudnative-pg
  6. name: cnpg-system
  7. ---
  8. apiVersion: apiextensions.k8s.io/v1
  9. kind: CustomResourceDefinition
  10. metadata:
  11. annotations:
  12. controller-gen.kubebuilder.io/version: v0.19.0
  13. name: backups.postgresql.cnpg.io
  14. spec:
  15. group: postgresql.cnpg.io
  16. names:
  17. kind: Backup
  18. listKind: BackupList
  19. plural: backups
  20. singular: backup
  21. scope: Namespaced
  22. versions:
  23. - additionalPrinterColumns:
  24. - jsonPath: .metadata.creationTimestamp
  25. name: Age
  26. type: date
  27. - jsonPath: .spec.cluster.name
  28. name: Cluster
  29. type: string
  30. - jsonPath: .spec.method
  31. name: Method
  32. type: string
  33. - jsonPath: .status.phase
  34. name: Phase
  35. type: string
  36. - jsonPath: .status.error
  37. name: Error
  38. type: string
  39. name: v1
  40. schema:
  41. openAPIV3Schema:
  42. description: A Backup resource is a request for a PostgreSQL backup by the
  43. user.
  44. properties:
  45. apiVersion:
  46. description: |-
  47. APIVersion defines the versioned schema of this representation of an object.
  48. Servers should convert recognized schemas to the latest internal value, and
  49. may reject unrecognized values.
  50. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  51. type: string
  52. kind:
  53. description: |-
  54. Kind is a string value representing the REST resource this object represents.
  55. Servers may infer this from the endpoint the client submits requests to.
  56. Cannot be updated.
  57. In CamelCase.
  58. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  59. type: string
  60. metadata:
  61. type: object
  62. spec:
  63. description: |-
  64. Specification of the desired behavior of the backup.
  65. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  66. properties:
  67. cluster:
  68. description: The cluster to backup
  69. properties:
  70. name:
  71. description: Name of the referent.
  72. type: string
  73. required:
  74. - name
  75. type: object
  76. method:
  77. default: barmanObjectStore
  78. description: |-
  79. The backup method to be used, possible options are `barmanObjectStore`,
  80. `volumeSnapshot` or `plugin`. Defaults to: `barmanObjectStore`.
  81. enum:
  82. - barmanObjectStore
  83. - volumeSnapshot
  84. - plugin
  85. type: string
  86. online:
  87. description: |-
  88. Whether the default type of backup with volume snapshots is
  89. online/hot (`true`, default) or offline/cold (`false`)
  90. Overrides the default setting specified in the cluster field '.spec.backup.volumeSnapshot.online'
  91. type: boolean
  92. onlineConfiguration:
  93. description: |-
  94. Configuration parameters to control the online/hot backup with volume snapshots
  95. Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza
  96. properties:
  97. immediateCheckpoint:
  98. description: |-
  99. Control whether the I/O workload for the backup initial checkpoint will
  100. be limited, according to the `checkpoint_completion_target` setting on
  101. the PostgreSQL server. If set to true, an immediate checkpoint will be
  102. used, meaning PostgreSQL will complete the checkpoint as soon as
  103. possible. `false` by default.
  104. type: boolean
  105. waitForArchive:
  106. default: true
  107. description: |-
  108. If false, the function will return immediately after the backup is completed,
  109. without waiting for WAL to be archived.
  110. This behavior is only useful with backup software that independently monitors WAL archiving.
  111. Otherwise, WAL required to make the backup consistent might be missing and make the backup useless.
  112. By default, or when this parameter is true, pg_backup_stop will wait for WAL to be archived when archiving is
  113. enabled.
  114. On a standby, this means that it will wait only when archive_mode = always.
  115. If write activity on the primary is low, it may be useful to run pg_switch_wal on the primary in order to trigger
  116. an immediate segment switch.
  117. type: boolean
  118. type: object
  119. pluginConfiguration:
  120. description: Configuration parameters passed to the plugin managing
  121. this backup
  122. properties:
  123. name:
  124. description: Name is the name of the plugin managing this backup
  125. type: string
  126. parameters:
  127. additionalProperties:
  128. type: string
  129. description: |-
  130. Parameters are the configuration parameters passed to the backup
  131. plugin for this backup
  132. type: object
  133. required:
  134. - name
  135. type: object
  136. target:
  137. description: |-
  138. The policy to decide which instance should perform this backup. If empty,
  139. it defaults to `cluster.spec.backup.target`.
  140. Available options are empty string, `primary` and `prefer-standby`.
  141. `primary` to have backups run always on primary instances,
  142. `prefer-standby` to have backups run preferably on the most updated
  143. standby, if available.
  144. enum:
  145. - primary
  146. - prefer-standby
  147. type: string
  148. required:
  149. - cluster
  150. type: object
  151. x-kubernetes-validations:
  152. - message: BackupSpec is immutable once set
  153. rule: oldSelf == self
  154. status:
  155. description: |-
  156. Most recently observed status of the backup. This data may not be up to
  157. date. Populated by the system. Read-only.
  158. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  159. properties:
  160. azureCredentials:
  161. description: The credentials to use to upload data to Azure Blob Storage
  162. properties:
  163. connectionString:
  164. description: The connection string to be used
  165. properties:
  166. key:
  167. description: The key to select
  168. type: string
  169. name:
  170. description: Name of the referent.
  171. type: string
  172. required:
  173. - key
  174. - name
  175. type: object
  176. inheritFromAzureAD:
  177. description: Use the Azure AD based authentication without providing
  178. explicitly the keys.
  179. type: boolean
  180. storageAccount:
  181. description: The storage account where to upload data
  182. properties:
  183. key:
  184. description: The key to select
  185. type: string
  186. name:
  187. description: Name of the referent.
  188. type: string
  189. required:
  190. - key
  191. - name
  192. type: object
  193. storageKey:
  194. description: |-
  195. The storage account key to be used in conjunction
  196. with the storage account name
  197. properties:
  198. key:
  199. description: The key to select
  200. type: string
  201. name:
  202. description: Name of the referent.
  203. type: string
  204. required:
  205. - key
  206. - name
  207. type: object
  208. storageSasToken:
  209. description: |-
  210. A shared-access-signature to be used in conjunction with
  211. the storage account name
  212. properties:
  213. key:
  214. description: The key to select
  215. type: string
  216. name:
  217. description: Name of the referent.
  218. type: string
  219. required:
  220. - key
  221. - name
  222. type: object
  223. type: object
  224. backupId:
  225. description: The ID of the Barman backup
  226. type: string
  227. backupLabelFile:
  228. description: Backup label file content as returned by Postgres in
  229. case of online (hot) backups
  230. format: byte
  231. type: string
  232. backupName:
  233. description: The Name of the Barman backup
  234. type: string
  235. beginLSN:
  236. description: The starting xlog
  237. type: string
  238. beginWal:
  239. description: The starting WAL
  240. type: string
  241. commandError:
  242. description: The backup command output in case of error
  243. type: string
  244. commandOutput:
  245. description: Unused. Retained for compatibility with old versions.
  246. type: string
  247. destinationPath:
  248. description: |-
  249. The path where to store the backup (i.e. s3://bucket/path/to/folder)
  250. this path, with different destination folders, will be used for WALs
  251. and for data. This may not be populated in case of errors.
  252. type: string
  253. encryption:
  254. description: Encryption method required to S3 API
  255. type: string
  256. endLSN:
  257. description: The ending xlog
  258. type: string
  259. endWal:
  260. description: The ending WAL
  261. type: string
  262. endpointCA:
  263. description: |-
  264. EndpointCA store the CA bundle of the barman endpoint.
  265. Useful when using self-signed certificates to avoid
  266. errors with certificate issuer and barman-cloud-wal-archive.
  267. properties:
  268. key:
  269. description: The key to select
  270. type: string
  271. name:
  272. description: Name of the referent.
  273. type: string
  274. required:
  275. - key
  276. - name
  277. type: object
  278. endpointURL:
  279. description: |-
  280. Endpoint to be used to upload data to the cloud,
  281. overriding the automatic endpoint discovery
  282. type: string
  283. error:
  284. description: The detected error
  285. type: string
  286. googleCredentials:
  287. description: The credentials to use to upload data to Google Cloud
  288. Storage
  289. properties:
  290. applicationCredentials:
  291. description: The secret containing the Google Cloud Storage JSON
  292. file with the credentials
  293. properties:
  294. key:
  295. description: The key to select
  296. type: string
  297. name:
  298. description: Name of the referent.
  299. type: string
  300. required:
  301. - key
  302. - name
  303. type: object
  304. gkeEnvironment:
  305. description: |-
  306. If set to true, will presume that it's running inside a GKE environment,
  307. default to false.
  308. type: boolean
  309. type: object
  310. instanceID:
  311. description: Information to identify the instance where the backup
  312. has been taken from
  313. properties:
  314. ContainerID:
  315. description: The container ID
  316. type: string
  317. podName:
  318. description: The pod name
  319. type: string
  320. type: object
  321. majorVersion:
  322. description: |-
  323. The PostgreSQL major version that was running when the
  324. backup was taken.
  325. type: integer
  326. method:
  327. description: The backup method being used
  328. type: string
  329. online:
  330. description: Whether the backup was online/hot (`true`) or offline/cold
  331. (`false`)
  332. type: boolean
  333. phase:
  334. description: The last backup status
  335. type: string
  336. pluginMetadata:
  337. additionalProperties:
  338. type: string
  339. description: A map containing the plugin metadata
  340. type: object
  341. s3Credentials:
  342. description: The credentials to use to upload data to S3
  343. properties:
  344. accessKeyId:
  345. description: The reference to the access key id
  346. properties:
  347. key:
  348. description: The key to select
  349. type: string
  350. name:
  351. description: Name of the referent.
  352. type: string
  353. required:
  354. - key
  355. - name
  356. type: object
  357. inheritFromIAMRole:
  358. description: Use the role based authentication without providing
  359. explicitly the keys.
  360. type: boolean
  361. region:
  362. description: The reference to the secret containing the region
  363. name
  364. properties:
  365. key:
  366. description: The key to select
  367. type: string
  368. name:
  369. description: Name of the referent.
  370. type: string
  371. required:
  372. - key
  373. - name
  374. type: object
  375. secretAccessKey:
  376. description: The reference to the secret access key
  377. properties:
  378. key:
  379. description: The key to select
  380. type: string
  381. name:
  382. description: Name of the referent.
  383. type: string
  384. required:
  385. - key
  386. - name
  387. type: object
  388. sessionToken:
  389. description: The references to the session key
  390. properties:
  391. key:
  392. description: The key to select
  393. type: string
  394. name:
  395. description: Name of the referent.
  396. type: string
  397. required:
  398. - key
  399. - name
  400. type: object
  401. type: object
  402. serverName:
  403. description: |-
  404. The server name on S3, the cluster name is used if this
  405. parameter is omitted
  406. type: string
  407. snapshotBackupStatus:
  408. description: Status of the volumeSnapshot backup
  409. properties:
  410. elements:
  411. description: The elements list, populated with the gathered volume
  412. snapshots
  413. items:
  414. description: BackupSnapshotElementStatus is a volume snapshot
  415. that is part of a volume snapshot method backup
  416. properties:
  417. name:
  418. description: Name is the snapshot resource name
  419. type: string
  420. tablespaceName:
  421. description: |-
  422. TablespaceName is the name of the snapshotted tablespace. Only set
  423. when type is PG_TABLESPACE
  424. type: string
  425. type:
  426. description: Type is tho role of the snapshot in the cluster,
  427. such as PG_DATA, PG_WAL and PG_TABLESPACE
  428. type: string
  429. required:
  430. - name
  431. - type
  432. type: object
  433. type: array
  434. type: object
  435. startedAt:
  436. description: When the backup was started
  437. format: date-time
  438. type: string
  439. stoppedAt:
  440. description: When the backup was terminated
  441. format: date-time
  442. type: string
  443. tablespaceMapFile:
  444. description: Tablespace map file content as returned by Postgres in
  445. case of online (hot) backups
  446. format: byte
  447. type: string
  448. type: object
  449. required:
  450. - metadata
  451. - spec
  452. type: object
  453. served: true
  454. storage: true
  455. subresources:
  456. status: {}
  457. ---
  458. apiVersion: apiextensions.k8s.io/v1
  459. kind: CustomResourceDefinition
  460. metadata:
  461. annotations:
  462. controller-gen.kubebuilder.io/version: v0.19.0
  463. name: clusterimagecatalogs.postgresql.cnpg.io
  464. spec:
  465. group: postgresql.cnpg.io
  466. names:
  467. kind: ClusterImageCatalog
  468. listKind: ClusterImageCatalogList
  469. plural: clusterimagecatalogs
  470. singular: clusterimagecatalog
  471. scope: Cluster
  472. versions:
  473. - additionalPrinterColumns:
  474. - jsonPath: .metadata.creationTimestamp
  475. name: Age
  476. type: date
  477. name: v1
  478. schema:
  479. openAPIV3Schema:
  480. description: ClusterImageCatalog is the Schema for the clusterimagecatalogs
  481. API
  482. properties:
  483. apiVersion:
  484. description: |-
  485. APIVersion defines the versioned schema of this representation of an object.
  486. Servers should convert recognized schemas to the latest internal value, and
  487. may reject unrecognized values.
  488. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  489. type: string
  490. kind:
  491. description: |-
  492. Kind is a string value representing the REST resource this object represents.
  493. Servers may infer this from the endpoint the client submits requests to.
  494. Cannot be updated.
  495. In CamelCase.
  496. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  497. type: string
  498. metadata:
  499. type: object
  500. spec:
  501. description: |-
  502. Specification of the desired behavior of the ClusterImageCatalog.
  503. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  504. properties:
  505. images:
  506. description: List of CatalogImages available in the catalog
  507. items:
  508. description: CatalogImage defines the image and major version
  509. properties:
  510. image:
  511. description: The image reference
  512. type: string
  513. major:
  514. description: The PostgreSQL major version of the image. Must
  515. be unique within the catalog.
  516. minimum: 10
  517. type: integer
  518. required:
  519. - image
  520. - major
  521. type: object
  522. maxItems: 8
  523. minItems: 1
  524. type: array
  525. x-kubernetes-validations:
  526. - message: Images must have unique major versions
  527. rule: self.all(e, self.filter(f, f.major==e.major).size() == 1)
  528. required:
  529. - images
  530. type: object
  531. required:
  532. - metadata
  533. - spec
  534. type: object
  535. served: true
  536. storage: true
  537. subresources: {}
  538. ---
  539. apiVersion: apiextensions.k8s.io/v1
  540. kind: CustomResourceDefinition
  541. metadata:
  542. annotations:
  543. controller-gen.kubebuilder.io/version: v0.19.0
  544. name: clusters.postgresql.cnpg.io
  545. spec:
  546. group: postgresql.cnpg.io
  547. names:
  548. kind: Cluster
  549. listKind: ClusterList
  550. plural: clusters
  551. singular: cluster
  552. scope: Namespaced
  553. versions:
  554. - additionalPrinterColumns:
  555. - jsonPath: .metadata.creationTimestamp
  556. name: Age
  557. type: date
  558. - description: Number of instances
  559. jsonPath: .status.instances
  560. name: Instances
  561. type: integer
  562. - description: Number of ready instances
  563. jsonPath: .status.readyInstances
  564. name: Ready
  565. type: integer
  566. - description: Cluster current status
  567. jsonPath: .status.phase
  568. name: Status
  569. type: string
  570. - description: Primary pod
  571. jsonPath: .status.currentPrimary
  572. name: Primary
  573. type: string
  574. name: v1
  575. schema:
  576. openAPIV3Schema:
  577. description: |-
  578. Cluster defines the API schema for a highly available PostgreSQL database cluster
  579. managed by CloudNativePG.
  580. properties:
  581. apiVersion:
  582. description: |-
  583. APIVersion defines the versioned schema of this representation of an object.
  584. Servers should convert recognized schemas to the latest internal value, and
  585. may reject unrecognized values.
  586. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  587. type: string
  588. kind:
  589. description: |-
  590. Kind is a string value representing the REST resource this object represents.
  591. Servers may infer this from the endpoint the client submits requests to.
  592. Cannot be updated.
  593. In CamelCase.
  594. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  595. type: string
  596. metadata:
  597. type: object
  598. spec:
  599. description: |-
  600. Specification of the desired behavior of the cluster.
  601. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  602. properties:
  603. affinity:
  604. description: Affinity/Anti-affinity rules for Pods
  605. properties:
  606. additionalPodAffinity:
  607. description: AdditionalPodAffinity allows to specify pod affinity
  608. terms to be passed to all the cluster's pods.
  609. properties:
  610. preferredDuringSchedulingIgnoredDuringExecution:
  611. description: |-
  612. The scheduler will prefer to schedule pods to nodes that satisfy
  613. the affinity expressions specified by this field, but it may choose
  614. a node that violates one or more of the expressions. The node that is
  615. most preferred is the one with the greatest sum of weights, i.e.
  616. for each node that meets all of the scheduling requirements (resource
  617. request, requiredDuringScheduling affinity expressions, etc.),
  618. compute a sum by iterating through the elements of this field and adding
  619. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  620. node(s) with the highest sum are the most preferred.
  621. items:
  622. description: The weights of all of the matched WeightedPodAffinityTerm
  623. fields are added per-node to find the most preferred node(s)
  624. properties:
  625. podAffinityTerm:
  626. description: Required. A pod affinity term, associated
  627. with the corresponding weight.
  628. properties:
  629. labelSelector:
  630. description: |-
  631. A label query over a set of resources, in this case pods.
  632. If it's null, this PodAffinityTerm matches with no Pods.
  633. properties:
  634. matchExpressions:
  635. description: matchExpressions is a list of label
  636. selector requirements. The requirements are
  637. ANDed.
  638. items:
  639. description: |-
  640. A label selector requirement is a selector that contains values, a key, and an operator that
  641. relates the key and values.
  642. properties:
  643. key:
  644. description: key is the label key that
  645. the selector applies to.
  646. type: string
  647. operator:
  648. description: |-
  649. operator represents a key's relationship to a set of values.
  650. Valid operators are In, NotIn, Exists and DoesNotExist.
  651. type: string
  652. values:
  653. description: |-
  654. values is an array of string values. If the operator is In or NotIn,
  655. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  656. the values array must be empty. This array is replaced during a strategic
  657. merge patch.
  658. items:
  659. type: string
  660. type: array
  661. x-kubernetes-list-type: atomic
  662. required:
  663. - key
  664. - operator
  665. type: object
  666. type: array
  667. x-kubernetes-list-type: atomic
  668. matchLabels:
  669. additionalProperties:
  670. type: string
  671. description: |-
  672. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  673. map is equivalent to an element of matchExpressions, whose key field is "key", the
  674. operator is "In", and the values array contains only "value". The requirements are ANDed.
  675. type: object
  676. type: object
  677. x-kubernetes-map-type: atomic
  678. matchLabelKeys:
  679. description: |-
  680. MatchLabelKeys is a set of pod label keys to select which pods will
  681. be taken into consideration. The keys are used to lookup values from the
  682. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  683. to select the group of existing pods which pods will be taken into consideration
  684. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  685. pod labels will be ignored. The default value is empty.
  686. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  687. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  688. items:
  689. type: string
  690. type: array
  691. x-kubernetes-list-type: atomic
  692. mismatchLabelKeys:
  693. description: |-
  694. MismatchLabelKeys is a set of pod label keys to select which pods will
  695. be taken into consideration. The keys are used to lookup values from the
  696. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  697. to select the group of existing pods which pods will be taken into consideration
  698. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  699. pod labels will be ignored. The default value is empty.
  700. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  701. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  702. items:
  703. type: string
  704. type: array
  705. x-kubernetes-list-type: atomic
  706. namespaceSelector:
  707. description: |-
  708. A label query over the set of namespaces that the term applies to.
  709. The term is applied to the union of the namespaces selected by this field
  710. and the ones listed in the namespaces field.
  711. null selector and null or empty namespaces list means "this pod's namespace".
  712. An empty selector ({}) matches all namespaces.
  713. properties:
  714. matchExpressions:
  715. description: matchExpressions is a list of label
  716. selector requirements. The requirements are
  717. ANDed.
  718. items:
  719. description: |-
  720. A label selector requirement is a selector that contains values, a key, and an operator that
  721. relates the key and values.
  722. properties:
  723. key:
  724. description: key is the label key that
  725. the selector applies to.
  726. type: string
  727. operator:
  728. description: |-
  729. operator represents a key's relationship to a set of values.
  730. Valid operators are In, NotIn, Exists and DoesNotExist.
  731. type: string
  732. values:
  733. description: |-
  734. values is an array of string values. If the operator is In or NotIn,
  735. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  736. the values array must be empty. This array is replaced during a strategic
  737. merge patch.
  738. items:
  739. type: string
  740. type: array
  741. x-kubernetes-list-type: atomic
  742. required:
  743. - key
  744. - operator
  745. type: object
  746. type: array
  747. x-kubernetes-list-type: atomic
  748. matchLabels:
  749. additionalProperties:
  750. type: string
  751. description: |-
  752. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  753. map is equivalent to an element of matchExpressions, whose key field is "key", the
  754. operator is "In", and the values array contains only "value". The requirements are ANDed.
  755. type: object
  756. type: object
  757. x-kubernetes-map-type: atomic
  758. namespaces:
  759. description: |-
  760. namespaces specifies a static list of namespace names that the term applies to.
  761. The term is applied to the union of the namespaces listed in this field
  762. and the ones selected by namespaceSelector.
  763. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  764. items:
  765. type: string
  766. type: array
  767. x-kubernetes-list-type: atomic
  768. topologyKey:
  769. description: |-
  770. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  771. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  772. whose value of the label with key topologyKey matches that of any node on which any of the
  773. selected pods is running.
  774. Empty topologyKey is not allowed.
  775. type: string
  776. required:
  777. - topologyKey
  778. type: object
  779. weight:
  780. description: |-
  781. weight associated with matching the corresponding podAffinityTerm,
  782. in the range 1-100.
  783. format: int32
  784. type: integer
  785. required:
  786. - podAffinityTerm
  787. - weight
  788. type: object
  789. type: array
  790. x-kubernetes-list-type: atomic
  791. requiredDuringSchedulingIgnoredDuringExecution:
  792. description: |-
  793. If the affinity requirements specified by this field are not met at
  794. scheduling time, the pod will not be scheduled onto the node.
  795. If the affinity requirements specified by this field cease to be met
  796. at some point during pod execution (e.g. due to a pod label update), the
  797. system may or may not try to eventually evict the pod from its node.
  798. When there are multiple elements, the lists of nodes corresponding to each
  799. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  800. items:
  801. description: |-
  802. Defines a set of pods (namely those matching the labelSelector
  803. relative to the given namespace(s)) that this pod should be
  804. co-located (affinity) or not co-located (anti-affinity) with,
  805. where co-located is defined as running on a node whose value of
  806. the label with key <topologyKey> matches that of any node on which
  807. a pod of the set of pods is running
  808. properties:
  809. labelSelector:
  810. description: |-
  811. A label query over a set of resources, in this case pods.
  812. If it's null, this PodAffinityTerm matches with no Pods.
  813. properties:
  814. matchExpressions:
  815. description: matchExpressions is a list of label
  816. selector requirements. The requirements are ANDed.
  817. items:
  818. description: |-
  819. A label selector requirement is a selector that contains values, a key, and an operator that
  820. relates the key and values.
  821. properties:
  822. key:
  823. description: key is the label key that the
  824. selector applies to.
  825. type: string
  826. operator:
  827. description: |-
  828. operator represents a key's relationship to a set of values.
  829. Valid operators are In, NotIn, Exists and DoesNotExist.
  830. type: string
  831. values:
  832. description: |-
  833. values is an array of string values. If the operator is In or NotIn,
  834. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  835. the values array must be empty. This array is replaced during a strategic
  836. merge patch.
  837. items:
  838. type: string
  839. type: array
  840. x-kubernetes-list-type: atomic
  841. required:
  842. - key
  843. - operator
  844. type: object
  845. type: array
  846. x-kubernetes-list-type: atomic
  847. matchLabels:
  848. additionalProperties:
  849. type: string
  850. description: |-
  851. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  852. map is equivalent to an element of matchExpressions, whose key field is "key", the
  853. operator is "In", and the values array contains only "value". The requirements are ANDed.
  854. type: object
  855. type: object
  856. x-kubernetes-map-type: atomic
  857. matchLabelKeys:
  858. description: |-
  859. MatchLabelKeys is a set of pod label keys to select which pods will
  860. be taken into consideration. The keys are used to lookup values from the
  861. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  862. to select the group of existing pods which pods will be taken into consideration
  863. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  864. pod labels will be ignored. The default value is empty.
  865. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  866. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  867. items:
  868. type: string
  869. type: array
  870. x-kubernetes-list-type: atomic
  871. mismatchLabelKeys:
  872. description: |-
  873. MismatchLabelKeys is a set of pod label keys to select which pods will
  874. be taken into consideration. The keys are used to lookup values from the
  875. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  876. to select the group of existing pods which pods will be taken into consideration
  877. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  878. pod labels will be ignored. The default value is empty.
  879. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  880. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  881. items:
  882. type: string
  883. type: array
  884. x-kubernetes-list-type: atomic
  885. namespaceSelector:
  886. description: |-
  887. A label query over the set of namespaces that the term applies to.
  888. The term is applied to the union of the namespaces selected by this field
  889. and the ones listed in the namespaces field.
  890. null selector and null or empty namespaces list means "this pod's namespace".
  891. An empty selector ({}) matches all namespaces.
  892. properties:
  893. matchExpressions:
  894. description: matchExpressions is a list of label
  895. selector requirements. The requirements are ANDed.
  896. items:
  897. description: |-
  898. A label selector requirement is a selector that contains values, a key, and an operator that
  899. relates the key and values.
  900. properties:
  901. key:
  902. description: key is the label key that the
  903. selector applies to.
  904. type: string
  905. operator:
  906. description: |-
  907. operator represents a key's relationship to a set of values.
  908. Valid operators are In, NotIn, Exists and DoesNotExist.
  909. type: string
  910. values:
  911. description: |-
  912. values is an array of string values. If the operator is In or NotIn,
  913. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  914. the values array must be empty. This array is replaced during a strategic
  915. merge patch.
  916. items:
  917. type: string
  918. type: array
  919. x-kubernetes-list-type: atomic
  920. required:
  921. - key
  922. - operator
  923. type: object
  924. type: array
  925. x-kubernetes-list-type: atomic
  926. matchLabels:
  927. additionalProperties:
  928. type: string
  929. description: |-
  930. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  931. map is equivalent to an element of matchExpressions, whose key field is "key", the
  932. operator is "In", and the values array contains only "value". The requirements are ANDed.
  933. type: object
  934. type: object
  935. x-kubernetes-map-type: atomic
  936. namespaces:
  937. description: |-
  938. namespaces specifies a static list of namespace names that the term applies to.
  939. The term is applied to the union of the namespaces listed in this field
  940. and the ones selected by namespaceSelector.
  941. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  942. items:
  943. type: string
  944. type: array
  945. x-kubernetes-list-type: atomic
  946. topologyKey:
  947. description: |-
  948. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  949. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  950. whose value of the label with key topologyKey matches that of any node on which any of the
  951. selected pods is running.
  952. Empty topologyKey is not allowed.
  953. type: string
  954. required:
  955. - topologyKey
  956. type: object
  957. type: array
  958. x-kubernetes-list-type: atomic
  959. type: object
  960. additionalPodAntiAffinity:
  961. description: |-
  962. AdditionalPodAntiAffinity allows to specify pod anti-affinity terms to be added to the ones generated
  963. by the operator if EnablePodAntiAffinity is set to true (default) or to be used exclusively if set to false.
  964. properties:
  965. preferredDuringSchedulingIgnoredDuringExecution:
  966. description: |-
  967. The scheduler will prefer to schedule pods to nodes that satisfy
  968. the anti-affinity expressions specified by this field, but it may choose
  969. a node that violates one or more of the expressions. The node that is
  970. most preferred is the one with the greatest sum of weights, i.e.
  971. for each node that meets all of the scheduling requirements (resource
  972. request, requiredDuringScheduling anti-affinity expressions, etc.),
  973. compute a sum by iterating through the elements of this field and subtracting
  974. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  975. node(s) with the highest sum are the most preferred.
  976. items:
  977. description: The weights of all of the matched WeightedPodAffinityTerm
  978. fields are added per-node to find the most preferred node(s)
  979. properties:
  980. podAffinityTerm:
  981. description: Required. A pod affinity term, associated
  982. with the corresponding weight.
  983. properties:
  984. labelSelector:
  985. description: |-
  986. A label query over a set of resources, in this case pods.
  987. If it's null, this PodAffinityTerm matches with no Pods.
  988. properties:
  989. matchExpressions:
  990. description: matchExpressions is a list of label
  991. selector requirements. The requirements are
  992. ANDed.
  993. items:
  994. description: |-
  995. A label selector requirement is a selector that contains values, a key, and an operator that
  996. relates the key and values.
  997. properties:
  998. key:
  999. description: key is the label key that
  1000. the selector applies to.
  1001. type: string
  1002. operator:
  1003. description: |-
  1004. operator represents a key's relationship to a set of values.
  1005. Valid operators are In, NotIn, Exists and DoesNotExist.
  1006. type: string
  1007. values:
  1008. description: |-
  1009. values is an array of string values. If the operator is In or NotIn,
  1010. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1011. the values array must be empty. This array is replaced during a strategic
  1012. merge patch.
  1013. items:
  1014. type: string
  1015. type: array
  1016. x-kubernetes-list-type: atomic
  1017. required:
  1018. - key
  1019. - operator
  1020. type: object
  1021. type: array
  1022. x-kubernetes-list-type: atomic
  1023. matchLabels:
  1024. additionalProperties:
  1025. type: string
  1026. description: |-
  1027. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1028. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1029. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1030. type: object
  1031. type: object
  1032. x-kubernetes-map-type: atomic
  1033. matchLabelKeys:
  1034. description: |-
  1035. MatchLabelKeys is a set of pod label keys to select which pods will
  1036. be taken into consideration. The keys are used to lookup values from the
  1037. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  1038. to select the group of existing pods which pods will be taken into consideration
  1039. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  1040. pod labels will be ignored. The default value is empty.
  1041. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  1042. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  1043. items:
  1044. type: string
  1045. type: array
  1046. x-kubernetes-list-type: atomic
  1047. mismatchLabelKeys:
  1048. description: |-
  1049. MismatchLabelKeys is a set of pod label keys to select which pods will
  1050. be taken into consideration. The keys are used to lookup values from the
  1051. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  1052. to select the group of existing pods which pods will be taken into consideration
  1053. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  1054. pod labels will be ignored. The default value is empty.
  1055. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  1056. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  1057. items:
  1058. type: string
  1059. type: array
  1060. x-kubernetes-list-type: atomic
  1061. namespaceSelector:
  1062. description: |-
  1063. A label query over the set of namespaces that the term applies to.
  1064. The term is applied to the union of the namespaces selected by this field
  1065. and the ones listed in the namespaces field.
  1066. null selector and null or empty namespaces list means "this pod's namespace".
  1067. An empty selector ({}) matches all namespaces.
  1068. properties:
  1069. matchExpressions:
  1070. description: matchExpressions is a list of label
  1071. selector requirements. The requirements are
  1072. ANDed.
  1073. items:
  1074. description: |-
  1075. A label selector requirement is a selector that contains values, a key, and an operator that
  1076. relates the key and values.
  1077. properties:
  1078. key:
  1079. description: key is the label key that
  1080. the selector applies to.
  1081. type: string
  1082. operator:
  1083. description: |-
  1084. operator represents a key's relationship to a set of values.
  1085. Valid operators are In, NotIn, Exists and DoesNotExist.
  1086. type: string
  1087. values:
  1088. description: |-
  1089. values is an array of string values. If the operator is In or NotIn,
  1090. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1091. the values array must be empty. This array is replaced during a strategic
  1092. merge patch.
  1093. items:
  1094. type: string
  1095. type: array
  1096. x-kubernetes-list-type: atomic
  1097. required:
  1098. - key
  1099. - operator
  1100. type: object
  1101. type: array
  1102. x-kubernetes-list-type: atomic
  1103. matchLabels:
  1104. additionalProperties:
  1105. type: string
  1106. description: |-
  1107. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1108. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1109. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1110. type: object
  1111. type: object
  1112. x-kubernetes-map-type: atomic
  1113. namespaces:
  1114. description: |-
  1115. namespaces specifies a static list of namespace names that the term applies to.
  1116. The term is applied to the union of the namespaces listed in this field
  1117. and the ones selected by namespaceSelector.
  1118. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  1119. items:
  1120. type: string
  1121. type: array
  1122. x-kubernetes-list-type: atomic
  1123. topologyKey:
  1124. description: |-
  1125. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  1126. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  1127. whose value of the label with key topologyKey matches that of any node on which any of the
  1128. selected pods is running.
  1129. Empty topologyKey is not allowed.
  1130. type: string
  1131. required:
  1132. - topologyKey
  1133. type: object
  1134. weight:
  1135. description: |-
  1136. weight associated with matching the corresponding podAffinityTerm,
  1137. in the range 1-100.
  1138. format: int32
  1139. type: integer
  1140. required:
  1141. - podAffinityTerm
  1142. - weight
  1143. type: object
  1144. type: array
  1145. x-kubernetes-list-type: atomic
  1146. requiredDuringSchedulingIgnoredDuringExecution:
  1147. description: |-
  1148. If the anti-affinity requirements specified by this field are not met at
  1149. scheduling time, the pod will not be scheduled onto the node.
  1150. If the anti-affinity requirements specified by this field cease to be met
  1151. at some point during pod execution (e.g. due to a pod label update), the
  1152. system may or may not try to eventually evict the pod from its node.
  1153. When there are multiple elements, the lists of nodes corresponding to each
  1154. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  1155. items:
  1156. description: |-
  1157. Defines a set of pods (namely those matching the labelSelector
  1158. relative to the given namespace(s)) that this pod should be
  1159. co-located (affinity) or not co-located (anti-affinity) with,
  1160. where co-located is defined as running on a node whose value of
  1161. the label with key <topologyKey> matches that of any node on which
  1162. a pod of the set of pods is running
  1163. properties:
  1164. labelSelector:
  1165. description: |-
  1166. A label query over a set of resources, in this case pods.
  1167. If it's null, this PodAffinityTerm matches with no Pods.
  1168. properties:
  1169. matchExpressions:
  1170. description: matchExpressions is a list of label
  1171. selector requirements. The requirements are ANDed.
  1172. items:
  1173. description: |-
  1174. A label selector requirement is a selector that contains values, a key, and an operator that
  1175. relates the key and values.
  1176. properties:
  1177. key:
  1178. description: key is the label key that the
  1179. selector applies to.
  1180. type: string
  1181. operator:
  1182. description: |-
  1183. operator represents a key's relationship to a set of values.
  1184. Valid operators are In, NotIn, Exists and DoesNotExist.
  1185. type: string
  1186. values:
  1187. description: |-
  1188. values is an array of string values. If the operator is In or NotIn,
  1189. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1190. the values array must be empty. This array is replaced during a strategic
  1191. merge patch.
  1192. items:
  1193. type: string
  1194. type: array
  1195. x-kubernetes-list-type: atomic
  1196. required:
  1197. - key
  1198. - operator
  1199. type: object
  1200. type: array
  1201. x-kubernetes-list-type: atomic
  1202. matchLabels:
  1203. additionalProperties:
  1204. type: string
  1205. description: |-
  1206. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1207. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1208. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1209. type: object
  1210. type: object
  1211. x-kubernetes-map-type: atomic
  1212. matchLabelKeys:
  1213. description: |-
  1214. MatchLabelKeys is a set of pod label keys to select which pods will
  1215. be taken into consideration. The keys are used to lookup values from the
  1216. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  1217. to select the group of existing pods which pods will be taken into consideration
  1218. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  1219. pod labels will be ignored. The default value is empty.
  1220. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  1221. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  1222. items:
  1223. type: string
  1224. type: array
  1225. x-kubernetes-list-type: atomic
  1226. mismatchLabelKeys:
  1227. description: |-
  1228. MismatchLabelKeys is a set of pod label keys to select which pods will
  1229. be taken into consideration. The keys are used to lookup values from the
  1230. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  1231. to select the group of existing pods which pods will be taken into consideration
  1232. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  1233. pod labels will be ignored. The default value is empty.
  1234. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  1235. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  1236. items:
  1237. type: string
  1238. type: array
  1239. x-kubernetes-list-type: atomic
  1240. namespaceSelector:
  1241. description: |-
  1242. A label query over the set of namespaces that the term applies to.
  1243. The term is applied to the union of the namespaces selected by this field
  1244. and the ones listed in the namespaces field.
  1245. null selector and null or empty namespaces list means "this pod's namespace".
  1246. An empty selector ({}) matches all namespaces.
  1247. properties:
  1248. matchExpressions:
  1249. description: matchExpressions is a list of label
  1250. selector requirements. The requirements are ANDed.
  1251. items:
  1252. description: |-
  1253. A label selector requirement is a selector that contains values, a key, and an operator that
  1254. relates the key and values.
  1255. properties:
  1256. key:
  1257. description: key is the label key that the
  1258. selector applies to.
  1259. type: string
  1260. operator:
  1261. description: |-
  1262. operator represents a key's relationship to a set of values.
  1263. Valid operators are In, NotIn, Exists and DoesNotExist.
  1264. type: string
  1265. values:
  1266. description: |-
  1267. values is an array of string values. If the operator is In or NotIn,
  1268. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1269. the values array must be empty. This array is replaced during a strategic
  1270. merge patch.
  1271. items:
  1272. type: string
  1273. type: array
  1274. x-kubernetes-list-type: atomic
  1275. required:
  1276. - key
  1277. - operator
  1278. type: object
  1279. type: array
  1280. x-kubernetes-list-type: atomic
  1281. matchLabels:
  1282. additionalProperties:
  1283. type: string
  1284. description: |-
  1285. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  1286. map is equivalent to an element of matchExpressions, whose key field is "key", the
  1287. operator is "In", and the values array contains only "value". The requirements are ANDed.
  1288. type: object
  1289. type: object
  1290. x-kubernetes-map-type: atomic
  1291. namespaces:
  1292. description: |-
  1293. namespaces specifies a static list of namespace names that the term applies to.
  1294. The term is applied to the union of the namespaces listed in this field
  1295. and the ones selected by namespaceSelector.
  1296. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  1297. items:
  1298. type: string
  1299. type: array
  1300. x-kubernetes-list-type: atomic
  1301. topologyKey:
  1302. description: |-
  1303. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  1304. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  1305. whose value of the label with key topologyKey matches that of any node on which any of the
  1306. selected pods is running.
  1307. Empty topologyKey is not allowed.
  1308. type: string
  1309. required:
  1310. - topologyKey
  1311. type: object
  1312. type: array
  1313. x-kubernetes-list-type: atomic
  1314. type: object
  1315. enablePodAntiAffinity:
  1316. description: |-
  1317. Activates anti-affinity for the pods. The operator will define pods
  1318. anti-affinity unless this field is explicitly set to false
  1319. type: boolean
  1320. nodeAffinity:
  1321. description: |-
  1322. NodeAffinity describes node affinity scheduling rules for the pod.
  1323. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  1324. properties:
  1325. preferredDuringSchedulingIgnoredDuringExecution:
  1326. description: |-
  1327. The scheduler will prefer to schedule pods to nodes that satisfy
  1328. the affinity expressions specified by this field, but it may choose
  1329. a node that violates one or more of the expressions. The node that is
  1330. most preferred is the one with the greatest sum of weights, i.e.
  1331. for each node that meets all of the scheduling requirements (resource
  1332. request, requiredDuringScheduling affinity expressions, etc.),
  1333. compute a sum by iterating through the elements of this field and adding
  1334. "weight" to the sum if the node matches the corresponding matchExpressions; the
  1335. node(s) with the highest sum are the most preferred.
  1336. items:
  1337. description: |-
  1338. An empty preferred scheduling term matches all objects with implicit weight 0
  1339. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  1340. properties:
  1341. preference:
  1342. description: A node selector term, associated with the
  1343. corresponding weight.
  1344. properties:
  1345. matchExpressions:
  1346. description: A list of node selector requirements
  1347. by node's labels.
  1348. items:
  1349. description: |-
  1350. A node selector requirement is a selector that contains values, a key, and an operator
  1351. that relates the key and values.
  1352. properties:
  1353. key:
  1354. description: The label key that the selector
  1355. applies to.
  1356. type: string
  1357. operator:
  1358. description: |-
  1359. Represents a key's relationship to a set of values.
  1360. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1361. type: string
  1362. values:
  1363. description: |-
  1364. An array of string values. If the operator is In or NotIn,
  1365. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1366. the values array must be empty. If the operator is Gt or Lt, the values
  1367. array must have a single element, which will be interpreted as an integer.
  1368. This array is replaced during a strategic merge patch.
  1369. items:
  1370. type: string
  1371. type: array
  1372. x-kubernetes-list-type: atomic
  1373. required:
  1374. - key
  1375. - operator
  1376. type: object
  1377. type: array
  1378. x-kubernetes-list-type: atomic
  1379. matchFields:
  1380. description: A list of node selector requirements
  1381. by node's fields.
  1382. items:
  1383. description: |-
  1384. A node selector requirement is a selector that contains values, a key, and an operator
  1385. that relates the key and values.
  1386. properties:
  1387. key:
  1388. description: The label key that the selector
  1389. applies to.
  1390. type: string
  1391. operator:
  1392. description: |-
  1393. Represents a key's relationship to a set of values.
  1394. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1395. type: string
  1396. values:
  1397. description: |-
  1398. An array of string values. If the operator is In or NotIn,
  1399. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1400. the values array must be empty. If the operator is Gt or Lt, the values
  1401. array must have a single element, which will be interpreted as an integer.
  1402. This array is replaced during a strategic merge patch.
  1403. items:
  1404. type: string
  1405. type: array
  1406. x-kubernetes-list-type: atomic
  1407. required:
  1408. - key
  1409. - operator
  1410. type: object
  1411. type: array
  1412. x-kubernetes-list-type: atomic
  1413. type: object
  1414. x-kubernetes-map-type: atomic
  1415. weight:
  1416. description: Weight associated with matching the corresponding
  1417. nodeSelectorTerm, in the range 1-100.
  1418. format: int32
  1419. type: integer
  1420. required:
  1421. - preference
  1422. - weight
  1423. type: object
  1424. type: array
  1425. x-kubernetes-list-type: atomic
  1426. requiredDuringSchedulingIgnoredDuringExecution:
  1427. description: |-
  1428. If the affinity requirements specified by this field are not met at
  1429. scheduling time, the pod will not be scheduled onto the node.
  1430. If the affinity requirements specified by this field cease to be met
  1431. at some point during pod execution (e.g. due to an update), the system
  1432. may or may not try to eventually evict the pod from its node.
  1433. properties:
  1434. nodeSelectorTerms:
  1435. description: Required. A list of node selector terms.
  1436. The terms are ORed.
  1437. items:
  1438. description: |-
  1439. A null or empty node selector term matches no objects. The requirements of
  1440. them are ANDed.
  1441. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  1442. properties:
  1443. matchExpressions:
  1444. description: A list of node selector requirements
  1445. by node's labels.
  1446. items:
  1447. description: |-
  1448. A node selector requirement is a selector that contains values, a key, and an operator
  1449. that relates the key and values.
  1450. properties:
  1451. key:
  1452. description: The label key that the selector
  1453. applies to.
  1454. type: string
  1455. operator:
  1456. description: |-
  1457. Represents a key's relationship to a set of values.
  1458. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1459. type: string
  1460. values:
  1461. description: |-
  1462. An array of string values. If the operator is In or NotIn,
  1463. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1464. the values array must be empty. If the operator is Gt or Lt, the values
  1465. array must have a single element, which will be interpreted as an integer.
  1466. This array is replaced during a strategic merge patch.
  1467. items:
  1468. type: string
  1469. type: array
  1470. x-kubernetes-list-type: atomic
  1471. required:
  1472. - key
  1473. - operator
  1474. type: object
  1475. type: array
  1476. x-kubernetes-list-type: atomic
  1477. matchFields:
  1478. description: A list of node selector requirements
  1479. by node's fields.
  1480. items:
  1481. description: |-
  1482. A node selector requirement is a selector that contains values, a key, and an operator
  1483. that relates the key and values.
  1484. properties:
  1485. key:
  1486. description: The label key that the selector
  1487. applies to.
  1488. type: string
  1489. operator:
  1490. description: |-
  1491. Represents a key's relationship to a set of values.
  1492. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1493. type: string
  1494. values:
  1495. description: |-
  1496. An array of string values. If the operator is In or NotIn,
  1497. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  1498. the values array must be empty. If the operator is Gt or Lt, the values
  1499. array must have a single element, which will be interpreted as an integer.
  1500. This array is replaced during a strategic merge patch.
  1501. items:
  1502. type: string
  1503. type: array
  1504. x-kubernetes-list-type: atomic
  1505. required:
  1506. - key
  1507. - operator
  1508. type: object
  1509. type: array
  1510. x-kubernetes-list-type: atomic
  1511. type: object
  1512. x-kubernetes-map-type: atomic
  1513. type: array
  1514. x-kubernetes-list-type: atomic
  1515. required:
  1516. - nodeSelectorTerms
  1517. type: object
  1518. x-kubernetes-map-type: atomic
  1519. type: object
  1520. nodeSelector:
  1521. additionalProperties:
  1522. type: string
  1523. description: |-
  1524. NodeSelector is map of key-value pairs used to define the nodes on which
  1525. the pods can run.
  1526. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  1527. type: object
  1528. podAntiAffinityType:
  1529. description: |-
  1530. PodAntiAffinityType allows the user to decide whether pod anti-affinity between cluster instance has to be
  1531. considered a strong requirement during scheduling or not. Allowed values are: "preferred" (default if empty) or
  1532. "required". Setting it to "required", could lead to instances remaining pending until new kubernetes nodes are
  1533. added if all the existing nodes don't match the required pod anti-affinity rule.
  1534. More info:
  1535. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  1536. type: string
  1537. tolerations:
  1538. description: |-
  1539. Tolerations is a list of Tolerations that should be set for all the pods, in order to allow them to run
  1540. on tainted nodes.
  1541. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
  1542. items:
  1543. description: |-
  1544. The pod this Toleration is attached to tolerates any taint that matches
  1545. the triple <key,value,effect> using the matching operator <operator>.
  1546. properties:
  1547. effect:
  1548. description: |-
  1549. Effect indicates the taint effect to match. Empty means match all taint effects.
  1550. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  1551. type: string
  1552. key:
  1553. description: |-
  1554. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  1555. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  1556. type: string
  1557. operator:
  1558. description: |-
  1559. Operator represents a key's relationship to the value.
  1560. Valid operators are Exists and Equal. Defaults to Equal.
  1561. Exists is equivalent to wildcard for value, so that a pod can
  1562. tolerate all taints of a particular category.
  1563. type: string
  1564. tolerationSeconds:
  1565. description: |-
  1566. TolerationSeconds represents the period of time the toleration (which must be
  1567. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  1568. it is not set, which means tolerate the taint forever (do not evict). Zero and
  1569. negative values will be treated as 0 (evict immediately) by the system.
  1570. format: int64
  1571. type: integer
  1572. value:
  1573. description: |-
  1574. Value is the taint value the toleration matches to.
  1575. If the operator is Exists, the value should be empty, otherwise just a regular string.
  1576. type: string
  1577. type: object
  1578. type: array
  1579. topologyKey:
  1580. description: |-
  1581. TopologyKey to use for anti-affinity configuration. See k8s documentation
  1582. for more info on that
  1583. type: string
  1584. type: object
  1585. backup:
  1586. description: The configuration to be used for backups
  1587. properties:
  1588. barmanObjectStore:
  1589. description: The configuration for the barman-cloud tool suite
  1590. properties:
  1591. azureCredentials:
  1592. description: The credentials to use to upload data to Azure
  1593. Blob Storage
  1594. properties:
  1595. connectionString:
  1596. description: The connection string to be used
  1597. properties:
  1598. key:
  1599. description: The key to select
  1600. type: string
  1601. name:
  1602. description: Name of the referent.
  1603. type: string
  1604. required:
  1605. - key
  1606. - name
  1607. type: object
  1608. inheritFromAzureAD:
  1609. description: Use the Azure AD based authentication without
  1610. providing explicitly the keys.
  1611. type: boolean
  1612. storageAccount:
  1613. description: The storage account where to upload data
  1614. properties:
  1615. key:
  1616. description: The key to select
  1617. type: string
  1618. name:
  1619. description: Name of the referent.
  1620. type: string
  1621. required:
  1622. - key
  1623. - name
  1624. type: object
  1625. storageKey:
  1626. description: |-
  1627. The storage account key to be used in conjunction
  1628. with the storage account name
  1629. properties:
  1630. key:
  1631. description: The key to select
  1632. type: string
  1633. name:
  1634. description: Name of the referent.
  1635. type: string
  1636. required:
  1637. - key
  1638. - name
  1639. type: object
  1640. storageSasToken:
  1641. description: |-
  1642. A shared-access-signature to be used in conjunction with
  1643. the storage account name
  1644. properties:
  1645. key:
  1646. description: The key to select
  1647. type: string
  1648. name:
  1649. description: Name of the referent.
  1650. type: string
  1651. required:
  1652. - key
  1653. - name
  1654. type: object
  1655. type: object
  1656. data:
  1657. description: |-
  1658. The configuration to be used to backup the data files
  1659. When not defined, base backups files will be stored uncompressed and may
  1660. be unencrypted in the object store, according to the bucket default
  1661. policy.
  1662. properties:
  1663. additionalCommandArgs:
  1664. description: |-
  1665. AdditionalCommandArgs represents additional arguments that can be appended
  1666. to the 'barman-cloud-backup' command-line invocation. These arguments
  1667. provide flexibility to customize the backup process further according to
  1668. specific requirements or configurations.
  1669. Example:
  1670. In a scenario where specialized backup options are required, such as setting
  1671. a specific timeout or defining custom behavior, users can use this field
  1672. to specify additional command arguments.
  1673. Note:
  1674. It's essential to ensure that the provided arguments are valid and supported
  1675. by the 'barman-cloud-backup' command, to avoid potential errors or unintended
  1676. behavior during execution.
  1677. items:
  1678. type: string
  1679. type: array
  1680. compression:
  1681. description: |-
  1682. Compress a backup file (a tar file per tablespace) while streaming it
  1683. to the object store. Available options are empty string (no
  1684. compression, default), `gzip`, `bzip2`, and `snappy`.
  1685. enum:
  1686. - bzip2
  1687. - gzip
  1688. - snappy
  1689. type: string
  1690. encryption:
  1691. description: |-
  1692. Whenever to force the encryption of files (if the bucket is
  1693. not already configured for that).
  1694. Allowed options are empty string (use the bucket policy, default),
  1695. `AES256` and `aws:kms`
  1696. enum:
  1697. - AES256
  1698. - aws:kms
  1699. type: string
  1700. immediateCheckpoint:
  1701. description: |-
  1702. Control whether the I/O workload for the backup initial checkpoint will
  1703. be limited, according to the `checkpoint_completion_target` setting on
  1704. the PostgreSQL server. If set to true, an immediate checkpoint will be
  1705. used, meaning PostgreSQL will complete the checkpoint as soon as
  1706. possible. `false` by default.
  1707. type: boolean
  1708. jobs:
  1709. description: |-
  1710. The number of parallel jobs to be used to upload the backup, defaults
  1711. to 2
  1712. format: int32
  1713. minimum: 1
  1714. type: integer
  1715. type: object
  1716. destinationPath:
  1717. description: |-
  1718. The path where to store the backup (i.e. s3://bucket/path/to/folder)
  1719. this path, with different destination folders, will be used for WALs
  1720. and for data
  1721. minLength: 1
  1722. type: string
  1723. endpointCA:
  1724. description: |-
  1725. EndpointCA store the CA bundle of the barman endpoint.
  1726. Useful when using self-signed certificates to avoid
  1727. errors with certificate issuer and barman-cloud-wal-archive
  1728. properties:
  1729. key:
  1730. description: The key to select
  1731. type: string
  1732. name:
  1733. description: Name of the referent.
  1734. type: string
  1735. required:
  1736. - key
  1737. - name
  1738. type: object
  1739. endpointURL:
  1740. description: |-
  1741. Endpoint to be used to upload data to the cloud,
  1742. overriding the automatic endpoint discovery
  1743. type: string
  1744. googleCredentials:
  1745. description: The credentials to use to upload data to Google
  1746. Cloud Storage
  1747. properties:
  1748. applicationCredentials:
  1749. description: The secret containing the Google Cloud Storage
  1750. JSON file with the credentials
  1751. properties:
  1752. key:
  1753. description: The key to select
  1754. type: string
  1755. name:
  1756. description: Name of the referent.
  1757. type: string
  1758. required:
  1759. - key
  1760. - name
  1761. type: object
  1762. gkeEnvironment:
  1763. description: |-
  1764. If set to true, will presume that it's running inside a GKE environment,
  1765. default to false.
  1766. type: boolean
  1767. type: object
  1768. historyTags:
  1769. additionalProperties:
  1770. type: string
  1771. description: |-
  1772. HistoryTags is a list of key value pairs that will be passed to the
  1773. Barman --history-tags option.
  1774. type: object
  1775. s3Credentials:
  1776. description: The credentials to use to upload data to S3
  1777. properties:
  1778. accessKeyId:
  1779. description: The reference to the access key id
  1780. properties:
  1781. key:
  1782. description: The key to select
  1783. type: string
  1784. name:
  1785. description: Name of the referent.
  1786. type: string
  1787. required:
  1788. - key
  1789. - name
  1790. type: object
  1791. inheritFromIAMRole:
  1792. description: Use the role based authentication without
  1793. providing explicitly the keys.
  1794. type: boolean
  1795. region:
  1796. description: The reference to the secret containing the
  1797. region name
  1798. properties:
  1799. key:
  1800. description: The key to select
  1801. type: string
  1802. name:
  1803. description: Name of the referent.
  1804. type: string
  1805. required:
  1806. - key
  1807. - name
  1808. type: object
  1809. secretAccessKey:
  1810. description: The reference to the secret access key
  1811. properties:
  1812. key:
  1813. description: The key to select
  1814. type: string
  1815. name:
  1816. description: Name of the referent.
  1817. type: string
  1818. required:
  1819. - key
  1820. - name
  1821. type: object
  1822. sessionToken:
  1823. description: The references to the session key
  1824. properties:
  1825. key:
  1826. description: The key to select
  1827. type: string
  1828. name:
  1829. description: Name of the referent.
  1830. type: string
  1831. required:
  1832. - key
  1833. - name
  1834. type: object
  1835. type: object
  1836. serverName:
  1837. description: |-
  1838. The server name on S3, the cluster name is used if this
  1839. parameter is omitted
  1840. type: string
  1841. tags:
  1842. additionalProperties:
  1843. type: string
  1844. description: |-
  1845. Tags is a list of key value pairs that will be passed to the
  1846. Barman --tags option.
  1847. type: object
  1848. wal:
  1849. description: |-
  1850. The configuration for the backup of the WAL stream.
  1851. When not defined, WAL files will be stored uncompressed and may be
  1852. unencrypted in the object store, according to the bucket default policy.
  1853. properties:
  1854. archiveAdditionalCommandArgs:
  1855. description: |-
  1856. Additional arguments that can be appended to the 'barman-cloud-wal-archive'
  1857. command-line invocation. These arguments provide flexibility to customize
  1858. the WAL archive process further, according to specific requirements or configurations.
  1859. Example:
  1860. In a scenario where specialized backup options are required, such as setting
  1861. a specific timeout or defining custom behavior, users can use this field
  1862. to specify additional command arguments.
  1863. Note:
  1864. It's essential to ensure that the provided arguments are valid and supported
  1865. by the 'barman-cloud-wal-archive' command, to avoid potential errors or unintended
  1866. behavior during execution.
  1867. items:
  1868. type: string
  1869. type: array
  1870. compression:
  1871. description: |-
  1872. Compress a WAL file before sending it to the object store. Available
  1873. options are empty string (no compression, default), `gzip`, `bzip2`,
  1874. `lz4`, `snappy`, `xz`, and `zstd`.
  1875. enum:
  1876. - bzip2
  1877. - gzip
  1878. - lz4
  1879. - snappy
  1880. - xz
  1881. - zstd
  1882. type: string
  1883. encryption:
  1884. description: |-
  1885. Whenever to force the encryption of files (if the bucket is
  1886. not already configured for that).
  1887. Allowed options are empty string (use the bucket policy, default),
  1888. `AES256` and `aws:kms`
  1889. enum:
  1890. - AES256
  1891. - aws:kms
  1892. type: string
  1893. maxParallel:
  1894. description: |-
  1895. Number of WAL files to be either archived in parallel (when the
  1896. PostgreSQL instance is archiving to a backup object store) or
  1897. restored in parallel (when a PostgreSQL standby is fetching WAL
  1898. files from a recovery object store). If not specified, WAL files
  1899. will be processed one at a time. It accepts a positive integer as a
  1900. value - with 1 being the minimum accepted value.
  1901. minimum: 1
  1902. type: integer
  1903. restoreAdditionalCommandArgs:
  1904. description: |-
  1905. Additional arguments that can be appended to the 'barman-cloud-wal-restore'
  1906. command-line invocation. These arguments provide flexibility to customize
  1907. the WAL restore process further, according to specific requirements or configurations.
  1908. Example:
  1909. In a scenario where specialized backup options are required, such as setting
  1910. a specific timeout or defining custom behavior, users can use this field
  1911. to specify additional command arguments.
  1912. Note:
  1913. It's essential to ensure that the provided arguments are valid and supported
  1914. by the 'barman-cloud-wal-restore' command, to avoid potential errors or unintended
  1915. behavior during execution.
  1916. items:
  1917. type: string
  1918. type: array
  1919. type: object
  1920. required:
  1921. - destinationPath
  1922. type: object
  1923. retentionPolicy:
  1924. description: |-
  1925. RetentionPolicy is the retention policy to be used for backups
  1926. and WALs (i.e. '60d'). The retention policy is expressed in the form
  1927. of `XXu` where `XX` is a positive integer and `u` is in `[dwm]` -
  1928. days, weeks, months.
  1929. It's currently only applicable when using the BarmanObjectStore method.
  1930. pattern: ^[1-9][0-9]*[dwm]$
  1931. type: string
  1932. target:
  1933. default: prefer-standby
  1934. description: |-
  1935. The policy to decide which instance should perform backups. Available
  1936. options are empty string, which will default to `prefer-standby` policy,
  1937. `primary` to have backups run always on primary instances, `prefer-standby`
  1938. to have backups run preferably on the most updated standby, if available.
  1939. enum:
  1940. - primary
  1941. - prefer-standby
  1942. type: string
  1943. volumeSnapshot:
  1944. description: VolumeSnapshot provides the configuration for the
  1945. execution of volume snapshot backups.
  1946. properties:
  1947. annotations:
  1948. additionalProperties:
  1949. type: string
  1950. description: Annotations key-value pairs that will be added
  1951. to .metadata.annotations snapshot resources.
  1952. type: object
  1953. className:
  1954. description: |-
  1955. ClassName specifies the Snapshot Class to be used for PG_DATA PersistentVolumeClaim.
  1956. It is the default class for the other types if no specific class is present
  1957. type: string
  1958. labels:
  1959. additionalProperties:
  1960. type: string
  1961. description: Labels are key-value pairs that will be added
  1962. to .metadata.labels snapshot resources.
  1963. type: object
  1964. online:
  1965. default: true
  1966. description: |-
  1967. Whether the default type of backup with volume snapshots is
  1968. online/hot (`true`, default) or offline/cold (`false`)
  1969. type: boolean
  1970. onlineConfiguration:
  1971. default:
  1972. immediateCheckpoint: false
  1973. waitForArchive: true
  1974. description: Configuration parameters to control the online/hot
  1975. backup with volume snapshots
  1976. properties:
  1977. immediateCheckpoint:
  1978. description: |-
  1979. Control whether the I/O workload for the backup initial checkpoint will
  1980. be limited, according to the `checkpoint_completion_target` setting on
  1981. the PostgreSQL server. If set to true, an immediate checkpoint will be
  1982. used, meaning PostgreSQL will complete the checkpoint as soon as
  1983. possible. `false` by default.
  1984. type: boolean
  1985. waitForArchive:
  1986. default: true
  1987. description: |-
  1988. If false, the function will return immediately after the backup is completed,
  1989. without waiting for WAL to be archived.
  1990. This behavior is only useful with backup software that independently monitors WAL archiving.
  1991. Otherwise, WAL required to make the backup consistent might be missing and make the backup useless.
  1992. By default, or when this parameter is true, pg_backup_stop will wait for WAL to be archived when archiving is
  1993. enabled.
  1994. On a standby, this means that it will wait only when archive_mode = always.
  1995. If write activity on the primary is low, it may be useful to run pg_switch_wal on the primary in order to trigger
  1996. an immediate segment switch.
  1997. type: boolean
  1998. type: object
  1999. snapshotOwnerReference:
  2000. default: none
  2001. description: SnapshotOwnerReference indicates the type of
  2002. owner reference the snapshot should have
  2003. enum:
  2004. - none
  2005. - cluster
  2006. - backup
  2007. type: string
  2008. tablespaceClassName:
  2009. additionalProperties:
  2010. type: string
  2011. description: |-
  2012. TablespaceClassName specifies the Snapshot Class to be used for the tablespaces.
  2013. defaults to the PGDATA Snapshot Class, if set
  2014. type: object
  2015. walClassName:
  2016. description: WalClassName specifies the Snapshot Class to
  2017. be used for the PG_WAL PersistentVolumeClaim.
  2018. type: string
  2019. type: object
  2020. type: object
  2021. bootstrap:
  2022. description: Instructions to bootstrap this cluster
  2023. properties:
  2024. initdb:
  2025. description: Bootstrap the cluster via initdb
  2026. properties:
  2027. builtinLocale:
  2028. description: |-
  2029. Specifies the locale name when the builtin provider is used.
  2030. This option requires `localeProvider` to be set to `builtin`.
  2031. Available from PostgreSQL 17.
  2032. type: string
  2033. dataChecksums:
  2034. description: |-
  2035. Whether the `-k` option should be passed to initdb,
  2036. enabling checksums on data pages (default: `false`)
  2037. type: boolean
  2038. database:
  2039. description: 'Name of the database used by the application.
  2040. Default: `app`.'
  2041. type: string
  2042. encoding:
  2043. description: The value to be passed as option `--encoding`
  2044. for initdb (default:`UTF8`)
  2045. type: string
  2046. icuLocale:
  2047. description: |-
  2048. Specifies the ICU locale when the ICU provider is used.
  2049. This option requires `localeProvider` to be set to `icu`.
  2050. Available from PostgreSQL 15.
  2051. type: string
  2052. icuRules:
  2053. description: |-
  2054. Specifies additional collation rules to customize the behavior of the default collation.
  2055. This option requires `localeProvider` to be set to `icu`.
  2056. Available from PostgreSQL 16.
  2057. type: string
  2058. import:
  2059. description: |-
  2060. Bootstraps the new cluster by importing data from an existing PostgreSQL
  2061. instance using logical backup (`pg_dump` and `pg_restore`)
  2062. properties:
  2063. databases:
  2064. description: The databases to import
  2065. items:
  2066. type: string
  2067. type: array
  2068. pgDumpExtraOptions:
  2069. description: |-
  2070. List of custom options to pass to the `pg_dump` command.
  2071. IMPORTANT: Use with caution. The operator does not validate these options,
  2072. and certain flags may interfere with its intended functionality or design.
  2073. You are responsible for ensuring that the provided options are compatible
  2074. with your environment and desired behavior.
  2075. items:
  2076. type: string
  2077. type: array
  2078. pgRestoreDataOptions:
  2079. description: |-
  2080. Custom options to pass to the `pg_restore` command during the `data`
  2081. section. This setting overrides the generic `pgRestoreExtraOptions` value.
  2082. IMPORTANT: Use with caution. The operator does not validate these options,
  2083. and certain flags may interfere with its intended functionality or design.
  2084. You are responsible for ensuring that the provided options are compatible
  2085. with your environment and desired behavior.
  2086. items:
  2087. type: string
  2088. type: array
  2089. pgRestoreExtraOptions:
  2090. description: |-
  2091. List of custom options to pass to the `pg_restore` command.
  2092. IMPORTANT: Use with caution. The operator does not validate these options,
  2093. and certain flags may interfere with its intended functionality or design.
  2094. You are responsible for ensuring that the provided options are compatible
  2095. with your environment and desired behavior.
  2096. items:
  2097. type: string
  2098. type: array
  2099. pgRestorePostdataOptions:
  2100. description: |-
  2101. Custom options to pass to the `pg_restore` command during the `post-data`
  2102. section. This setting overrides the generic `pgRestoreExtraOptions` value.
  2103. IMPORTANT: Use with caution. The operator does not validate these options,
  2104. and certain flags may interfere with its intended functionality or design.
  2105. You are responsible for ensuring that the provided options are compatible
  2106. with your environment and desired behavior.
  2107. items:
  2108. type: string
  2109. type: array
  2110. pgRestorePredataOptions:
  2111. description: |-
  2112. Custom options to pass to the `pg_restore` command during the `pre-data`
  2113. section. This setting overrides the generic `pgRestoreExtraOptions` value.
  2114. IMPORTANT: Use with caution. The operator does not validate these options,
  2115. and certain flags may interfere with its intended functionality or design.
  2116. You are responsible for ensuring that the provided options are compatible
  2117. with your environment and desired behavior.
  2118. items:
  2119. type: string
  2120. type: array
  2121. postImportApplicationSQL:
  2122. description: |-
  2123. List of SQL queries to be executed as a superuser in the application
  2124. database right after is imported - to be used with extreme care
  2125. (by default empty). Only available in microservice type.
  2126. items:
  2127. type: string
  2128. type: array
  2129. roles:
  2130. description: The roles to import
  2131. items:
  2132. type: string
  2133. type: array
  2134. schemaOnly:
  2135. description: |-
  2136. When set to true, only the `pre-data` and `post-data` sections of
  2137. `pg_restore` are invoked, avoiding data import. Default: `false`.
  2138. type: boolean
  2139. source:
  2140. description: The source of the import
  2141. properties:
  2142. externalCluster:
  2143. description: The name of the externalCluster used
  2144. for import
  2145. type: string
  2146. required:
  2147. - externalCluster
  2148. type: object
  2149. type:
  2150. description: The import type. Can be `microservice` or
  2151. `monolith`.
  2152. enum:
  2153. - microservice
  2154. - monolith
  2155. type: string
  2156. required:
  2157. - databases
  2158. - source
  2159. - type
  2160. type: object
  2161. locale:
  2162. description: Sets the default collation order and character
  2163. classification in the new database.
  2164. type: string
  2165. localeCType:
  2166. description: The value to be passed as option `--lc-ctype`
  2167. for initdb (default:`C`)
  2168. type: string
  2169. localeCollate:
  2170. description: The value to be passed as option `--lc-collate`
  2171. for initdb (default:`C`)
  2172. type: string
  2173. localeProvider:
  2174. description: |-
  2175. This option sets the locale provider for databases created in the new cluster.
  2176. Available from PostgreSQL 16.
  2177. type: string
  2178. options:
  2179. description: |-
  2180. The list of options that must be passed to initdb when creating the cluster.
  2181. Deprecated: This could lead to inconsistent configurations,
  2182. please use the explicit provided parameters instead.
  2183. If defined, explicit values will be ignored.
  2184. items:
  2185. type: string
  2186. type: array
  2187. owner:
  2188. description: |-
  2189. Name of the owner of the database in the instance to be used
  2190. by applications. Defaults to the value of the `database` key.
  2191. type: string
  2192. postInitApplicationSQL:
  2193. description: |-
  2194. List of SQL queries to be executed as a superuser in the application
  2195. database right after the cluster has been created - to be used with extreme care
  2196. (by default empty)
  2197. items:
  2198. type: string
  2199. type: array
  2200. postInitApplicationSQLRefs:
  2201. description: |-
  2202. List of references to ConfigMaps or Secrets containing SQL files
  2203. to be executed as a superuser in the application database right after
  2204. the cluster has been created. The references are processed in a specific order:
  2205. first, all Secrets are processed, followed by all ConfigMaps.
  2206. Within each group, the processing order follows the sequence specified
  2207. in their respective arrays.
  2208. (by default empty)
  2209. properties:
  2210. configMapRefs:
  2211. description: ConfigMapRefs holds a list of references
  2212. to ConfigMaps
  2213. items:
  2214. description: |-
  2215. ConfigMapKeySelector contains enough information to let you locate
  2216. the key of a ConfigMap
  2217. properties:
  2218. key:
  2219. description: The key to select
  2220. type: string
  2221. name:
  2222. description: Name of the referent.
  2223. type: string
  2224. required:
  2225. - key
  2226. - name
  2227. type: object
  2228. type: array
  2229. secretRefs:
  2230. description: SecretRefs holds a list of references to
  2231. Secrets
  2232. items:
  2233. description: |-
  2234. SecretKeySelector contains enough information to let you locate
  2235. the key of a Secret
  2236. properties:
  2237. key:
  2238. description: The key to select
  2239. type: string
  2240. name:
  2241. description: Name of the referent.
  2242. type: string
  2243. required:
  2244. - key
  2245. - name
  2246. type: object
  2247. type: array
  2248. type: object
  2249. postInitSQL:
  2250. description: |-
  2251. List of SQL queries to be executed as a superuser in the `postgres`
  2252. database right after the cluster has been created - to be used with extreme care
  2253. (by default empty)
  2254. items:
  2255. type: string
  2256. type: array
  2257. postInitSQLRefs:
  2258. description: |-
  2259. List of references to ConfigMaps or Secrets containing SQL files
  2260. to be executed as a superuser in the `postgres` database right after
  2261. the cluster has been created. The references are processed in a specific order:
  2262. first, all Secrets are processed, followed by all ConfigMaps.
  2263. Within each group, the processing order follows the sequence specified
  2264. in their respective arrays.
  2265. (by default empty)
  2266. properties:
  2267. configMapRefs:
  2268. description: ConfigMapRefs holds a list of references
  2269. to ConfigMaps
  2270. items:
  2271. description: |-
  2272. ConfigMapKeySelector contains enough information to let you locate
  2273. the key of a ConfigMap
  2274. properties:
  2275. key:
  2276. description: The key to select
  2277. type: string
  2278. name:
  2279. description: Name of the referent.
  2280. type: string
  2281. required:
  2282. - key
  2283. - name
  2284. type: object
  2285. type: array
  2286. secretRefs:
  2287. description: SecretRefs holds a list of references to
  2288. Secrets
  2289. items:
  2290. description: |-
  2291. SecretKeySelector contains enough information to let you locate
  2292. the key of a Secret
  2293. properties:
  2294. key:
  2295. description: The key to select
  2296. type: string
  2297. name:
  2298. description: Name of the referent.
  2299. type: string
  2300. required:
  2301. - key
  2302. - name
  2303. type: object
  2304. type: array
  2305. type: object
  2306. postInitTemplateSQL:
  2307. description: |-
  2308. List of SQL queries to be executed as a superuser in the `template1`
  2309. database right after the cluster has been created - to be used with extreme care
  2310. (by default empty)
  2311. items:
  2312. type: string
  2313. type: array
  2314. postInitTemplateSQLRefs:
  2315. description: |-
  2316. List of references to ConfigMaps or Secrets containing SQL files
  2317. to be executed as a superuser in the `template1` database right after
  2318. the cluster has been created. The references are processed in a specific order:
  2319. first, all Secrets are processed, followed by all ConfigMaps.
  2320. Within each group, the processing order follows the sequence specified
  2321. in their respective arrays.
  2322. (by default empty)
  2323. properties:
  2324. configMapRefs:
  2325. description: ConfigMapRefs holds a list of references
  2326. to ConfigMaps
  2327. items:
  2328. description: |-
  2329. ConfigMapKeySelector contains enough information to let you locate
  2330. the key of a ConfigMap
  2331. properties:
  2332. key:
  2333. description: The key to select
  2334. type: string
  2335. name:
  2336. description: Name of the referent.
  2337. type: string
  2338. required:
  2339. - key
  2340. - name
  2341. type: object
  2342. type: array
  2343. secretRefs:
  2344. description: SecretRefs holds a list of references to
  2345. Secrets
  2346. items:
  2347. description: |-
  2348. SecretKeySelector contains enough information to let you locate
  2349. the key of a Secret
  2350. properties:
  2351. key:
  2352. description: The key to select
  2353. type: string
  2354. name:
  2355. description: Name of the referent.
  2356. type: string
  2357. required:
  2358. - key
  2359. - name
  2360. type: object
  2361. type: array
  2362. type: object
  2363. secret:
  2364. description: |-
  2365. Name of the secret containing the initial credentials for the
  2366. owner of the user database. If empty a new secret will be
  2367. created from scratch
  2368. properties:
  2369. name:
  2370. description: Name of the referent.
  2371. type: string
  2372. required:
  2373. - name
  2374. type: object
  2375. walSegmentSize:
  2376. description: |-
  2377. The value in megabytes (1 to 1024) to be passed to the `--wal-segsize`
  2378. option for initdb (default: empty, resulting in PostgreSQL default: 16MB)
  2379. maximum: 1024
  2380. minimum: 1
  2381. type: integer
  2382. type: object
  2383. x-kubernetes-validations:
  2384. - message: builtinLocale is only available when localeProvider
  2385. is set to `builtin`
  2386. rule: '!has(self.builtinLocale) || self.localeProvider == ''builtin'''
  2387. - message: icuLocale is only available when localeProvider is
  2388. set to `icu`
  2389. rule: '!has(self.icuLocale) || self.localeProvider == ''icu'''
  2390. - message: icuRules is only available when localeProvider is set
  2391. to `icu`
  2392. rule: '!has(self.icuRules) || self.localeProvider == ''icu'''
  2393. pg_basebackup:
  2394. description: |-
  2395. Bootstrap the cluster taking a physical backup of another compatible
  2396. PostgreSQL instance
  2397. properties:
  2398. database:
  2399. description: 'Name of the database used by the application.
  2400. Default: `app`.'
  2401. type: string
  2402. owner:
  2403. description: |-
  2404. Name of the owner of the database in the instance to be used
  2405. by applications. Defaults to the value of the `database` key.
  2406. type: string
  2407. secret:
  2408. description: |-
  2409. Name of the secret containing the initial credentials for the
  2410. owner of the user database. If empty a new secret will be
  2411. created from scratch
  2412. properties:
  2413. name:
  2414. description: Name of the referent.
  2415. type: string
  2416. required:
  2417. - name
  2418. type: object
  2419. source:
  2420. description: The name of the server of which we need to take
  2421. a physical backup
  2422. minLength: 1
  2423. type: string
  2424. required:
  2425. - source
  2426. type: object
  2427. recovery:
  2428. description: Bootstrap the cluster from a backup
  2429. properties:
  2430. backup:
  2431. description: |-
  2432. The backup object containing the physical base backup from which to
  2433. initiate the recovery procedure.
  2434. Mutually exclusive with `source` and `volumeSnapshots`.
  2435. properties:
  2436. endpointCA:
  2437. description: |-
  2438. EndpointCA store the CA bundle of the barman endpoint.
  2439. Useful when using self-signed certificates to avoid
  2440. errors with certificate issuer and barman-cloud-wal-archive.
  2441. properties:
  2442. key:
  2443. description: The key to select
  2444. type: string
  2445. name:
  2446. description: Name of the referent.
  2447. type: string
  2448. required:
  2449. - key
  2450. - name
  2451. type: object
  2452. name:
  2453. description: Name of the referent.
  2454. type: string
  2455. required:
  2456. - name
  2457. type: object
  2458. database:
  2459. description: 'Name of the database used by the application.
  2460. Default: `app`.'
  2461. type: string
  2462. owner:
  2463. description: |-
  2464. Name of the owner of the database in the instance to be used
  2465. by applications. Defaults to the value of the `database` key.
  2466. type: string
  2467. recoveryTarget:
  2468. description: |-
  2469. By default, the recovery process applies all the available
  2470. WAL files in the archive (full recovery). However, you can also
  2471. end the recovery as soon as a consistent state is reached or
  2472. recover to a point-in-time (PITR) by specifying a `RecoveryTarget` object,
  2473. as expected by PostgreSQL (i.e., timestamp, transaction Id, LSN, ...).
  2474. More info: https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET
  2475. properties:
  2476. backupID:
  2477. description: |-
  2478. The ID of the backup from which to start the recovery process.
  2479. If empty (default) the operator will automatically detect the backup
  2480. based on targetTime or targetLSN if specified. Otherwise use the
  2481. latest available backup in chronological order.
  2482. type: string
  2483. exclusive:
  2484. description: |-
  2485. Set the target to be exclusive. If omitted, defaults to false, so that
  2486. in Postgres, `recovery_target_inclusive` will be true
  2487. type: boolean
  2488. targetImmediate:
  2489. description: End recovery as soon as a consistent state
  2490. is reached
  2491. type: boolean
  2492. targetLSN:
  2493. description: The target LSN (Log Sequence Number)
  2494. type: string
  2495. targetName:
  2496. description: |-
  2497. The target name (to be previously created
  2498. with `pg_create_restore_point`)
  2499. type: string
  2500. targetTLI:
  2501. description: The target timeline ("latest" or a positive
  2502. integer)
  2503. type: string
  2504. targetTime:
  2505. description: The target time as a timestamp in the RFC3339
  2506. standard
  2507. type: string
  2508. targetXID:
  2509. description: The target transaction ID
  2510. type: string
  2511. type: object
  2512. secret:
  2513. description: |-
  2514. Name of the secret containing the initial credentials for the
  2515. owner of the user database. If empty a new secret will be
  2516. created from scratch
  2517. properties:
  2518. name:
  2519. description: Name of the referent.
  2520. type: string
  2521. required:
  2522. - name
  2523. type: object
  2524. source:
  2525. description: |-
  2526. The external cluster whose backup we will restore. This is also
  2527. used as the name of the folder under which the backup is stored,
  2528. so it must be set to the name of the source cluster
  2529. Mutually exclusive with `backup`.
  2530. type: string
  2531. volumeSnapshots:
  2532. description: |-
  2533. The static PVC data source(s) from which to initiate the
  2534. recovery procedure. Currently supporting `VolumeSnapshot`
  2535. and `PersistentVolumeClaim` resources that map an existing
  2536. PVC group, compatible with CloudNativePG, and taken with
  2537. a cold backup copy on a fenced Postgres instance (limitation
  2538. which will be removed in the future when online backup
  2539. will be implemented).
  2540. Mutually exclusive with `backup`.
  2541. properties:
  2542. storage:
  2543. description: Configuration of the storage of the instances
  2544. properties:
  2545. apiGroup:
  2546. description: |-
  2547. APIGroup is the group for the resource being referenced.
  2548. If APIGroup is not specified, the specified Kind must be in the core API group.
  2549. For any other third-party types, APIGroup is required.
  2550. type: string
  2551. kind:
  2552. description: Kind is the type of resource being referenced
  2553. type: string
  2554. name:
  2555. description: Name is the name of resource being referenced
  2556. type: string
  2557. required:
  2558. - kind
  2559. - name
  2560. type: object
  2561. x-kubernetes-map-type: atomic
  2562. tablespaceStorage:
  2563. additionalProperties:
  2564. description: |-
  2565. TypedLocalObjectReference contains enough information to let you locate the
  2566. typed referenced object inside the same namespace.
  2567. properties:
  2568. apiGroup:
  2569. description: |-
  2570. APIGroup is the group for the resource being referenced.
  2571. If APIGroup is not specified, the specified Kind must be in the core API group.
  2572. For any other third-party types, APIGroup is required.
  2573. type: string
  2574. kind:
  2575. description: Kind is the type of resource being
  2576. referenced
  2577. type: string
  2578. name:
  2579. description: Name is the name of resource being
  2580. referenced
  2581. type: string
  2582. required:
  2583. - kind
  2584. - name
  2585. type: object
  2586. x-kubernetes-map-type: atomic
  2587. description: Configuration of the storage for PostgreSQL
  2588. tablespaces
  2589. type: object
  2590. walStorage:
  2591. description: Configuration of the storage for PostgreSQL
  2592. WAL (Write-Ahead Log)
  2593. properties:
  2594. apiGroup:
  2595. description: |-
  2596. APIGroup is the group for the resource being referenced.
  2597. If APIGroup is not specified, the specified Kind must be in the core API group.
  2598. For any other third-party types, APIGroup is required.
  2599. type: string
  2600. kind:
  2601. description: Kind is the type of resource being referenced
  2602. type: string
  2603. name:
  2604. description: Name is the name of resource being referenced
  2605. type: string
  2606. required:
  2607. - kind
  2608. - name
  2609. type: object
  2610. x-kubernetes-map-type: atomic
  2611. required:
  2612. - storage
  2613. type: object
  2614. type: object
  2615. type: object
  2616. certificates:
  2617. description: The configuration for the CA and related certificates
  2618. properties:
  2619. clientCASecret:
  2620. description: |-
  2621. The secret containing the Client CA certificate. If not defined, a new secret will be created
  2622. with a self-signed CA and will be used to generate all the client certificates.<br />
  2623. <br />
  2624. Contains:<br />
  2625. <br />
  2626. - `ca.crt`: CA that should be used to validate the client certificates,
  2627. used as `ssl_ca_file` of all the instances.<br />
  2628. - `ca.key`: key used to generate client certificates, if ReplicationTLSSecret is provided,
  2629. this can be omitted.<br />
  2630. type: string
  2631. replicationTLSSecret:
  2632. description: |-
  2633. The secret of type kubernetes.io/tls containing the client certificate to authenticate as
  2634. the `streaming_replica` user.
  2635. If not defined, ClientCASecret must provide also `ca.key`, and a new secret will be
  2636. created using the provided CA.
  2637. type: string
  2638. serverAltDNSNames:
  2639. description: The list of the server alternative DNS names to be
  2640. added to the generated server TLS certificates, when required.
  2641. items:
  2642. type: string
  2643. type: array
  2644. serverCASecret:
  2645. description: |-
  2646. The secret containing the Server CA certificate. If not defined, a new secret will be created
  2647. with a self-signed CA and will be used to generate the TLS certificate ServerTLSSecret.<br />
  2648. <br />
  2649. Contains:<br />
  2650. <br />
  2651. - `ca.crt`: CA that should be used to validate the server certificate,
  2652. used as `sslrootcert` in client connection strings.<br />
  2653. - `ca.key`: key used to generate Server SSL certs, if ServerTLSSecret is provided,
  2654. this can be omitted.<br />
  2655. type: string
  2656. serverTLSSecret:
  2657. description: |-
  2658. The secret of type kubernetes.io/tls containing the server TLS certificate and key that will be set as
  2659. `ssl_cert_file` and `ssl_key_file` so that clients can connect to postgres securely.
  2660. If not defined, ServerCASecret must provide also `ca.key` and a new secret will be
  2661. created using the provided CA.
  2662. type: string
  2663. type: object
  2664. description:
  2665. description: Description of this PostgreSQL cluster
  2666. type: string
  2667. enablePDB:
  2668. default: true
  2669. description: |-
  2670. Manage the `PodDisruptionBudget` resources within the cluster. When
  2671. configured as `true` (default setting), the pod disruption budgets
  2672. will safeguard the primary node from being terminated. Conversely,
  2673. setting it to `false` will result in the absence of any
  2674. `PodDisruptionBudget` resource, permitting the shutdown of all nodes
  2675. hosting the PostgreSQL cluster. This latter configuration is
  2676. advisable for any PostgreSQL cluster employed for
  2677. development/staging purposes.
  2678. type: boolean
  2679. enableSuperuserAccess:
  2680. default: false
  2681. description: |-
  2682. When this option is enabled, the operator will use the `SuperuserSecret`
  2683. to update the `postgres` user password (if the secret is
  2684. not present, the operator will automatically create one). When this
  2685. option is disabled, the operator will ignore the `SuperuserSecret` content, delete
  2686. it when automatically created, and then blank the password of the `postgres`
  2687. user by setting it to `NULL`. Disabled by default.
  2688. type: boolean
  2689. env:
  2690. description: |-
  2691. Env follows the Env format to pass environment variables
  2692. to the pods created in the cluster
  2693. items:
  2694. description: EnvVar represents an environment variable present in
  2695. a Container.
  2696. properties:
  2697. name:
  2698. description: |-
  2699. Name of the environment variable.
  2700. May consist of any printable ASCII characters except '='.
  2701. type: string
  2702. value:
  2703. description: |-
  2704. Variable references $(VAR_NAME) are expanded
  2705. using the previously defined environment variables in the container and
  2706. any service environment variables. If a variable cannot be resolved,
  2707. the reference in the input string will be unchanged. Double $$ are reduced
  2708. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  2709. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  2710. Escaped references will never be expanded, regardless of whether the variable
  2711. exists or not.
  2712. Defaults to "".
  2713. type: string
  2714. valueFrom:
  2715. description: Source for the environment variable's value. Cannot
  2716. be used if value is not empty.
  2717. properties:
  2718. configMapKeyRef:
  2719. description: Selects a key of a ConfigMap.
  2720. properties:
  2721. key:
  2722. description: The key to select.
  2723. type: string
  2724. name:
  2725. default: ""
  2726. description: |-
  2727. Name of the referent.
  2728. This field is effectively required, but due to backwards compatibility is
  2729. allowed to be empty. Instances of this type with an empty value here are
  2730. almost certainly wrong.
  2731. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2732. type: string
  2733. optional:
  2734. description: Specify whether the ConfigMap or its key
  2735. must be defined
  2736. type: boolean
  2737. required:
  2738. - key
  2739. type: object
  2740. x-kubernetes-map-type: atomic
  2741. fieldRef:
  2742. description: |-
  2743. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  2744. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  2745. properties:
  2746. apiVersion:
  2747. description: Version of the schema the FieldPath is
  2748. written in terms of, defaults to "v1".
  2749. type: string
  2750. fieldPath:
  2751. description: Path of the field to select in the specified
  2752. API version.
  2753. type: string
  2754. required:
  2755. - fieldPath
  2756. type: object
  2757. x-kubernetes-map-type: atomic
  2758. fileKeyRef:
  2759. description: |-
  2760. FileKeyRef selects a key of the env file.
  2761. Requires the EnvFiles feature gate to be enabled.
  2762. properties:
  2763. key:
  2764. description: |-
  2765. The key within the env file. An invalid key will prevent the pod from starting.
  2766. The keys defined within a source may consist of any printable ASCII characters except '='.
  2767. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  2768. type: string
  2769. optional:
  2770. default: false
  2771. description: |-
  2772. Specify whether the file or its key must be defined. If the file or key
  2773. does not exist, then the env var is not published.
  2774. If optional is set to true and the specified key does not exist,
  2775. the environment variable will not be set in the Pod's containers.
  2776. If optional is set to false and the specified key does not exist,
  2777. an error will be returned during Pod creation.
  2778. type: boolean
  2779. path:
  2780. description: |-
  2781. The path within the volume from which to select the file.
  2782. Must be relative and may not contain the '..' path or start with '..'.
  2783. type: string
  2784. volumeName:
  2785. description: The name of the volume mount containing
  2786. the env file.
  2787. type: string
  2788. required:
  2789. - key
  2790. - path
  2791. - volumeName
  2792. type: object
  2793. x-kubernetes-map-type: atomic
  2794. resourceFieldRef:
  2795. description: |-
  2796. Selects a resource of the container: only resources limits and requests
  2797. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  2798. properties:
  2799. containerName:
  2800. description: 'Container name: required for volumes,
  2801. optional for env vars'
  2802. type: string
  2803. divisor:
  2804. anyOf:
  2805. - type: integer
  2806. - type: string
  2807. description: Specifies the output format of the exposed
  2808. resources, defaults to "1"
  2809. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2810. x-kubernetes-int-or-string: true
  2811. resource:
  2812. description: 'Required: resource to select'
  2813. type: string
  2814. required:
  2815. - resource
  2816. type: object
  2817. x-kubernetes-map-type: atomic
  2818. secretKeyRef:
  2819. description: Selects a key of a secret in the pod's namespace
  2820. properties:
  2821. key:
  2822. description: The key of the secret to select from. Must
  2823. be a valid secret key.
  2824. type: string
  2825. name:
  2826. default: ""
  2827. description: |-
  2828. Name of the referent.
  2829. This field is effectively required, but due to backwards compatibility is
  2830. allowed to be empty. Instances of this type with an empty value here are
  2831. almost certainly wrong.
  2832. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2833. type: string
  2834. optional:
  2835. description: Specify whether the Secret or its key must
  2836. be defined
  2837. type: boolean
  2838. required:
  2839. - key
  2840. type: object
  2841. x-kubernetes-map-type: atomic
  2842. type: object
  2843. required:
  2844. - name
  2845. type: object
  2846. type: array
  2847. envFrom:
  2848. description: |-
  2849. EnvFrom follows the EnvFrom format to pass environment variables
  2850. sources to the pods to be used by Env
  2851. items:
  2852. description: EnvFromSource represents the source of a set of ConfigMaps
  2853. or Secrets
  2854. properties:
  2855. configMapRef:
  2856. description: The ConfigMap to select from
  2857. properties:
  2858. name:
  2859. default: ""
  2860. description: |-
  2861. Name of the referent.
  2862. This field is effectively required, but due to backwards compatibility is
  2863. allowed to be empty. Instances of this type with an empty value here are
  2864. almost certainly wrong.
  2865. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2866. type: string
  2867. optional:
  2868. description: Specify whether the ConfigMap must be defined
  2869. type: boolean
  2870. type: object
  2871. x-kubernetes-map-type: atomic
  2872. prefix:
  2873. description: |-
  2874. Optional text to prepend to the name of each environment variable.
  2875. May consist of any printable ASCII characters except '='.
  2876. type: string
  2877. secretRef:
  2878. description: The Secret to select from
  2879. properties:
  2880. name:
  2881. default: ""
  2882. description: |-
  2883. Name of the referent.
  2884. This field is effectively required, but due to backwards compatibility is
  2885. allowed to be empty. Instances of this type with an empty value here are
  2886. almost certainly wrong.
  2887. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  2888. type: string
  2889. optional:
  2890. description: Specify whether the Secret must be defined
  2891. type: boolean
  2892. type: object
  2893. x-kubernetes-map-type: atomic
  2894. type: object
  2895. type: array
  2896. ephemeralVolumeSource:
  2897. description: EphemeralVolumeSource allows the user to configure the
  2898. source of ephemeral volumes.
  2899. properties:
  2900. volumeClaimTemplate:
  2901. description: |-
  2902. Will be used to create a stand-alone PVC to provision the volume.
  2903. The pod in which this EphemeralVolumeSource is embedded will be the
  2904. owner of the PVC, i.e. the PVC will be deleted together with the
  2905. pod. The name of the PVC will be `<pod name>-<volume name>` where
  2906. `<volume name>` is the name from the `PodSpec.Volumes` array
  2907. entry. Pod validation will reject the pod if the concatenated name
  2908. is not valid for a PVC (for example, too long).
  2909. An existing PVC with that name that is not owned by the pod
  2910. will *not* be used for the pod to avoid using an unrelated
  2911. volume by mistake. Starting the pod is then blocked until
  2912. the unrelated PVC is removed. If such a pre-created PVC is
  2913. meant to be used by the pod, the PVC has to updated with an
  2914. owner reference to the pod once the pod exists. Normally
  2915. this should not be necessary, but it may be useful when
  2916. manually reconstructing a broken cluster.
  2917. This field is read-only and no changes will be made by Kubernetes
  2918. to the PVC after it has been created.
  2919. Required, must not be nil.
  2920. properties:
  2921. metadata:
  2922. description: |-
  2923. May contain labels and annotations that will be copied into the PVC
  2924. when creating it. No other fields are allowed and will be rejected during
  2925. validation.
  2926. type: object
  2927. spec:
  2928. description: |-
  2929. The specification for the PersistentVolumeClaim. The entire content is
  2930. copied unchanged into the PVC that gets created from this
  2931. template. The same fields as in a PersistentVolumeClaim
  2932. are also valid here.
  2933. properties:
  2934. accessModes:
  2935. description: |-
  2936. accessModes contains the desired access modes the volume should have.
  2937. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  2938. items:
  2939. type: string
  2940. type: array
  2941. x-kubernetes-list-type: atomic
  2942. dataSource:
  2943. description: |-
  2944. dataSource field can be used to specify either:
  2945. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  2946. * An existing PVC (PersistentVolumeClaim)
  2947. If the provisioner or an external controller can support the specified data source,
  2948. it will create a new volume based on the contents of the specified data source.
  2949. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  2950. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  2951. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  2952. properties:
  2953. apiGroup:
  2954. description: |-
  2955. APIGroup is the group for the resource being referenced.
  2956. If APIGroup is not specified, the specified Kind must be in the core API group.
  2957. For any other third-party types, APIGroup is required.
  2958. type: string
  2959. kind:
  2960. description: Kind is the type of resource being referenced
  2961. type: string
  2962. name:
  2963. description: Name is the name of resource being referenced
  2964. type: string
  2965. required:
  2966. - kind
  2967. - name
  2968. type: object
  2969. x-kubernetes-map-type: atomic
  2970. dataSourceRef:
  2971. description: |-
  2972. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  2973. volume is desired. This may be any object from a non-empty API group (non
  2974. core object) or a PersistentVolumeClaim object.
  2975. When this field is specified, volume binding will only succeed if the type of
  2976. the specified object matches some installed volume populator or dynamic
  2977. provisioner.
  2978. This field will replace the functionality of the dataSource field and as such
  2979. if both fields are non-empty, they must have the same value. For backwards
  2980. compatibility, when namespace isn't specified in dataSourceRef,
  2981. both fields (dataSource and dataSourceRef) will be set to the same
  2982. value automatically if one of them is empty and the other is non-empty.
  2983. When namespace is specified in dataSourceRef,
  2984. dataSource isn't set to the same value and must be empty.
  2985. There are three important differences between dataSource and dataSourceRef:
  2986. * While dataSource only allows two specific types of objects, dataSourceRef
  2987. allows any non-core object, as well as PersistentVolumeClaim objects.
  2988. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  2989. preserves all values, and generates an error if a disallowed value is
  2990. specified.
  2991. * While dataSource only allows local objects, dataSourceRef allows objects
  2992. in any namespaces.
  2993. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  2994. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  2995. properties:
  2996. apiGroup:
  2997. description: |-
  2998. APIGroup is the group for the resource being referenced.
  2999. If APIGroup is not specified, the specified Kind must be in the core API group.
  3000. For any other third-party types, APIGroup is required.
  3001. type: string
  3002. kind:
  3003. description: Kind is the type of resource being referenced
  3004. type: string
  3005. name:
  3006. description: Name is the name of resource being referenced
  3007. type: string
  3008. namespace:
  3009. description: |-
  3010. Namespace is the namespace of resource being referenced
  3011. 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.
  3012. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  3013. type: string
  3014. required:
  3015. - kind
  3016. - name
  3017. type: object
  3018. resources:
  3019. description: |-
  3020. resources represents the minimum resources the volume should have.
  3021. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  3022. that are lower than previous value but must still be higher than capacity recorded in the
  3023. status field of the claim.
  3024. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  3025. properties:
  3026. limits:
  3027. additionalProperties:
  3028. anyOf:
  3029. - type: integer
  3030. - type: string
  3031. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3032. x-kubernetes-int-or-string: true
  3033. description: |-
  3034. Limits describes the maximum amount of compute resources allowed.
  3035. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3036. type: object
  3037. requests:
  3038. additionalProperties:
  3039. anyOf:
  3040. - type: integer
  3041. - type: string
  3042. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3043. x-kubernetes-int-or-string: true
  3044. description: |-
  3045. Requests describes the minimum amount of compute resources required.
  3046. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  3047. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  3048. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  3049. type: object
  3050. type: object
  3051. selector:
  3052. description: selector is a label query over volumes to
  3053. consider for binding.
  3054. properties:
  3055. matchExpressions:
  3056. description: matchExpressions is a list of label selector
  3057. requirements. The requirements are ANDed.
  3058. items:
  3059. description: |-
  3060. A label selector requirement is a selector that contains values, a key, and an operator that
  3061. relates the key and values.
  3062. properties:
  3063. key:
  3064. description: key is the label key that the selector
  3065. applies to.
  3066. type: string
  3067. operator:
  3068. description: |-
  3069. operator represents a key's relationship to a set of values.
  3070. Valid operators are In, NotIn, Exists and DoesNotExist.
  3071. type: string
  3072. values:
  3073. description: |-
  3074. values is an array of string values. If the operator is In or NotIn,
  3075. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  3076. the values array must be empty. This array is replaced during a strategic
  3077. merge patch.
  3078. items:
  3079. type: string
  3080. type: array
  3081. x-kubernetes-list-type: atomic
  3082. required:
  3083. - key
  3084. - operator
  3085. type: object
  3086. type: array
  3087. x-kubernetes-list-type: atomic
  3088. matchLabels:
  3089. additionalProperties:
  3090. type: string
  3091. description: |-
  3092. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  3093. map is equivalent to an element of matchExpressions, whose key field is "key", the
  3094. operator is "In", and the values array contains only "value". The requirements are ANDed.
  3095. type: object
  3096. type: object
  3097. x-kubernetes-map-type: atomic
  3098. storageClassName:
  3099. description: |-
  3100. storageClassName is the name of the StorageClass required by the claim.
  3101. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  3102. type: string
  3103. volumeAttributesClassName:
  3104. description: |-
  3105. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  3106. If specified, the CSI driver will create or update the volume with the attributes defined
  3107. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  3108. it can be changed after the claim is created. An empty string or nil value indicates that no
  3109. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  3110. this field can be reset to its previous value (including nil) to cancel the modification.
  3111. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  3112. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  3113. exists.
  3114. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  3115. type: string
  3116. volumeMode:
  3117. description: |-
  3118. volumeMode defines what type of volume is required by the claim.
  3119. Value of Filesystem is implied when not included in claim spec.
  3120. type: string
  3121. volumeName:
  3122. description: volumeName is the binding reference to the
  3123. PersistentVolume backing this claim.
  3124. type: string
  3125. type: object
  3126. required:
  3127. - spec
  3128. type: object
  3129. type: object
  3130. ephemeralVolumesSizeLimit:
  3131. description: |-
  3132. EphemeralVolumesSizeLimit allows the user to set the limits for the ephemeral
  3133. volumes
  3134. properties:
  3135. shm:
  3136. anyOf:
  3137. - type: integer
  3138. - type: string
  3139. description: Shm is the size limit of the shared memory volume
  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. temporaryData:
  3143. anyOf:
  3144. - type: integer
  3145. - type: string
  3146. description: TemporaryData is the size limit of the temporary
  3147. data volume
  3148. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3149. x-kubernetes-int-or-string: true
  3150. type: object
  3151. externalClusters:
  3152. description: The list of external clusters which are used in the configuration
  3153. items:
  3154. description: |-
  3155. ExternalCluster represents the connection parameters to an
  3156. external cluster which is used in the other sections of the configuration
  3157. properties:
  3158. barmanObjectStore:
  3159. description: The configuration for the barman-cloud tool suite
  3160. properties:
  3161. azureCredentials:
  3162. description: The credentials to use to upload data to Azure
  3163. Blob Storage
  3164. properties:
  3165. connectionString:
  3166. description: The connection string to be used
  3167. properties:
  3168. key:
  3169. description: The key to select
  3170. type: string
  3171. name:
  3172. description: Name of the referent.
  3173. type: string
  3174. required:
  3175. - key
  3176. - name
  3177. type: object
  3178. inheritFromAzureAD:
  3179. description: Use the Azure AD based authentication without
  3180. providing explicitly the keys.
  3181. type: boolean
  3182. storageAccount:
  3183. description: The storage account where to upload data
  3184. properties:
  3185. key:
  3186. description: The key to select
  3187. type: string
  3188. name:
  3189. description: Name of the referent.
  3190. type: string
  3191. required:
  3192. - key
  3193. - name
  3194. type: object
  3195. storageKey:
  3196. description: |-
  3197. The storage account key to be used in conjunction
  3198. with the storage account name
  3199. properties:
  3200. key:
  3201. description: The key to select
  3202. type: string
  3203. name:
  3204. description: Name of the referent.
  3205. type: string
  3206. required:
  3207. - key
  3208. - name
  3209. type: object
  3210. storageSasToken:
  3211. description: |-
  3212. A shared-access-signature to be used in conjunction with
  3213. the storage account name
  3214. properties:
  3215. key:
  3216. description: The key to select
  3217. type: string
  3218. name:
  3219. description: Name of the referent.
  3220. type: string
  3221. required:
  3222. - key
  3223. - name
  3224. type: object
  3225. type: object
  3226. data:
  3227. description: |-
  3228. The configuration to be used to backup the data files
  3229. When not defined, base backups files will be stored uncompressed and may
  3230. be unencrypted in the object store, according to the bucket default
  3231. policy.
  3232. properties:
  3233. additionalCommandArgs:
  3234. description: |-
  3235. AdditionalCommandArgs represents additional arguments that can be appended
  3236. to the 'barman-cloud-backup' command-line invocation. These arguments
  3237. provide flexibility to customize the backup process further according to
  3238. specific requirements or configurations.
  3239. Example:
  3240. In a scenario where specialized backup options are required, such as setting
  3241. a specific timeout or defining custom behavior, users can use this field
  3242. to specify additional command arguments.
  3243. Note:
  3244. It's essential to ensure that the provided arguments are valid and supported
  3245. by the 'barman-cloud-backup' command, to avoid potential errors or unintended
  3246. behavior during execution.
  3247. items:
  3248. type: string
  3249. type: array
  3250. compression:
  3251. description: |-
  3252. Compress a backup file (a tar file per tablespace) while streaming it
  3253. to the object store. Available options are empty string (no
  3254. compression, default), `gzip`, `bzip2`, and `snappy`.
  3255. enum:
  3256. - bzip2
  3257. - gzip
  3258. - snappy
  3259. type: string
  3260. encryption:
  3261. description: |-
  3262. Whenever to force the encryption of files (if the bucket is
  3263. not already configured for that).
  3264. Allowed options are empty string (use the bucket policy, default),
  3265. `AES256` and `aws:kms`
  3266. enum:
  3267. - AES256
  3268. - aws:kms
  3269. type: string
  3270. immediateCheckpoint:
  3271. description: |-
  3272. Control whether the I/O workload for the backup initial checkpoint will
  3273. be limited, according to the `checkpoint_completion_target` setting on
  3274. the PostgreSQL server. If set to true, an immediate checkpoint will be
  3275. used, meaning PostgreSQL will complete the checkpoint as soon as
  3276. possible. `false` by default.
  3277. type: boolean
  3278. jobs:
  3279. description: |-
  3280. The number of parallel jobs to be used to upload the backup, defaults
  3281. to 2
  3282. format: int32
  3283. minimum: 1
  3284. type: integer
  3285. type: object
  3286. destinationPath:
  3287. description: |-
  3288. The path where to store the backup (i.e. s3://bucket/path/to/folder)
  3289. this path, with different destination folders, will be used for WALs
  3290. and for data
  3291. minLength: 1
  3292. type: string
  3293. endpointCA:
  3294. description: |-
  3295. EndpointCA store the CA bundle of the barman endpoint.
  3296. Useful when using self-signed certificates to avoid
  3297. errors with certificate issuer and barman-cloud-wal-archive
  3298. properties:
  3299. key:
  3300. description: The key to select
  3301. type: string
  3302. name:
  3303. description: Name of the referent.
  3304. type: string
  3305. required:
  3306. - key
  3307. - name
  3308. type: object
  3309. endpointURL:
  3310. description: |-
  3311. Endpoint to be used to upload data to the cloud,
  3312. overriding the automatic endpoint discovery
  3313. type: string
  3314. googleCredentials:
  3315. description: The credentials to use to upload data to Google
  3316. Cloud Storage
  3317. properties:
  3318. applicationCredentials:
  3319. description: The secret containing the Google Cloud
  3320. Storage JSON file with the credentials
  3321. properties:
  3322. key:
  3323. description: The key to select
  3324. type: string
  3325. name:
  3326. description: Name of the referent.
  3327. type: string
  3328. required:
  3329. - key
  3330. - name
  3331. type: object
  3332. gkeEnvironment:
  3333. description: |-
  3334. If set to true, will presume that it's running inside a GKE environment,
  3335. default to false.
  3336. type: boolean
  3337. type: object
  3338. historyTags:
  3339. additionalProperties:
  3340. type: string
  3341. description: |-
  3342. HistoryTags is a list of key value pairs that will be passed to the
  3343. Barman --history-tags option.
  3344. type: object
  3345. s3Credentials:
  3346. description: The credentials to use to upload data to S3
  3347. properties:
  3348. accessKeyId:
  3349. description: The reference to the access key id
  3350. properties:
  3351. key:
  3352. description: The key to select
  3353. type: string
  3354. name:
  3355. description: Name of the referent.
  3356. type: string
  3357. required:
  3358. - key
  3359. - name
  3360. type: object
  3361. inheritFromIAMRole:
  3362. description: Use the role based authentication without
  3363. providing explicitly the keys.
  3364. type: boolean
  3365. region:
  3366. description: The reference to the secret containing
  3367. the region name
  3368. properties:
  3369. key:
  3370. description: The key to select
  3371. type: string
  3372. name:
  3373. description: Name of the referent.
  3374. type: string
  3375. required:
  3376. - key
  3377. - name
  3378. type: object
  3379. secretAccessKey:
  3380. description: The reference to the secret access key
  3381. properties:
  3382. key:
  3383. description: The key to select
  3384. type: string
  3385. name:
  3386. description: Name of the referent.
  3387. type: string
  3388. required:
  3389. - key
  3390. - name
  3391. type: object
  3392. sessionToken:
  3393. description: The references to the session key
  3394. properties:
  3395. key:
  3396. description: The key to select
  3397. type: string
  3398. name:
  3399. description: Name of the referent.
  3400. type: string
  3401. required:
  3402. - key
  3403. - name
  3404. type: object
  3405. type: object
  3406. serverName:
  3407. description: |-
  3408. The server name on S3, the cluster name is used if this
  3409. parameter is omitted
  3410. type: string
  3411. tags:
  3412. additionalProperties:
  3413. type: string
  3414. description: |-
  3415. Tags is a list of key value pairs that will be passed to the
  3416. Barman --tags option.
  3417. type: object
  3418. wal:
  3419. description: |-
  3420. The configuration for the backup of the WAL stream.
  3421. When not defined, WAL files will be stored uncompressed and may be
  3422. unencrypted in the object store, according to the bucket default policy.
  3423. properties:
  3424. archiveAdditionalCommandArgs:
  3425. description: |-
  3426. Additional arguments that can be appended to the 'barman-cloud-wal-archive'
  3427. command-line invocation. These arguments provide flexibility to customize
  3428. the WAL archive process further, according to specific requirements or configurations.
  3429. Example:
  3430. In a scenario where specialized backup options are required, such as setting
  3431. a specific timeout or defining custom behavior, users can use this field
  3432. to specify additional command arguments.
  3433. Note:
  3434. It's essential to ensure that the provided arguments are valid and supported
  3435. by the 'barman-cloud-wal-archive' command, to avoid potential errors or unintended
  3436. behavior during execution.
  3437. items:
  3438. type: string
  3439. type: array
  3440. compression:
  3441. description: |-
  3442. Compress a WAL file before sending it to the object store. Available
  3443. options are empty string (no compression, default), `gzip`, `bzip2`,
  3444. `lz4`, `snappy`, `xz`, and `zstd`.
  3445. enum:
  3446. - bzip2
  3447. - gzip
  3448. - lz4
  3449. - snappy
  3450. - xz
  3451. - zstd
  3452. type: string
  3453. encryption:
  3454. description: |-
  3455. Whenever to force the encryption of files (if the bucket is
  3456. not already configured for that).
  3457. Allowed options are empty string (use the bucket policy, default),
  3458. `AES256` and `aws:kms`
  3459. enum:
  3460. - AES256
  3461. - aws:kms
  3462. type: string
  3463. maxParallel:
  3464. description: |-
  3465. Number of WAL files to be either archived in parallel (when the
  3466. PostgreSQL instance is archiving to a backup object store) or
  3467. restored in parallel (when a PostgreSQL standby is fetching WAL
  3468. files from a recovery object store). If not specified, WAL files
  3469. will be processed one at a time. It accepts a positive integer as a
  3470. value - with 1 being the minimum accepted value.
  3471. minimum: 1
  3472. type: integer
  3473. restoreAdditionalCommandArgs:
  3474. description: |-
  3475. Additional arguments that can be appended to the 'barman-cloud-wal-restore'
  3476. command-line invocation. These arguments provide flexibility to customize
  3477. the WAL restore process further, according to specific requirements or configurations.
  3478. Example:
  3479. In a scenario where specialized backup options are required, such as setting
  3480. a specific timeout or defining custom behavior, users can use this field
  3481. to specify additional command arguments.
  3482. Note:
  3483. It's essential to ensure that the provided arguments are valid and supported
  3484. by the 'barman-cloud-wal-restore' command, to avoid potential errors or unintended
  3485. behavior during execution.
  3486. items:
  3487. type: string
  3488. type: array
  3489. type: object
  3490. required:
  3491. - destinationPath
  3492. type: object
  3493. connectionParameters:
  3494. additionalProperties:
  3495. type: string
  3496. description: The list of connection parameters, such as dbname,
  3497. host, username, etc
  3498. type: object
  3499. name:
  3500. description: The server name, required
  3501. type: string
  3502. password:
  3503. description: |-
  3504. The reference to the password to be used to connect to the server.
  3505. If a password is provided, CloudNativePG creates a PostgreSQL
  3506. passfile at `/controller/external/NAME/pass` (where "NAME" is the
  3507. cluster's name). This passfile is automatically referenced in the
  3508. connection string when establishing a connection to the remote
  3509. PostgreSQL server from the current PostgreSQL `Cluster`. This ensures
  3510. secure and efficient password management for external clusters.
  3511. properties:
  3512. key:
  3513. description: The key of the secret to select from. Must
  3514. be a valid secret key.
  3515. type: string
  3516. name:
  3517. default: ""
  3518. description: |-
  3519. Name of the referent.
  3520. This field is effectively required, but due to backwards compatibility is
  3521. allowed to be empty. Instances of this type with an empty value here are
  3522. almost certainly wrong.
  3523. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3524. type: string
  3525. optional:
  3526. description: Specify whether the Secret or its key must
  3527. be defined
  3528. type: boolean
  3529. required:
  3530. - key
  3531. type: object
  3532. x-kubernetes-map-type: atomic
  3533. plugin:
  3534. description: |-
  3535. The configuration of the plugin that is taking care
  3536. of WAL archiving and backups for this external cluster
  3537. properties:
  3538. enabled:
  3539. default: true
  3540. description: Enabled is true if this plugin will be used
  3541. type: boolean
  3542. isWALArchiver:
  3543. default: false
  3544. description: |-
  3545. Marks the plugin as the WAL archiver. At most one plugin can be
  3546. designated as a WAL archiver. This cannot be enabled if the
  3547. `.spec.backup.barmanObjectStore` configuration is present.
  3548. type: boolean
  3549. name:
  3550. description: Name is the plugin name
  3551. type: string
  3552. parameters:
  3553. additionalProperties:
  3554. type: string
  3555. description: Parameters is the configuration of the plugin
  3556. type: object
  3557. required:
  3558. - name
  3559. type: object
  3560. sslCert:
  3561. description: |-
  3562. The reference to an SSL certificate to be used to connect to this
  3563. instance
  3564. properties:
  3565. key:
  3566. description: The key of the secret to select from. Must
  3567. be a valid secret key.
  3568. type: string
  3569. name:
  3570. default: ""
  3571. description: |-
  3572. Name of the referent.
  3573. This field is effectively required, but due to backwards compatibility is
  3574. allowed to be empty. Instances of this type with an empty value here are
  3575. almost certainly wrong.
  3576. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3577. type: string
  3578. optional:
  3579. description: Specify whether the Secret or its key must
  3580. be defined
  3581. type: boolean
  3582. required:
  3583. - key
  3584. type: object
  3585. x-kubernetes-map-type: atomic
  3586. sslKey:
  3587. description: |-
  3588. The reference to an SSL private key to be used to connect to this
  3589. instance
  3590. properties:
  3591. key:
  3592. description: The key of the secret to select from. Must
  3593. be a valid secret key.
  3594. type: string
  3595. name:
  3596. default: ""
  3597. description: |-
  3598. Name of the referent.
  3599. This field is effectively required, but due to backwards compatibility is
  3600. allowed to be empty. Instances of this type with an empty value here are
  3601. almost certainly wrong.
  3602. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3603. type: string
  3604. optional:
  3605. description: Specify whether the Secret or its key must
  3606. be defined
  3607. type: boolean
  3608. required:
  3609. - key
  3610. type: object
  3611. x-kubernetes-map-type: atomic
  3612. sslRootCert:
  3613. description: |-
  3614. The reference to an SSL CA public key to be used to connect to this
  3615. instance
  3616. properties:
  3617. key:
  3618. description: The key of the secret to select from. Must
  3619. be a valid secret key.
  3620. type: string
  3621. name:
  3622. default: ""
  3623. description: |-
  3624. Name of the referent.
  3625. This field is effectively required, but due to backwards compatibility is
  3626. allowed to be empty. Instances of this type with an empty value here are
  3627. almost certainly wrong.
  3628. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  3629. type: string
  3630. optional:
  3631. description: Specify whether the Secret or its key must
  3632. be defined
  3633. type: boolean
  3634. required:
  3635. - key
  3636. type: object
  3637. x-kubernetes-map-type: atomic
  3638. required:
  3639. - name
  3640. type: object
  3641. type: array
  3642. failoverDelay:
  3643. default: 0
  3644. description: |-
  3645. The amount of time (in seconds) to wait before triggering a failover
  3646. after the primary PostgreSQL instance in the cluster was detected
  3647. to be unhealthy
  3648. format: int32
  3649. type: integer
  3650. imageCatalogRef:
  3651. description: Defines the major PostgreSQL version we want to use within
  3652. an ImageCatalog
  3653. properties:
  3654. apiGroup:
  3655. description: |-
  3656. APIGroup is the group for the resource being referenced.
  3657. If APIGroup is not specified, the specified Kind must be in the core API group.
  3658. For any other third-party types, APIGroup is required.
  3659. type: string
  3660. kind:
  3661. description: Kind is the type of resource being referenced
  3662. type: string
  3663. major:
  3664. description: The major version of PostgreSQL we want to use from
  3665. the ImageCatalog
  3666. type: integer
  3667. name:
  3668. description: Name is the name of resource being referenced
  3669. type: string
  3670. required:
  3671. - kind
  3672. - major
  3673. - name
  3674. type: object
  3675. x-kubernetes-map-type: atomic
  3676. x-kubernetes-validations:
  3677. - message: Only image catalogs are supported
  3678. rule: self.kind == 'ImageCatalog' || self.kind == 'ClusterImageCatalog'
  3679. - message: Only image catalogs are supported
  3680. rule: self.apiGroup == 'postgresql.cnpg.io'
  3681. imageName:
  3682. description: |-
  3683. Name of the container image, supporting both tags (`<image>:<tag>`)
  3684. and digests for deterministic and repeatable deployments
  3685. (`<image>:<tag>@sha256:<digestValue>`)
  3686. type: string
  3687. imagePullPolicy:
  3688. description: |-
  3689. Image pull policy.
  3690. One of `Always`, `Never` or `IfNotPresent`.
  3691. If not defined, it defaults to `IfNotPresent`.
  3692. Cannot be updated.
  3693. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  3694. type: string
  3695. imagePullSecrets:
  3696. description: The list of pull secrets to be used to pull the images
  3697. items:
  3698. description: |-
  3699. LocalObjectReference contains enough information to let you locate a
  3700. local object with a known type inside the same namespace
  3701. properties:
  3702. name:
  3703. description: Name of the referent.
  3704. type: string
  3705. required:
  3706. - name
  3707. type: object
  3708. type: array
  3709. inheritedMetadata:
  3710. description: Metadata that will be inherited by all objects related
  3711. to the Cluster
  3712. properties:
  3713. annotations:
  3714. additionalProperties:
  3715. type: string
  3716. type: object
  3717. labels:
  3718. additionalProperties:
  3719. type: string
  3720. type: object
  3721. type: object
  3722. instances:
  3723. default: 1
  3724. description: Number of instances required in the cluster
  3725. minimum: 1
  3726. type: integer
  3727. livenessProbeTimeout:
  3728. description: |-
  3729. LivenessProbeTimeout is the time (in seconds) that is allowed for a PostgreSQL instance
  3730. to successfully respond to the liveness probe (default 30).
  3731. The Liveness probe failure threshold is derived from this value using the formula:
  3732. ceiling(livenessProbe / 10).
  3733. format: int32
  3734. type: integer
  3735. logLevel:
  3736. default: info
  3737. description: 'The instances'' log level, one of the following values:
  3738. error, warning, info (default), debug, trace'
  3739. enum:
  3740. - error
  3741. - warning
  3742. - info
  3743. - debug
  3744. - trace
  3745. type: string
  3746. managed:
  3747. description: The configuration that is used by the portions of PostgreSQL
  3748. that are managed by the instance manager
  3749. properties:
  3750. roles:
  3751. description: Database roles managed by the `Cluster`
  3752. items:
  3753. description: |-
  3754. RoleConfiguration is the representation, in Kubernetes, of a PostgreSQL role
  3755. with the additional field Ensure specifying whether to ensure the presence or
  3756. absence of the role in the database
  3757. The defaults of the CREATE ROLE command are applied
  3758. Reference: https://www.postgresql.org/docs/current/sql-createrole.html
  3759. properties:
  3760. bypassrls:
  3761. description: |-
  3762. Whether a role bypasses every row-level security (RLS) policy.
  3763. Default is `false`.
  3764. type: boolean
  3765. comment:
  3766. description: Description of the role
  3767. type: string
  3768. connectionLimit:
  3769. default: -1
  3770. description: |-
  3771. If the role can log in, this specifies how many concurrent
  3772. connections the role can make. `-1` (the default) means no limit.
  3773. format: int64
  3774. type: integer
  3775. createdb:
  3776. description: |-
  3777. When set to `true`, the role being defined will be allowed to create
  3778. new databases. Specifying `false` (default) will deny a role the
  3779. ability to create databases.
  3780. type: boolean
  3781. createrole:
  3782. description: |-
  3783. Whether the role will be permitted to create, alter, drop, comment
  3784. on, change the security label for, and grant or revoke membership in
  3785. other roles. Default is `false`.
  3786. type: boolean
  3787. disablePassword:
  3788. description: DisablePassword indicates that a role's password
  3789. should be set to NULL in Postgres
  3790. type: boolean
  3791. ensure:
  3792. default: present
  3793. description: Ensure the role is `present` or `absent` -
  3794. defaults to "present"
  3795. enum:
  3796. - present
  3797. - absent
  3798. type: string
  3799. inRoles:
  3800. description: |-
  3801. List of one or more existing roles to which this role will be
  3802. immediately added as a new member. Default empty.
  3803. items:
  3804. type: string
  3805. type: array
  3806. inherit:
  3807. default: true
  3808. description: |-
  3809. Whether a role "inherits" the privileges of roles it is a member of.
  3810. Defaults is `true`.
  3811. type: boolean
  3812. login:
  3813. description: |-
  3814. Whether the role is allowed to log in. A role having the `login`
  3815. attribute can be thought of as a user. Roles without this attribute
  3816. are useful for managing database privileges, but are not users in
  3817. the usual sense of the word. Default is `false`.
  3818. type: boolean
  3819. name:
  3820. description: Name of the role
  3821. type: string
  3822. passwordSecret:
  3823. description: |-
  3824. Secret containing the password of the role (if present)
  3825. If null, the password will be ignored unless DisablePassword is set
  3826. properties:
  3827. name:
  3828. description: Name of the referent.
  3829. type: string
  3830. required:
  3831. - name
  3832. type: object
  3833. replication:
  3834. description: |-
  3835. Whether a role is a replication role. A role must have this
  3836. attribute (or be a superuser) in order to be able to connect to the
  3837. server in replication mode (physical or logical replication) and in
  3838. order to be able to create or drop replication slots. A role having
  3839. the `replication` attribute is a very highly privileged role, and
  3840. should only be used on roles actually used for replication. Default
  3841. is `false`.
  3842. type: boolean
  3843. superuser:
  3844. description: |-
  3845. Whether the role is a `superuser` who can override all access
  3846. restrictions within the database - superuser status is dangerous and
  3847. should be used only when really needed. You must yourself be a
  3848. superuser to create a new superuser. Defaults is `false`.
  3849. type: boolean
  3850. validUntil:
  3851. description: |-
  3852. Date and time after which the role's password is no longer valid.
  3853. When omitted, the password will never expire (default).
  3854. format: date-time
  3855. type: string
  3856. required:
  3857. - name
  3858. type: object
  3859. type: array
  3860. services:
  3861. description: Services roles managed by the `Cluster`
  3862. properties:
  3863. additional:
  3864. description: Additional is a list of additional managed services
  3865. specified by the user.
  3866. items:
  3867. description: |-
  3868. ManagedService represents a specific service managed by the cluster.
  3869. It includes the type of service and its associated template specification.
  3870. properties:
  3871. selectorType:
  3872. description: |-
  3873. SelectorType specifies the type of selectors that the service will have.
  3874. Valid values are "rw", "r", and "ro", representing read-write, read, and read-only services.
  3875. enum:
  3876. - rw
  3877. - r
  3878. - ro
  3879. type: string
  3880. serviceTemplate:
  3881. description: ServiceTemplate is the template specification
  3882. for the service.
  3883. properties:
  3884. metadata:
  3885. description: |-
  3886. Standard object's metadata.
  3887. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  3888. properties:
  3889. annotations:
  3890. additionalProperties:
  3891. type: string
  3892. description: |-
  3893. Annotations is an unstructured key value map stored with a resource that may be
  3894. set by external tools to store and retrieve arbitrary metadata. They are not
  3895. queryable and should be preserved when modifying objects.
  3896. More info: http://kubernetes.io/docs/user-guide/annotations
  3897. type: object
  3898. labels:
  3899. additionalProperties:
  3900. type: string
  3901. description: |-
  3902. Map of string keys and values that can be used to organize and categorize
  3903. (scope and select) objects. May match selectors of replication controllers
  3904. and services.
  3905. More info: http://kubernetes.io/docs/user-guide/labels
  3906. type: object
  3907. name:
  3908. description: The name of the resource. Only
  3909. supported for certain types
  3910. type: string
  3911. type: object
  3912. spec:
  3913. description: |-
  3914. Specification of the desired behavior of the service.
  3915. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  3916. properties:
  3917. allocateLoadBalancerNodePorts:
  3918. description: |-
  3919. allocateLoadBalancerNodePorts defines if NodePorts will be automatically
  3920. allocated for services with type LoadBalancer. Default is "true". It
  3921. may be set to "false" if the cluster load-balancer does not rely on
  3922. NodePorts. If the caller requests specific NodePorts (by specifying a
  3923. value), those requests will be respected, regardless of this field.
  3924. This field may only be set for services with type LoadBalancer and will
  3925. be cleared if the type is changed to any other type.
  3926. type: boolean
  3927. clusterIP:
  3928. description: |-
  3929. clusterIP is the IP address of the service and is usually assigned
  3930. randomly. If an address is specified manually, is in-range (as per
  3931. system configuration), and is not in use, it will be allocated to the
  3932. service; otherwise creation of the service will fail. This field may not
  3933. be changed through updates unless the type field is also being changed
  3934. to ExternalName (which requires this field to be blank) or the type
  3935. field is being changed from ExternalName (in which case this field may
  3936. optionally be specified, as describe above). Valid values are "None",
  3937. empty string (""), or a valid IP address. Setting this to "None" makes a
  3938. "headless service" (no virtual IP), which is useful when direct endpoint
  3939. connections are preferred and proxying is not required. Only applies to
  3940. types ClusterIP, NodePort, and LoadBalancer. If this field is specified
  3941. when creating a Service of type ExternalName, creation will fail. This
  3942. field will be wiped when updating a Service to type ExternalName.
  3943. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  3944. type: string
  3945. clusterIPs:
  3946. description: |-
  3947. ClusterIPs is a list of IP addresses assigned to this service, and are
  3948. usually assigned randomly. If an address is specified manually, is
  3949. in-range (as per system configuration), and is not in use, it will be
  3950. allocated to the service; otherwise creation of the service will fail.
  3951. This field may not be changed through updates unless the type field is
  3952. also being changed to ExternalName (which requires this field to be
  3953. empty) or the type field is being changed from ExternalName (in which
  3954. case this field may optionally be specified, as describe above). Valid
  3955. values are "None", empty string (""), or a valid IP address. Setting
  3956. this to "None" makes a "headless service" (no virtual IP), which is
  3957. useful when direct endpoint connections are preferred and proxying is
  3958. not required. Only applies to types ClusterIP, NodePort, and
  3959. LoadBalancer. If this field is specified when creating a Service of type
  3960. ExternalName, creation will fail. This field will be wiped when updating
  3961. a Service to type ExternalName. If this field is not specified, it will
  3962. be initialized from the clusterIP field. If this field is specified,
  3963. clients must ensure that clusterIPs[0] and clusterIP have the same
  3964. value.
  3965. This field may hold a maximum of two entries (dual-stack IPs, in either order).
  3966. These IPs must correspond to the values of the ipFamilies field. Both
  3967. clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
  3968. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  3969. items:
  3970. type: string
  3971. type: array
  3972. x-kubernetes-list-type: atomic
  3973. externalIPs:
  3974. description: |-
  3975. externalIPs is a list of IP addresses for which nodes in the cluster
  3976. will also accept traffic for this service. These IPs are not managed by
  3977. Kubernetes. The user is responsible for ensuring that traffic arrives
  3978. at a node with this IP. A common example is external load-balancers
  3979. that are not part of the Kubernetes system.
  3980. items:
  3981. type: string
  3982. type: array
  3983. x-kubernetes-list-type: atomic
  3984. externalName:
  3985. description: |-
  3986. externalName is the external reference that discovery mechanisms will
  3987. return as an alias for this service (e.g. a DNS CNAME record). No
  3988. proxying will be involved. Must be a lowercase RFC-1123 hostname
  3989. (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName".
  3990. type: string
  3991. externalTrafficPolicy:
  3992. description: |-
  3993. externalTrafficPolicy describes how nodes distribute service traffic they
  3994. receive on one of the Service's "externally-facing" addresses (NodePorts,
  3995. ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure
  3996. the service in a way that assumes that external load balancers will take care
  3997. of balancing the service traffic between nodes, and so each node will deliver
  3998. traffic only to the node-local endpoints of the service, without masquerading
  3999. the client source IP. (Traffic mistakenly sent to a node with no endpoints will
  4000. be dropped.) The default value, "Cluster", uses the standard behavior of
  4001. routing to all endpoints evenly (possibly modified by topology and other
  4002. features). Note that traffic sent to an External IP or LoadBalancer IP from
  4003. within the cluster will always get "Cluster" semantics, but clients sending to
  4004. a NodePort from within the cluster may need to take traffic policy into account
  4005. when picking a node.
  4006. type: string
  4007. healthCheckNodePort:
  4008. description: |-
  4009. healthCheckNodePort specifies the healthcheck nodePort for the service.
  4010. This only applies when type is set to LoadBalancer and
  4011. externalTrafficPolicy is set to Local. If a value is specified, is
  4012. in-range, and is not in use, it will be used. If not specified, a value
  4013. will be automatically allocated. External systems (e.g. load-balancers)
  4014. can use this port to determine if a given node holds endpoints for this
  4015. service or not. If this field is specified when creating a Service
  4016. which does not need it, creation will fail. This field will be wiped
  4017. when updating a Service to no longer need it (e.g. changing type).
  4018. This field cannot be updated once set.
  4019. format: int32
  4020. type: integer
  4021. internalTrafficPolicy:
  4022. description: |-
  4023. InternalTrafficPolicy describes how nodes distribute service traffic they
  4024. receive on the ClusterIP. If set to "Local", the proxy will assume that pods
  4025. only want to talk to endpoints of the service on the same node as the pod,
  4026. dropping the traffic if there are no local endpoints. The default value,
  4027. "Cluster", uses the standard behavior of routing to all endpoints evenly
  4028. (possibly modified by topology and other features).
  4029. type: string
  4030. ipFamilies:
  4031. description: |-
  4032. IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this
  4033. service. This field is usually assigned automatically based on cluster
  4034. configuration and the ipFamilyPolicy field. If this field is specified
  4035. manually, the requested family is available in the cluster,
  4036. and ipFamilyPolicy allows it, it will be used; otherwise creation of
  4037. the service will fail. This field is conditionally mutable: it allows
  4038. for adding or removing a secondary IP family, but it does not allow
  4039. changing the primary IP family of the Service. Valid values are "IPv4"
  4040. and "IPv6". This field only applies to Services of types ClusterIP,
  4041. NodePort, and LoadBalancer, and does apply to "headless" services.
  4042. This field will be wiped when updating a Service to type ExternalName.
  4043. This field may hold a maximum of two entries (dual-stack families, in
  4044. either order). These families must correspond to the values of the
  4045. clusterIPs field, if specified. Both clusterIPs and ipFamilies are
  4046. governed by the ipFamilyPolicy field.
  4047. items:
  4048. description: |-
  4049. IPFamily represents the IP Family (IPv4 or IPv6). This type is used
  4050. to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).
  4051. type: string
  4052. type: array
  4053. x-kubernetes-list-type: atomic
  4054. ipFamilyPolicy:
  4055. description: |-
  4056. IPFamilyPolicy represents the dual-stack-ness requested or required by
  4057. this Service. If there is no value provided, then this field will be set
  4058. to SingleStack. Services can be "SingleStack" (a single IP family),
  4059. "PreferDualStack" (two IP families on dual-stack configured clusters or
  4060. a single IP family on single-stack clusters), or "RequireDualStack"
  4061. (two IP families on dual-stack configured clusters, otherwise fail). The
  4062. ipFamilies and clusterIPs fields depend on the value of this field. This
  4063. field will be wiped when updating a service to type ExternalName.
  4064. type: string
  4065. loadBalancerClass:
  4066. description: |-
  4067. loadBalancerClass is the class of the load balancer implementation this Service belongs to.
  4068. If specified, the value of this field must be a label-style identifier, with an optional prefix,
  4069. e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users.
  4070. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load
  4071. balancer implementation is used, today this is typically done through the cloud provider integration,
  4072. but should apply for any default implementation. If set, it is assumed that a load balancer
  4073. implementation is watching for Services with a matching class. Any default load balancer
  4074. implementation (e.g. cloud providers) should ignore Services that set this field.
  4075. This field can only be set when creating or updating a Service to type 'LoadBalancer'.
  4076. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.
  4077. type: string
  4078. loadBalancerIP:
  4079. description: |-
  4080. Only applies to Service Type: LoadBalancer.
  4081. This feature depends on whether the underlying cloud-provider supports specifying
  4082. the loadBalancerIP when a load balancer is created.
  4083. This field will be ignored if the cloud-provider does not support the feature.
  4084. Deprecated: This field was under-specified and its meaning varies across implementations.
  4085. Using it is non-portable and it may not support dual-stack.
  4086. Users are encouraged to use implementation-specific annotations when available.
  4087. type: string
  4088. loadBalancerSourceRanges:
  4089. description: |-
  4090. If specified and supported by the platform, this will restrict traffic through the cloud-provider
  4091. load-balancer will be restricted to the specified client IPs. This field will be ignored if the
  4092. cloud-provider does not support the feature."
  4093. More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
  4094. items:
  4095. type: string
  4096. type: array
  4097. x-kubernetes-list-type: atomic
  4098. ports:
  4099. description: |-
  4100. The list of ports that are exposed by this service.
  4101. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  4102. items:
  4103. description: ServicePort contains information
  4104. on service's port.
  4105. properties:
  4106. appProtocol:
  4107. description: |-
  4108. The application protocol for this port.
  4109. This is used as a hint for implementations to offer richer behavior for protocols that they understand.
  4110. This field follows standard Kubernetes label syntax.
  4111. Valid values are either:
  4112. * Un-prefixed protocol names - reserved for IANA standard service names (as per
  4113. RFC-6335 and https://www.iana.org/assignments/service-names).
  4114. * Kubernetes-defined prefixed names:
  4115. * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
  4116. * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455
  4117. * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
  4118. * Other protocols should use implementation-defined prefixed names such as
  4119. mycompany.com/my-custom-protocol.
  4120. type: string
  4121. name:
  4122. description: |-
  4123. The name of this port within the service. This must be a DNS_LABEL.
  4124. All ports within a ServiceSpec must have unique names. When considering
  4125. the endpoints for a Service, this must match the 'name' field in the
  4126. EndpointPort.
  4127. Optional if only one ServicePort is defined on this service.
  4128. type: string
  4129. nodePort:
  4130. description: |-
  4131. The port on each node on which this service is exposed when type is
  4132. NodePort or LoadBalancer. Usually assigned by the system. If a value is
  4133. specified, in-range, and not in use it will be used, otherwise the
  4134. operation will fail. If not specified, a port will be allocated if this
  4135. Service requires one. If this field is specified when creating a
  4136. Service which does not need it, creation will fail. This field will be
  4137. wiped when updating a Service to no longer need it (e.g. changing type
  4138. from NodePort to ClusterIP).
  4139. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  4140. format: int32
  4141. type: integer
  4142. port:
  4143. description: The port that will be exposed
  4144. by this service.
  4145. format: int32
  4146. type: integer
  4147. protocol:
  4148. default: TCP
  4149. description: |-
  4150. The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
  4151. Default is TCP.
  4152. type: string
  4153. targetPort:
  4154. anyOf:
  4155. - type: integer
  4156. - type: string
  4157. description: |-
  4158. Number or name of the port to access on the pods targeted by the service.
  4159. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  4160. If this is a string, it will be looked up as a named port in the
  4161. target Pod's container ports. If this is not specified, the value
  4162. of the 'port' field is used (an identity map).
  4163. This field is ignored for services with clusterIP=None, and should be
  4164. omitted or set equal to the 'port' field.
  4165. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
  4166. x-kubernetes-int-or-string: true
  4167. required:
  4168. - port
  4169. type: object
  4170. type: array
  4171. x-kubernetes-list-map-keys:
  4172. - port
  4173. - protocol
  4174. x-kubernetes-list-type: map
  4175. publishNotReadyAddresses:
  4176. description: |-
  4177. publishNotReadyAddresses indicates that any agent which deals with endpoints for this
  4178. Service should disregard any indications of ready/not-ready.
  4179. The primary use case for setting this field is for a StatefulSet's Headless Service to
  4180. propagate SRV DNS records for its Pods for the purpose of peer discovery.
  4181. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
  4182. Services interpret this to mean that all endpoints are considered "ready" even if the
  4183. Pods themselves are not. Agents which consume only Kubernetes generated endpoints
  4184. through the Endpoints or EndpointSlice resources can safely assume this behavior.
  4185. type: boolean
  4186. selector:
  4187. additionalProperties:
  4188. type: string
  4189. description: |-
  4190. Route service traffic to pods with label keys and values matching this
  4191. selector. If empty or not present, the service is assumed to have an
  4192. external process managing its endpoints, which Kubernetes will not
  4193. modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
  4194. Ignored if type is ExternalName.
  4195. More info: https://kubernetes.io/docs/concepts/services-networking/service/
  4196. type: object
  4197. x-kubernetes-map-type: atomic
  4198. sessionAffinity:
  4199. description: |-
  4200. Supports "ClientIP" and "None". Used to maintain session affinity.
  4201. Enable client IP based session affinity.
  4202. Must be ClientIP or None.
  4203. Defaults to None.
  4204. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  4205. type: string
  4206. sessionAffinityConfig:
  4207. description: sessionAffinityConfig contains
  4208. the configurations of session affinity.
  4209. properties:
  4210. clientIP:
  4211. description: clientIP contains the configurations
  4212. of Client IP based session affinity.
  4213. properties:
  4214. timeoutSeconds:
  4215. description: |-
  4216. timeoutSeconds specifies the seconds of ClientIP type session sticky time.
  4217. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP".
  4218. Default value is 10800(for 3 hours).
  4219. format: int32
  4220. type: integer
  4221. type: object
  4222. type: object
  4223. trafficDistribution:
  4224. description: |-
  4225. TrafficDistribution offers a way to express preferences for how traffic
  4226. is distributed to Service endpoints. Implementations can use this field
  4227. as a hint, but are not required to guarantee strict adherence. If the
  4228. field is not set, the implementation will apply its default routing
  4229. strategy. If set to "PreferClose", implementations should prioritize
  4230. endpoints that are in the same zone.
  4231. type: string
  4232. type:
  4233. description: |-
  4234. type determines how the Service is exposed. Defaults to ClusterIP. Valid
  4235. options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
  4236. "ClusterIP" allocates a cluster-internal IP address for load-balancing
  4237. to endpoints. Endpoints are determined by the selector or if that is not
  4238. specified, by manual construction of an Endpoints object or
  4239. EndpointSlice objects. If clusterIP is "None", no virtual IP is
  4240. allocated and the endpoints are published as a set of endpoints rather
  4241. than a virtual IP.
  4242. "NodePort" builds on ClusterIP and allocates a port on every node which
  4243. routes to the same endpoints as the clusterIP.
  4244. "LoadBalancer" builds on NodePort and creates an external load-balancer
  4245. (if supported in the current cloud) which routes to the same endpoints
  4246. as the clusterIP.
  4247. "ExternalName" aliases this service to the specified externalName.
  4248. Several other fields do not apply to ExternalName services.
  4249. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
  4250. type: string
  4251. type: object
  4252. type: object
  4253. updateStrategy:
  4254. default: patch
  4255. description: UpdateStrategy describes how the service
  4256. differences should be reconciled
  4257. enum:
  4258. - patch
  4259. - replace
  4260. type: string
  4261. required:
  4262. - selectorType
  4263. - serviceTemplate
  4264. type: object
  4265. type: array
  4266. disabledDefaultServices:
  4267. description: |-
  4268. DisabledDefaultServices is a list of service types that are disabled by default.
  4269. Valid values are "r", and "ro", representing read, and read-only services.
  4270. items:
  4271. description: |-
  4272. ServiceSelectorType describes a valid value for generating the service selectors.
  4273. It indicates which type of service the selector applies to, such as read-write, read, or read-only
  4274. enum:
  4275. - rw
  4276. - r
  4277. - ro
  4278. type: string
  4279. type: array
  4280. type: object
  4281. type: object
  4282. maxSyncReplicas:
  4283. default: 0
  4284. description: |-
  4285. The target value for the synchronous replication quorum, that can be
  4286. decreased if the number of ready standbys is lower than this.
  4287. Undefined or 0 disable synchronous replication.
  4288. minimum: 0
  4289. type: integer
  4290. minSyncReplicas:
  4291. default: 0
  4292. description: |-
  4293. Minimum number of instances required in synchronous replication with the
  4294. primary. Undefined or 0 allow writes to complete when no standby is
  4295. available.
  4296. minimum: 0
  4297. type: integer
  4298. monitoring:
  4299. description: The configuration of the monitoring infrastructure of
  4300. this cluster
  4301. properties:
  4302. customQueriesConfigMap:
  4303. description: The list of config maps containing the custom queries
  4304. items:
  4305. description: |-
  4306. ConfigMapKeySelector contains enough information to let you locate
  4307. the key of a ConfigMap
  4308. properties:
  4309. key:
  4310. description: The key to select
  4311. type: string
  4312. name:
  4313. description: Name of the referent.
  4314. type: string
  4315. required:
  4316. - key
  4317. - name
  4318. type: object
  4319. type: array
  4320. customQueriesSecret:
  4321. description: The list of secrets containing the custom queries
  4322. items:
  4323. description: |-
  4324. SecretKeySelector contains enough information to let you locate
  4325. the key of a Secret
  4326. properties:
  4327. key:
  4328. description: The key to select
  4329. type: string
  4330. name:
  4331. description: Name of the referent.
  4332. type: string
  4333. required:
  4334. - key
  4335. - name
  4336. type: object
  4337. type: array
  4338. disableDefaultQueries:
  4339. default: false
  4340. description: |-
  4341. Whether the default queries should be injected.
  4342. Set it to `true` if you don't want to inject default queries into the cluster.
  4343. Default: false.
  4344. type: boolean
  4345. enablePodMonitor:
  4346. default: false
  4347. description: |-
  4348. Enable or disable the `PodMonitor`
  4349. Deprecated: This feature will be removed in an upcoming release. If
  4350. you need this functionality, you can create a PodMonitor manually.
  4351. type: boolean
  4352. metricsQueriesTTL:
  4353. description: |-
  4354. The interval during which metrics computed from queries are considered current.
  4355. Once it is exceeded, a new scrape will trigger a rerun
  4356. of the queries.
  4357. If not set, defaults to 30 seconds, in line with Prometheus scraping defaults.
  4358. Setting this to zero disables the caching mechanism and can cause heavy load on the PostgreSQL server.
  4359. type: string
  4360. podMonitorMetricRelabelings:
  4361. description: |-
  4362. The list of metric relabelings for the `PodMonitor`. Applied to samples before ingestion.
  4363. Deprecated: This feature will be removed in an upcoming release. If
  4364. you need this functionality, you can create a PodMonitor manually.
  4365. items:
  4366. description: |-
  4367. RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
  4368. scraped samples and remote write samples.
  4369. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
  4370. properties:
  4371. action:
  4372. default: replace
  4373. description: |-
  4374. action to perform based on the regex matching.
  4375. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
  4376. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
  4377. Default: "Replace"
  4378. enum:
  4379. - replace
  4380. - Replace
  4381. - keep
  4382. - Keep
  4383. - drop
  4384. - Drop
  4385. - hashmod
  4386. - HashMod
  4387. - labelmap
  4388. - LabelMap
  4389. - labeldrop
  4390. - LabelDrop
  4391. - labelkeep
  4392. - LabelKeep
  4393. - lowercase
  4394. - Lowercase
  4395. - uppercase
  4396. - Uppercase
  4397. - keepequal
  4398. - KeepEqual
  4399. - dropequal
  4400. - DropEqual
  4401. type: string
  4402. modulus:
  4403. description: |-
  4404. modulus to take of the hash of the source label values.
  4405. Only applicable when the action is `HashMod`.
  4406. format: int64
  4407. type: integer
  4408. regex:
  4409. description: regex defines the regular expression against
  4410. which the extracted value is matched.
  4411. type: string
  4412. replacement:
  4413. description: |-
  4414. replacement value against which a Replace action is performed if the
  4415. regular expression matches.
  4416. Regex capture groups are available.
  4417. type: string
  4418. separator:
  4419. description: separator defines the string between concatenated
  4420. SourceLabels.
  4421. type: string
  4422. sourceLabels:
  4423. description: |-
  4424. sourceLabels defines the source labels select values from existing labels. Their content is
  4425. concatenated using the configured Separator and matched against the
  4426. configured regular expression.
  4427. items:
  4428. description: |-
  4429. LabelName is a valid Prometheus label name.
  4430. For Prometheus 3.x, a label name is valid if it contains UTF-8 characters.
  4431. For Prometheus 2.x, a label name is only valid if it contains ASCII characters, letters, numbers, as well as underscores.
  4432. type: string
  4433. type: array
  4434. targetLabel:
  4435. description: |-
  4436. targetLabel defines the label to which the resulting string is written in a replacement.
  4437. It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
  4438. `KeepEqual` and `DropEqual` actions.
  4439. Regex capture groups are available.
  4440. type: string
  4441. type: object
  4442. type: array
  4443. podMonitorRelabelings:
  4444. description: |-
  4445. The list of relabelings for the `PodMonitor`. Applied to samples before scraping.
  4446. Deprecated: This feature will be removed in an upcoming release. If
  4447. you need this functionality, you can create a PodMonitor manually.
  4448. items:
  4449. description: |-
  4450. RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
  4451. scraped samples and remote write samples.
  4452. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
  4453. properties:
  4454. action:
  4455. default: replace
  4456. description: |-
  4457. action to perform based on the regex matching.
  4458. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
  4459. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
  4460. Default: "Replace"
  4461. enum:
  4462. - replace
  4463. - Replace
  4464. - keep
  4465. - Keep
  4466. - drop
  4467. - Drop
  4468. - hashmod
  4469. - HashMod
  4470. - labelmap
  4471. - LabelMap
  4472. - labeldrop
  4473. - LabelDrop
  4474. - labelkeep
  4475. - LabelKeep
  4476. - lowercase
  4477. - Lowercase
  4478. - uppercase
  4479. - Uppercase
  4480. - keepequal
  4481. - KeepEqual
  4482. - dropequal
  4483. - DropEqual
  4484. type: string
  4485. modulus:
  4486. description: |-
  4487. modulus to take of the hash of the source label values.
  4488. Only applicable when the action is `HashMod`.
  4489. format: int64
  4490. type: integer
  4491. regex:
  4492. description: regex defines the regular expression against
  4493. which the extracted value is matched.
  4494. type: string
  4495. replacement:
  4496. description: |-
  4497. replacement value against which a Replace action is performed if the
  4498. regular expression matches.
  4499. Regex capture groups are available.
  4500. type: string
  4501. separator:
  4502. description: separator defines the string between concatenated
  4503. SourceLabels.
  4504. type: string
  4505. sourceLabels:
  4506. description: |-
  4507. sourceLabels defines the source labels select values from existing labels. Their content is
  4508. concatenated using the configured Separator and matched against the
  4509. configured regular expression.
  4510. items:
  4511. description: |-
  4512. LabelName is a valid Prometheus label name.
  4513. For Prometheus 3.x, a label name is valid if it contains UTF-8 characters.
  4514. For Prometheus 2.x, a label name is only valid if it contains ASCII characters, letters, numbers, as well as underscores.
  4515. type: string
  4516. type: array
  4517. targetLabel:
  4518. description: |-
  4519. targetLabel defines the label to which the resulting string is written in a replacement.
  4520. It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
  4521. `KeepEqual` and `DropEqual` actions.
  4522. Regex capture groups are available.
  4523. type: string
  4524. type: object
  4525. type: array
  4526. tls:
  4527. description: |-
  4528. Configure TLS communication for the metrics endpoint.
  4529. Changing tls.enabled option will force a rollout of all instances.
  4530. properties:
  4531. enabled:
  4532. default: false
  4533. description: |-
  4534. Enable TLS for the monitoring endpoint.
  4535. Changing this option will force a rollout of all instances.
  4536. type: boolean
  4537. type: object
  4538. type: object
  4539. nodeMaintenanceWindow:
  4540. description: Define a maintenance window for the Kubernetes nodes
  4541. properties:
  4542. inProgress:
  4543. default: false
  4544. description: Is there a node maintenance activity in progress?
  4545. type: boolean
  4546. reusePVC:
  4547. default: true
  4548. description: |-
  4549. Reuse the existing PVC (wait for the node to come
  4550. up again) or not (recreate it elsewhere - when `instances` >1)
  4551. type: boolean
  4552. type: object
  4553. plugins:
  4554. description: |-
  4555. The plugins configuration, containing
  4556. any plugin to be loaded with the corresponding configuration
  4557. items:
  4558. description: |-
  4559. PluginConfiguration specifies a plugin that need to be loaded for this
  4560. cluster to be reconciled
  4561. properties:
  4562. enabled:
  4563. default: true
  4564. description: Enabled is true if this plugin will be used
  4565. type: boolean
  4566. isWALArchiver:
  4567. default: false
  4568. description: |-
  4569. Marks the plugin as the WAL archiver. At most one plugin can be
  4570. designated as a WAL archiver. This cannot be enabled if the
  4571. `.spec.backup.barmanObjectStore` configuration is present.
  4572. type: boolean
  4573. name:
  4574. description: Name is the plugin name
  4575. type: string
  4576. parameters:
  4577. additionalProperties:
  4578. type: string
  4579. description: Parameters is the configuration of the plugin
  4580. type: object
  4581. required:
  4582. - name
  4583. type: object
  4584. type: array
  4585. podSecurityContext:
  4586. description: |-
  4587. Override the PodSecurityContext applied to every Pod of the cluster.
  4588. When set, this overrides the operator's default PodSecurityContext for the cluster.
  4589. If omitted, the operator defaults are used.
  4590. This field doesn't have any effect if SecurityContextConstraints are present.
  4591. properties:
  4592. appArmorProfile:
  4593. description: |-
  4594. appArmorProfile is the AppArmor options to use by the containers in this pod.
  4595. Note that this field cannot be set when spec.os.name is windows.
  4596. properties:
  4597. localhostProfile:
  4598. description: |-
  4599. localhostProfile indicates a profile loaded on the node that should be used.
  4600. The profile must be preconfigured on the node to work.
  4601. Must match the loaded name of the profile.
  4602. Must be set if and only if type is "Localhost".
  4603. type: string
  4604. type:
  4605. description: |-
  4606. type indicates which kind of AppArmor profile will be applied.
  4607. Valid options are:
  4608. Localhost - a profile pre-loaded on the node.
  4609. RuntimeDefault - the container runtime's default profile.
  4610. Unconfined - no AppArmor enforcement.
  4611. type: string
  4612. required:
  4613. - type
  4614. type: object
  4615. fsGroup:
  4616. description: |-
  4617. A special supplemental group that applies to all containers in a pod.
  4618. Some volume types allow the Kubelet to change the ownership of that volume
  4619. to be owned by the pod:
  4620. 1. The owning GID will be the FSGroup
  4621. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  4622. 3. The permission bits are OR'd with rw-rw----
  4623. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  4624. Note that this field cannot be set when spec.os.name is windows.
  4625. format: int64
  4626. type: integer
  4627. fsGroupChangePolicy:
  4628. description: |-
  4629. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  4630. before being exposed inside Pod. This field will only apply to
  4631. volume types which support fsGroup based ownership(and permissions).
  4632. It will have no effect on ephemeral volume types such as: secret, configmaps
  4633. and emptydir.
  4634. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  4635. Note that this field cannot be set when spec.os.name is windows.
  4636. type: string
  4637. runAsGroup:
  4638. description: |-
  4639. The GID to run the entrypoint of the container process.
  4640. Uses runtime default if unset.
  4641. May also be set in SecurityContext. If set in both SecurityContext and
  4642. PodSecurityContext, the value specified in SecurityContext takes precedence
  4643. for that container.
  4644. Note that this field cannot be set when spec.os.name is windows.
  4645. format: int64
  4646. type: integer
  4647. runAsNonRoot:
  4648. description: |-
  4649. Indicates that the container must run as a non-root user.
  4650. If true, the Kubelet will validate the image at runtime to ensure that it
  4651. does not run as UID 0 (root) and fail to start the container if it does.
  4652. If unset or false, no such validation will be performed.
  4653. May also be set in SecurityContext. If set in both SecurityContext and
  4654. PodSecurityContext, the value specified in SecurityContext takes precedence.
  4655. type: boolean
  4656. runAsUser:
  4657. description: |-
  4658. The UID to run the entrypoint of the container process.
  4659. Defaults to user specified in image metadata if unspecified.
  4660. May also be set in SecurityContext. If set in both SecurityContext and
  4661. PodSecurityContext, the value specified in SecurityContext takes precedence
  4662. for that container.
  4663. Note that this field cannot be set when spec.os.name is windows.
  4664. format: int64
  4665. type: integer
  4666. seLinuxChangePolicy:
  4667. description: |-
  4668. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  4669. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  4670. Valid values are "MountOption" and "Recursive".
  4671. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  4672. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  4673. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  4674. This requires all Pods that share the same volume to use the same SELinux label.
  4675. It is not possible to share the same volume among privileged and unprivileged Pods.
  4676. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  4677. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  4678. CSIDriver instance. Other volumes are always re-labelled recursively.
  4679. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  4680. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  4681. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  4682. and "Recursive" for all other volumes.
  4683. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  4684. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  4685. Note that this field cannot be set when spec.os.name is windows.
  4686. type: string
  4687. seLinuxOptions:
  4688. description: |-
  4689. The SELinux context to be applied to all containers.
  4690. If unspecified, the container runtime will allocate a random SELinux context for each
  4691. container. May also be set in SecurityContext. If set in
  4692. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  4693. takes precedence for that container.
  4694. Note that this field cannot be set when spec.os.name is windows.
  4695. properties:
  4696. level:
  4697. description: Level is SELinux level label that applies to
  4698. the container.
  4699. type: string
  4700. role:
  4701. description: Role is a SELinux role label that applies to
  4702. the container.
  4703. type: string
  4704. type:
  4705. description: Type is a SELinux type label that applies to
  4706. the container.
  4707. type: string
  4708. user:
  4709. description: User is a SELinux user label that applies to
  4710. the container.
  4711. type: string
  4712. type: object
  4713. seccompProfile:
  4714. description: |-
  4715. The seccomp options to use by the containers in this pod.
  4716. Note that this field cannot be set when spec.os.name is windows.
  4717. properties:
  4718. localhostProfile:
  4719. description: |-
  4720. localhostProfile indicates a profile defined in a file on the node should be used.
  4721. The profile must be preconfigured on the node to work.
  4722. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  4723. Must be set if type is "Localhost". Must NOT be set for any other type.
  4724. type: string
  4725. type:
  4726. description: |-
  4727. type indicates which kind of seccomp profile will be applied.
  4728. Valid options are:
  4729. Localhost - a profile defined in a file on the node should be used.
  4730. RuntimeDefault - the container runtime default profile should be used.
  4731. Unconfined - no profile should be applied.
  4732. type: string
  4733. required:
  4734. - type
  4735. type: object
  4736. supplementalGroups:
  4737. description: |-
  4738. A list of groups applied to the first process run in each container, in
  4739. addition to the container's primary GID and fsGroup (if specified). If
  4740. the SupplementalGroupsPolicy feature is enabled, the
  4741. supplementalGroupsPolicy field determines whether these are in addition
  4742. to or instead of any group memberships defined in the container image.
  4743. If unspecified, no additional groups are added, though group memberships
  4744. defined in the container image may still be used, depending on the
  4745. supplementalGroupsPolicy field.
  4746. Note that this field cannot be set when spec.os.name is windows.
  4747. items:
  4748. format: int64
  4749. type: integer
  4750. type: array
  4751. x-kubernetes-list-type: atomic
  4752. supplementalGroupsPolicy:
  4753. description: |-
  4754. Defines how supplemental groups of the first container processes are calculated.
  4755. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  4756. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  4757. and the container runtime must implement support for this feature.
  4758. Note that this field cannot be set when spec.os.name is windows.
  4759. type: string
  4760. sysctls:
  4761. description: |-
  4762. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  4763. sysctls (by the container runtime) might fail to launch.
  4764. Note that this field cannot be set when spec.os.name is windows.
  4765. items:
  4766. description: Sysctl defines a kernel parameter to be set
  4767. properties:
  4768. name:
  4769. description: Name of a property to set
  4770. type: string
  4771. value:
  4772. description: Value of a property to set
  4773. type: string
  4774. required:
  4775. - name
  4776. - value
  4777. type: object
  4778. type: array
  4779. x-kubernetes-list-type: atomic
  4780. windowsOptions:
  4781. description: |-
  4782. The Windows specific settings applied to all containers.
  4783. If unspecified, the options within a container's SecurityContext will be used.
  4784. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  4785. Note that this field cannot be set when spec.os.name is linux.
  4786. properties:
  4787. gmsaCredentialSpec:
  4788. description: |-
  4789. GMSACredentialSpec is where the GMSA admission webhook
  4790. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  4791. GMSA credential spec named by the GMSACredentialSpecName field.
  4792. type: string
  4793. gmsaCredentialSpecName:
  4794. description: GMSACredentialSpecName is the name of the GMSA
  4795. credential spec to use.
  4796. type: string
  4797. hostProcess:
  4798. description: |-
  4799. HostProcess determines if a container should be run as a 'Host Process' container.
  4800. All of a Pod's containers must have the same effective HostProcess value
  4801. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  4802. In addition, if HostProcess is true then HostNetwork must also be set to true.
  4803. type: boolean
  4804. runAsUserName:
  4805. description: |-
  4806. The UserName in Windows to run the entrypoint of the container process.
  4807. Defaults to the user specified in image metadata if unspecified.
  4808. May also be set in PodSecurityContext. If set in both SecurityContext and
  4809. PodSecurityContext, the value specified in SecurityContext takes precedence.
  4810. type: string
  4811. type: object
  4812. type: object
  4813. postgresGID:
  4814. default: 26
  4815. description: The GID of the `postgres` user inside the image, defaults
  4816. to `26`
  4817. format: int64
  4818. type: integer
  4819. postgresUID:
  4820. default: 26
  4821. description: The UID of the `postgres` user inside the image, defaults
  4822. to `26`
  4823. format: int64
  4824. type: integer
  4825. postgresql:
  4826. description: Configuration of the PostgreSQL server
  4827. properties:
  4828. enableAlterSystem:
  4829. description: |-
  4830. If this parameter is true, the user will be able to invoke `ALTER SYSTEM`
  4831. on this CloudNativePG Cluster.
  4832. This should only be used for debugging and troubleshooting.
  4833. Defaults to false.
  4834. type: boolean
  4835. extensions:
  4836. description: The configuration of the extensions to be added
  4837. items:
  4838. description: |-
  4839. ExtensionConfiguration is the configuration used to add
  4840. PostgreSQL extensions to the Cluster.
  4841. properties:
  4842. dynamic_library_path:
  4843. description: |-
  4844. The list of directories inside the image which should be added to dynamic_library_path.
  4845. If not defined, defaults to "/lib".
  4846. items:
  4847. type: string
  4848. type: array
  4849. extension_control_path:
  4850. description: |-
  4851. The list of directories inside the image which should be added to extension_control_path.
  4852. If not defined, defaults to "/share".
  4853. items:
  4854. type: string
  4855. type: array
  4856. image:
  4857. description: The image containing the extension, required
  4858. properties:
  4859. pullPolicy:
  4860. description: |-
  4861. Policy for pulling OCI objects. Possible values are:
  4862. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  4863. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  4864. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  4865. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  4866. type: string
  4867. reference:
  4868. description: |-
  4869. Required: Image or artifact reference to be used.
  4870. Behaves in the same way as pod.spec.containers[*].image.
  4871. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  4872. More info: https://kubernetes.io/docs/concepts/containers/images
  4873. This field is optional to allow higher level config management to default or override
  4874. container images in workload controllers like Deployments and StatefulSets.
  4875. type: string
  4876. type: object
  4877. x-kubernetes-validations:
  4878. - message: An image reference is required
  4879. rule: has(self.reference)
  4880. ld_library_path:
  4881. description: The list of directories inside the image which
  4882. should be added to ld_library_path.
  4883. items:
  4884. type: string
  4885. type: array
  4886. name:
  4887. description: The name of the extension, required
  4888. minLength: 1
  4889. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  4890. type: string
  4891. required:
  4892. - image
  4893. - name
  4894. type: object
  4895. type: array
  4896. ldap:
  4897. description: Options to specify LDAP configuration
  4898. properties:
  4899. bindAsAuth:
  4900. description: Bind as authentication configuration
  4901. properties:
  4902. prefix:
  4903. description: Prefix for the bind authentication option
  4904. type: string
  4905. suffix:
  4906. description: Suffix for the bind authentication option
  4907. type: string
  4908. type: object
  4909. bindSearchAuth:
  4910. description: Bind+Search authentication configuration
  4911. properties:
  4912. baseDN:
  4913. description: Root DN to begin the user search
  4914. type: string
  4915. bindDN:
  4916. description: DN of the user to bind to the directory
  4917. type: string
  4918. bindPassword:
  4919. description: Secret with the password for the user to
  4920. bind to the directory
  4921. properties:
  4922. key:
  4923. description: The key of the secret to select from. Must
  4924. be a valid secret key.
  4925. type: string
  4926. name:
  4927. default: ""
  4928. description: |-
  4929. Name of the referent.
  4930. This field is effectively required, but due to backwards compatibility is
  4931. allowed to be empty. Instances of this type with an empty value here are
  4932. almost certainly wrong.
  4933. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  4934. type: string
  4935. optional:
  4936. description: Specify whether the Secret or its key
  4937. must be defined
  4938. type: boolean
  4939. required:
  4940. - key
  4941. type: object
  4942. x-kubernetes-map-type: atomic
  4943. searchAttribute:
  4944. description: Attribute to match against the username
  4945. type: string
  4946. searchFilter:
  4947. description: Search filter to use when doing the search+bind
  4948. authentication
  4949. type: string
  4950. type: object
  4951. port:
  4952. description: LDAP server port
  4953. type: integer
  4954. scheme:
  4955. description: LDAP schema to be used, possible options are
  4956. `ldap` and `ldaps`
  4957. enum:
  4958. - ldap
  4959. - ldaps
  4960. type: string
  4961. server:
  4962. description: LDAP hostname or IP address
  4963. type: string
  4964. tls:
  4965. description: Set to 'true' to enable LDAP over TLS. 'false'
  4966. is default
  4967. type: boolean
  4968. type: object
  4969. parameters:
  4970. additionalProperties:
  4971. type: string
  4972. description: PostgreSQL configuration options (postgresql.conf)
  4973. type: object
  4974. pg_hba:
  4975. description: |-
  4976. PostgreSQL Host Based Authentication rules (lines to be appended
  4977. to the pg_hba.conf file)
  4978. items:
  4979. type: string
  4980. type: array
  4981. pg_ident:
  4982. description: |-
  4983. PostgreSQL User Name Maps rules (lines to be appended
  4984. to the pg_ident.conf file)
  4985. items:
  4986. type: string
  4987. type: array
  4988. promotionTimeout:
  4989. description: |-
  4990. Specifies the maximum number of seconds to wait when promoting an instance to primary.
  4991. Default value is 40000000, greater than one year in seconds,
  4992. big enough to simulate an infinite timeout
  4993. format: int32
  4994. type: integer
  4995. shared_preload_libraries:
  4996. description: Lists of shared preload libraries to add to the default
  4997. ones
  4998. items:
  4999. type: string
  5000. type: array
  5001. syncReplicaElectionConstraint:
  5002. description: |-
  5003. Requirements to be met by sync replicas. This will affect how the "synchronous_standby_names" parameter will be
  5004. set up.
  5005. properties:
  5006. enabled:
  5007. description: This flag enables the constraints for sync replicas
  5008. type: boolean
  5009. nodeLabelsAntiAffinity:
  5010. description: A list of node labels values to extract and compare
  5011. to evaluate if the pods reside in the same topology or not
  5012. items:
  5013. type: string
  5014. type: array
  5015. required:
  5016. - enabled
  5017. type: object
  5018. synchronous:
  5019. description: Configuration of the PostgreSQL synchronous replication
  5020. feature
  5021. properties:
  5022. dataDurability:
  5023. description: |-
  5024. If set to "required", data durability is strictly enforced. Write operations
  5025. with synchronous commit settings (`on`, `remote_write`, or `remote_apply`) will
  5026. block if there are insufficient healthy replicas, ensuring data persistence.
  5027. If set to "preferred", data durability is maintained when healthy replicas
  5028. are available, but the required number of instances will adjust dynamically
  5029. if replicas become unavailable. This setting relaxes strict durability enforcement
  5030. to allow for operational continuity. This setting is only applicable if both
  5031. `standbyNamesPre` and `standbyNamesPost` are unset (empty).
  5032. enum:
  5033. - required
  5034. - preferred
  5035. type: string
  5036. failoverQuorum:
  5037. description: |-
  5038. FailoverQuorum enables a quorum-based check before failover, improving
  5039. data durability and safety during failover events in CloudNativePG-managed
  5040. PostgreSQL clusters.
  5041. type: boolean
  5042. maxStandbyNamesFromCluster:
  5043. description: |-
  5044. Specifies the maximum number of local cluster pods that can be
  5045. automatically included in the `synchronous_standby_names` option in
  5046. PostgreSQL.
  5047. type: integer
  5048. method:
  5049. description: |-
  5050. Method to select synchronous replication standbys from the listed
  5051. servers, accepting 'any' (quorum-based synchronous replication) or
  5052. 'first' (priority-based synchronous replication) as values.
  5053. enum:
  5054. - any
  5055. - first
  5056. type: string
  5057. number:
  5058. description: |-
  5059. Specifies the number of synchronous standby servers that
  5060. transactions must wait for responses from.
  5061. type: integer
  5062. x-kubernetes-validations:
  5063. - message: The number of synchronous replicas should be greater
  5064. than zero
  5065. rule: self > 0
  5066. standbyNamesPost:
  5067. description: |-
  5068. A user-defined list of application names to be added to
  5069. `synchronous_standby_names` after local cluster pods (the order is
  5070. only useful for priority-based synchronous replication).
  5071. items:
  5072. type: string
  5073. type: array
  5074. standbyNamesPre:
  5075. description: |-
  5076. A user-defined list of application names to be added to
  5077. `synchronous_standby_names` before local cluster pods (the order is
  5078. only useful for priority-based synchronous replication).
  5079. items:
  5080. type: string
  5081. type: array
  5082. required:
  5083. - method
  5084. - number
  5085. type: object
  5086. x-kubernetes-validations:
  5087. - message: dataDurability set to 'preferred' requires empty 'standbyNamesPre'
  5088. and empty 'standbyNamesPost'
  5089. rule: self.dataDurability!='preferred' || ((!has(self.standbyNamesPre)
  5090. || self.standbyNamesPre.size()==0) && (!has(self.standbyNamesPost)
  5091. || self.standbyNamesPost.size()==0))
  5092. type: object
  5093. primaryUpdateMethod:
  5094. default: restart
  5095. description: |-
  5096. Method to follow to upgrade the primary server during a rolling
  5097. update procedure, after all replicas have been successfully updated:
  5098. it can be with a switchover (`switchover`) or in-place (`restart` - default).
  5099. Note: when using `switchover`, the operator will reject updates that change both
  5100. the image name and PostgreSQL configuration parameters simultaneously to avoid
  5101. configuration mismatches during the switchover process.
  5102. enum:
  5103. - switchover
  5104. - restart
  5105. type: string
  5106. primaryUpdateStrategy:
  5107. default: unsupervised
  5108. description: |-
  5109. Deployment strategy to follow to upgrade the primary server during a rolling
  5110. update procedure, after all replicas have been successfully updated:
  5111. it can be automated (`unsupervised` - default) or manual (`supervised`)
  5112. enum:
  5113. - unsupervised
  5114. - supervised
  5115. type: string
  5116. priorityClassName:
  5117. description: |-
  5118. Name of the priority class which will be used in every generated Pod, if the PriorityClass
  5119. specified does not exist, the pod will not be able to schedule. Please refer to
  5120. https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass
  5121. for more information
  5122. type: string
  5123. probes:
  5124. description: |-
  5125. The configuration of the probes to be injected
  5126. in the PostgreSQL Pods.
  5127. properties:
  5128. liveness:
  5129. description: The liveness probe configuration
  5130. properties:
  5131. failureThreshold:
  5132. description: |-
  5133. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  5134. Defaults to 3. Minimum value is 1.
  5135. format: int32
  5136. type: integer
  5137. initialDelaySeconds:
  5138. description: |-
  5139. Number of seconds after the container has started before liveness probes are initiated.
  5140. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5141. format: int32
  5142. type: integer
  5143. isolationCheck:
  5144. description: |-
  5145. Configure the feature that extends the liveness probe for a primary
  5146. instance. In addition to the basic checks, this verifies whether the
  5147. primary is isolated from the Kubernetes API server and from its
  5148. replicas, ensuring that it can be safely shut down if network
  5149. partition or API unavailability is detected. Enabled by default.
  5150. properties:
  5151. connectionTimeout:
  5152. default: 1000
  5153. description: Timeout in milliseconds for connections during
  5154. the primary isolation check
  5155. type: integer
  5156. enabled:
  5157. default: true
  5158. description: Whether primary isolation checking is enabled
  5159. for the liveness probe
  5160. type: boolean
  5161. requestTimeout:
  5162. default: 1000
  5163. description: Timeout in milliseconds for requests during
  5164. the primary isolation check
  5165. type: integer
  5166. type: object
  5167. periodSeconds:
  5168. description: |-
  5169. How often (in seconds) to perform the probe.
  5170. Default to 10 seconds. Minimum value is 1.
  5171. format: int32
  5172. type: integer
  5173. successThreshold:
  5174. description: |-
  5175. Minimum consecutive successes for the probe to be considered successful after having failed.
  5176. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  5177. format: int32
  5178. type: integer
  5179. terminationGracePeriodSeconds:
  5180. description: |-
  5181. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  5182. The grace period is the duration in seconds after the processes running in the pod are sent
  5183. a termination signal and the time when the processes are forcibly halted with a kill signal.
  5184. Set this value longer than the expected cleanup time for your process.
  5185. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  5186. value overrides the value provided by the pod spec.
  5187. Value must be non-negative integer. The value zero indicates stop immediately via
  5188. the kill signal (no opportunity to shut down).
  5189. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  5190. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  5191. format: int64
  5192. type: integer
  5193. timeoutSeconds:
  5194. description: |-
  5195. Number of seconds after which the probe times out.
  5196. Defaults to 1 second. Minimum value is 1.
  5197. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5198. format: int32
  5199. type: integer
  5200. type: object
  5201. readiness:
  5202. description: The readiness probe configuration
  5203. properties:
  5204. failureThreshold:
  5205. description: |-
  5206. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  5207. Defaults to 3. Minimum value is 1.
  5208. format: int32
  5209. type: integer
  5210. initialDelaySeconds:
  5211. description: |-
  5212. Number of seconds after the container has started before liveness probes are initiated.
  5213. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5214. format: int32
  5215. type: integer
  5216. maximumLag:
  5217. anyOf:
  5218. - type: integer
  5219. - type: string
  5220. description: Lag limit. Used only for `streaming` strategy
  5221. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5222. x-kubernetes-int-or-string: true
  5223. periodSeconds:
  5224. description: |-
  5225. How often (in seconds) to perform the probe.
  5226. Default to 10 seconds. Minimum value is 1.
  5227. format: int32
  5228. type: integer
  5229. successThreshold:
  5230. description: |-
  5231. Minimum consecutive successes for the probe to be considered successful after having failed.
  5232. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  5233. format: int32
  5234. type: integer
  5235. terminationGracePeriodSeconds:
  5236. description: |-
  5237. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  5238. The grace period is the duration in seconds after the processes running in the pod are sent
  5239. a termination signal and the time when the processes are forcibly halted with a kill signal.
  5240. Set this value longer than the expected cleanup time for your process.
  5241. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  5242. value overrides the value provided by the pod spec.
  5243. Value must be non-negative integer. The value zero indicates stop immediately via
  5244. the kill signal (no opportunity to shut down).
  5245. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  5246. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  5247. format: int64
  5248. type: integer
  5249. timeoutSeconds:
  5250. description: |-
  5251. Number of seconds after which the probe times out.
  5252. Defaults to 1 second. Minimum value is 1.
  5253. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5254. format: int32
  5255. type: integer
  5256. type:
  5257. description: The probe strategy
  5258. enum:
  5259. - pg_isready
  5260. - streaming
  5261. - query
  5262. type: string
  5263. type: object
  5264. startup:
  5265. description: The startup probe configuration
  5266. properties:
  5267. failureThreshold:
  5268. description: |-
  5269. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  5270. Defaults to 3. Minimum value is 1.
  5271. format: int32
  5272. type: integer
  5273. initialDelaySeconds:
  5274. description: |-
  5275. Number of seconds after the container has started before liveness probes are initiated.
  5276. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5277. format: int32
  5278. type: integer
  5279. maximumLag:
  5280. anyOf:
  5281. - type: integer
  5282. - type: string
  5283. description: Lag limit. Used only for `streaming` strategy
  5284. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5285. x-kubernetes-int-or-string: true
  5286. periodSeconds:
  5287. description: |-
  5288. How often (in seconds) to perform the probe.
  5289. Default to 10 seconds. Minimum value is 1.
  5290. format: int32
  5291. type: integer
  5292. successThreshold:
  5293. description: |-
  5294. Minimum consecutive successes for the probe to be considered successful after having failed.
  5295. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  5296. format: int32
  5297. type: integer
  5298. terminationGracePeriodSeconds:
  5299. description: |-
  5300. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  5301. The grace period is the duration in seconds after the processes running in the pod are sent
  5302. a termination signal and the time when the processes are forcibly halted with a kill signal.
  5303. Set this value longer than the expected cleanup time for your process.
  5304. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  5305. value overrides the value provided by the pod spec.
  5306. Value must be non-negative integer. The value zero indicates stop immediately via
  5307. the kill signal (no opportunity to shut down).
  5308. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  5309. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  5310. format: int64
  5311. type: integer
  5312. timeoutSeconds:
  5313. description: |-
  5314. Number of seconds after which the probe times out.
  5315. Defaults to 1 second. Minimum value is 1.
  5316. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  5317. format: int32
  5318. type: integer
  5319. type:
  5320. description: The probe strategy
  5321. enum:
  5322. - pg_isready
  5323. - streaming
  5324. - query
  5325. type: string
  5326. type: object
  5327. type: object
  5328. projectedVolumeTemplate:
  5329. description: |-
  5330. Template to be used to define projected volumes, projected volumes will be mounted
  5331. under `/projected` base folder
  5332. properties:
  5333. defaultMode:
  5334. description: |-
  5335. defaultMode are the mode bits used to set permissions on created files by default.
  5336. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5337. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5338. Directories within the path are not affected by this setting.
  5339. This might be in conflict with other options that affect the file
  5340. mode, like fsGroup, and the result can be other mode bits set.
  5341. format: int32
  5342. type: integer
  5343. sources:
  5344. description: |-
  5345. sources is the list of volume projections. Each entry in this list
  5346. handles one source.
  5347. items:
  5348. description: |-
  5349. Projection that may be projected along with other supported volume types.
  5350. Exactly one of these fields must be set.
  5351. properties:
  5352. clusterTrustBundle:
  5353. description: |-
  5354. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  5355. of ClusterTrustBundle objects in an auto-updating file.
  5356. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  5357. ClusterTrustBundle objects can either be selected by name, or by the
  5358. combination of signer name and a label selector.
  5359. Kubelet performs aggressive normalization of the PEM contents written
  5360. into the pod filesystem. Esoteric PEM features such as inter-block
  5361. comments and block headers are stripped. Certificates are deduplicated.
  5362. The ordering of certificates within the file is arbitrary, and Kubelet
  5363. may change the order over time.
  5364. properties:
  5365. labelSelector:
  5366. description: |-
  5367. Select all ClusterTrustBundles that match this label selector. Only has
  5368. effect if signerName is set. Mutually-exclusive with name. If unset,
  5369. interpreted as "match nothing". If set but empty, interpreted as "match
  5370. everything".
  5371. properties:
  5372. matchExpressions:
  5373. description: matchExpressions is a list of label
  5374. selector requirements. The requirements are ANDed.
  5375. items:
  5376. description: |-
  5377. A label selector requirement is a selector that contains values, a key, and an operator that
  5378. relates the key and values.
  5379. properties:
  5380. key:
  5381. description: key is the label key that the
  5382. selector applies to.
  5383. type: string
  5384. operator:
  5385. description: |-
  5386. operator represents a key's relationship to a set of values.
  5387. Valid operators are In, NotIn, Exists and DoesNotExist.
  5388. type: string
  5389. values:
  5390. description: |-
  5391. values is an array of string values. If the operator is In or NotIn,
  5392. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  5393. the values array must be empty. This array is replaced during a strategic
  5394. merge patch.
  5395. items:
  5396. type: string
  5397. type: array
  5398. x-kubernetes-list-type: atomic
  5399. required:
  5400. - key
  5401. - operator
  5402. type: object
  5403. type: array
  5404. x-kubernetes-list-type: atomic
  5405. matchLabels:
  5406. additionalProperties:
  5407. type: string
  5408. description: |-
  5409. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  5410. map is equivalent to an element of matchExpressions, whose key field is "key", the
  5411. operator is "In", and the values array contains only "value". The requirements are ANDed.
  5412. type: object
  5413. type: object
  5414. x-kubernetes-map-type: atomic
  5415. name:
  5416. description: |-
  5417. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  5418. with signerName and labelSelector.
  5419. type: string
  5420. optional:
  5421. description: |-
  5422. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  5423. aren't available. If using name, then the named ClusterTrustBundle is
  5424. allowed not to exist. If using signerName, then the combination of
  5425. signerName and labelSelector is allowed to match zero
  5426. ClusterTrustBundles.
  5427. type: boolean
  5428. path:
  5429. description: Relative path from the volume root to write
  5430. the bundle.
  5431. type: string
  5432. signerName:
  5433. description: |-
  5434. Select all ClusterTrustBundles that match this signer name.
  5435. Mutually-exclusive with name. The contents of all selected
  5436. ClusterTrustBundles will be unified and deduplicated.
  5437. type: string
  5438. required:
  5439. - path
  5440. type: object
  5441. configMap:
  5442. description: configMap information about the configMap data
  5443. to project
  5444. properties:
  5445. items:
  5446. description: |-
  5447. items if unspecified, each key-value pair in the Data field of the referenced
  5448. ConfigMap will be projected into the volume as a file whose name is the
  5449. key and content is the value. If specified, the listed keys will be
  5450. projected into the specified paths, and unlisted keys will not be
  5451. present. If a key is specified which is not present in the ConfigMap,
  5452. the volume setup will error unless it is marked optional. Paths must be
  5453. relative and may not contain the '..' path or start with '..'.
  5454. items:
  5455. description: Maps a string key to a path within a
  5456. volume.
  5457. properties:
  5458. key:
  5459. description: key is the key to project.
  5460. type: string
  5461. mode:
  5462. description: |-
  5463. mode is Optional: mode bits used to set permissions on this file.
  5464. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5465. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5466. If not specified, the volume defaultMode will be used.
  5467. This might be in conflict with other options that affect the file
  5468. mode, like fsGroup, and the result can be other mode bits set.
  5469. format: int32
  5470. type: integer
  5471. path:
  5472. description: |-
  5473. path is the relative path of the file to map the key to.
  5474. May not be an absolute path.
  5475. May not contain the path element '..'.
  5476. May not start with the string '..'.
  5477. type: string
  5478. required:
  5479. - key
  5480. - path
  5481. type: object
  5482. type: array
  5483. x-kubernetes-list-type: atomic
  5484. name:
  5485. default: ""
  5486. description: |-
  5487. Name of the referent.
  5488. This field is effectively required, but due to backwards compatibility is
  5489. allowed to be empty. Instances of this type with an empty value here are
  5490. almost certainly wrong.
  5491. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5492. type: string
  5493. optional:
  5494. description: optional specify whether the ConfigMap
  5495. or its keys must be defined
  5496. type: boolean
  5497. type: object
  5498. x-kubernetes-map-type: atomic
  5499. downwardAPI:
  5500. description: downwardAPI information about the downwardAPI
  5501. data to project
  5502. properties:
  5503. items:
  5504. description: Items is a list of DownwardAPIVolume file
  5505. items:
  5506. description: DownwardAPIVolumeFile represents information
  5507. to create the file containing the pod field
  5508. properties:
  5509. fieldRef:
  5510. description: 'Required: Selects a field of the
  5511. pod: only annotations, labels, name, namespace
  5512. and uid are supported.'
  5513. properties:
  5514. apiVersion:
  5515. description: Version of the schema the FieldPath
  5516. is written in terms of, defaults to "v1".
  5517. type: string
  5518. fieldPath:
  5519. description: Path of the field to select in
  5520. the specified API version.
  5521. type: string
  5522. required:
  5523. - fieldPath
  5524. type: object
  5525. x-kubernetes-map-type: atomic
  5526. mode:
  5527. description: |-
  5528. Optional: mode bits used to set permissions on this file, must be an octal value
  5529. between 0000 and 0777 or a decimal value between 0 and 511.
  5530. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5531. If not specified, the volume defaultMode will be used.
  5532. This might be in conflict with other options that affect the file
  5533. mode, like fsGroup, and the result can be other mode bits set.
  5534. format: int32
  5535. type: integer
  5536. path:
  5537. description: 'Required: Path is the relative
  5538. path name of the file to be created. Must not
  5539. be absolute or contain the ''..'' path. Must
  5540. be utf-8 encoded. The first item of the relative
  5541. path must not start with ''..'''
  5542. type: string
  5543. resourceFieldRef:
  5544. description: |-
  5545. Selects a resource of the container: only resources limits and requests
  5546. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  5547. properties:
  5548. containerName:
  5549. description: 'Container name: required for
  5550. volumes, optional for env vars'
  5551. type: string
  5552. divisor:
  5553. anyOf:
  5554. - type: integer
  5555. - type: string
  5556. description: Specifies the output format of
  5557. the exposed resources, defaults to "1"
  5558. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5559. x-kubernetes-int-or-string: true
  5560. resource:
  5561. description: 'Required: resource to select'
  5562. type: string
  5563. required:
  5564. - resource
  5565. type: object
  5566. x-kubernetes-map-type: atomic
  5567. required:
  5568. - path
  5569. type: object
  5570. type: array
  5571. x-kubernetes-list-type: atomic
  5572. type: object
  5573. podCertificate:
  5574. description: |-
  5575. Projects an auto-rotating credential bundle (private key and certificate
  5576. chain) that the pod can use either as a TLS client or server.
  5577. Kubelet generates a private key and uses it to send a
  5578. PodCertificateRequest to the named signer. Once the signer approves the
  5579. request and issues a certificate chain, Kubelet writes the key and
  5580. certificate chain to the pod filesystem. The pod does not start until
  5581. certificates have been issued for each podCertificate projected volume
  5582. source in its spec.
  5583. Kubelet will begin trying to rotate the certificate at the time indicated
  5584. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  5585. timestamp.
  5586. Kubelet can write a single file, indicated by the credentialBundlePath
  5587. field, or separate files, indicated by the keyPath and
  5588. certificateChainPath fields.
  5589. The credential bundle is a single file in PEM format. The first PEM
  5590. entry is the private key (in PKCS#8 format), and the remaining PEM
  5591. entries are the certificate chain issued by the signer (typically,
  5592. signers will return their certificate chain in leaf-to-root order).
  5593. Prefer using the credential bundle format, since your application code
  5594. can read it atomically. If you use keyPath and certificateChainPath,
  5595. your application must make two separate file reads. If these coincide
  5596. with a certificate rotation, it is possible that the private key and leaf
  5597. certificate you read may not correspond to each other. Your application
  5598. will need to check for this condition, and re-read until they are
  5599. consistent.
  5600. The named signer controls chooses the format of the certificate it
  5601. issues; consult the signer implementation's documentation to learn how to
  5602. use the certificates it issues.
  5603. properties:
  5604. certificateChainPath:
  5605. description: |-
  5606. Write the certificate chain at this path in the projected volume.
  5607. Most applications should use credentialBundlePath. When using keyPath
  5608. and certificateChainPath, your application needs to check that the key
  5609. and leaf certificate are consistent, because it is possible to read the
  5610. files mid-rotation.
  5611. type: string
  5612. credentialBundlePath:
  5613. description: |-
  5614. Write the credential bundle at this path in the projected volume.
  5615. The credential bundle is a single file that contains multiple PEM blocks.
  5616. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  5617. key.
  5618. The remaining blocks are CERTIFICATE blocks, containing the issued
  5619. certificate chain from the signer (leaf and any intermediates).
  5620. Using credentialBundlePath lets your Pod's application code make a single
  5621. atomic read that retrieves a consistent key and certificate chain. If you
  5622. project them to separate files, your application code will need to
  5623. additionally check that the leaf certificate was issued to the key.
  5624. type: string
  5625. keyPath:
  5626. description: |-
  5627. Write the key at this path in the projected volume.
  5628. Most applications should use credentialBundlePath. When using keyPath
  5629. and certificateChainPath, your application needs to check that the key
  5630. and leaf certificate are consistent, because it is possible to read the
  5631. files mid-rotation.
  5632. type: string
  5633. keyType:
  5634. description: |-
  5635. The type of keypair Kubelet will generate for the pod.
  5636. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  5637. "ECDSAP521", and "ED25519".
  5638. type: string
  5639. maxExpirationSeconds:
  5640. description: |-
  5641. maxExpirationSeconds is the maximum lifetime permitted for the
  5642. certificate.
  5643. Kubelet copies this value verbatim into the PodCertificateRequests it
  5644. generates for this projection.
  5645. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  5646. will reject values shorter than 3600 (1 hour). The maximum allowable
  5647. value is 7862400 (91 days).
  5648. The signer implementation is then free to issue a certificate with any
  5649. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  5650. seconds (1 hour). This constraint is enforced by kube-apiserver.
  5651. `kubernetes.io` signers will never issue certificates with a lifetime
  5652. longer than 24 hours.
  5653. format: int32
  5654. type: integer
  5655. signerName:
  5656. description: Kubelet's generated CSRs will be addressed
  5657. to this signer.
  5658. type: string
  5659. required:
  5660. - keyType
  5661. - signerName
  5662. type: object
  5663. secret:
  5664. description: secret information about the secret data to
  5665. project
  5666. properties:
  5667. items:
  5668. description: |-
  5669. items if unspecified, each key-value pair in the Data field of the referenced
  5670. Secret will be projected into the volume as a file whose name is the
  5671. key and content is the value. If specified, the listed keys will be
  5672. projected into the specified paths, and unlisted keys will not be
  5673. present. If a key is specified which is not present in the Secret,
  5674. the volume setup will error unless it is marked optional. Paths must be
  5675. relative and may not contain the '..' path or start with '..'.
  5676. items:
  5677. description: Maps a string key to a path within a
  5678. volume.
  5679. properties:
  5680. key:
  5681. description: key is the key to project.
  5682. type: string
  5683. mode:
  5684. description: |-
  5685. mode is Optional: mode bits used to set permissions on this file.
  5686. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  5687. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  5688. If not specified, the volume defaultMode will be used.
  5689. This might be in conflict with other options that affect the file
  5690. mode, like fsGroup, and the result can be other mode bits set.
  5691. format: int32
  5692. type: integer
  5693. path:
  5694. description: |-
  5695. path is the relative path of the file to map the key to.
  5696. May not be an absolute path.
  5697. May not contain the path element '..'.
  5698. May not start with the string '..'.
  5699. type: string
  5700. required:
  5701. - key
  5702. - path
  5703. type: object
  5704. type: array
  5705. x-kubernetes-list-type: atomic
  5706. name:
  5707. default: ""
  5708. description: |-
  5709. Name of the referent.
  5710. This field is effectively required, but due to backwards compatibility is
  5711. allowed to be empty. Instances of this type with an empty value here are
  5712. almost certainly wrong.
  5713. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  5714. type: string
  5715. optional:
  5716. description: optional field specify whether the Secret
  5717. or its key must be defined
  5718. type: boolean
  5719. type: object
  5720. x-kubernetes-map-type: atomic
  5721. serviceAccountToken:
  5722. description: serviceAccountToken is information about the
  5723. serviceAccountToken data to project
  5724. properties:
  5725. audience:
  5726. description: |-
  5727. audience is the intended audience of the token. A recipient of a token
  5728. must identify itself with an identifier specified in the audience of the
  5729. token, and otherwise should reject the token. The audience defaults to the
  5730. identifier of the apiserver.
  5731. type: string
  5732. expirationSeconds:
  5733. description: |-
  5734. expirationSeconds is the requested duration of validity of the service
  5735. account token. As the token approaches expiration, the kubelet volume
  5736. plugin will proactively rotate the service account token. The kubelet will
  5737. start trying to rotate the token if the token is older than 80 percent of
  5738. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  5739. and must be at least 10 minutes.
  5740. format: int64
  5741. type: integer
  5742. path:
  5743. description: |-
  5744. path is the path relative to the mount point of the file to project the
  5745. token into.
  5746. type: string
  5747. required:
  5748. - path
  5749. type: object
  5750. type: object
  5751. type: array
  5752. x-kubernetes-list-type: atomic
  5753. type: object
  5754. replica:
  5755. description: Replica cluster configuration
  5756. properties:
  5757. enabled:
  5758. description: |-
  5759. If replica mode is enabled, this cluster will be a replica of an
  5760. existing cluster. Replica cluster can be created from a recovery
  5761. object store or via streaming through pg_basebackup.
  5762. Refer to the Replica clusters page of the documentation for more information.
  5763. type: boolean
  5764. minApplyDelay:
  5765. description: |-
  5766. When replica mode is enabled, this parameter allows you to replay
  5767. transactions only when the system time is at least the configured
  5768. time past the commit time. This provides an opportunity to correct
  5769. data loss errors. Note that when this parameter is set, a promotion
  5770. token cannot be used.
  5771. type: string
  5772. primary:
  5773. description: |-
  5774. Primary defines which Cluster is defined to be the primary in the distributed PostgreSQL cluster, based on the
  5775. topology specified in externalClusters
  5776. type: string
  5777. promotionToken:
  5778. description: |-
  5779. A demotion token generated by an external cluster used to
  5780. check if the promotion requirements are met.
  5781. type: string
  5782. self:
  5783. description: |-
  5784. Self defines the name of this cluster. It is used to determine if this is a primary
  5785. or a replica cluster, comparing it with `primary`
  5786. type: string
  5787. source:
  5788. description: The name of the external cluster which is the replication
  5789. origin
  5790. minLength: 1
  5791. type: string
  5792. required:
  5793. - source
  5794. type: object
  5795. replicationSlots:
  5796. default:
  5797. highAvailability:
  5798. enabled: true
  5799. description: Replication slots management configuration
  5800. properties:
  5801. highAvailability:
  5802. default:
  5803. enabled: true
  5804. description: Replication slots for high availability configuration
  5805. properties:
  5806. enabled:
  5807. default: true
  5808. description: |-
  5809. If enabled (default), the operator will automatically manage replication slots
  5810. on the primary instance and use them in streaming replication
  5811. connections with all the standby instances that are part of the HA
  5812. cluster. If disabled, the operator will not take advantage
  5813. of replication slots in streaming connections with the replicas.
  5814. This feature also controls replication slots in replica cluster,
  5815. from the designated primary to its cascading replicas.
  5816. type: boolean
  5817. slotPrefix:
  5818. default: _cnpg_
  5819. description: |-
  5820. Prefix for replication slots managed by the operator for HA.
  5821. It may only contain lower case letters, numbers, and the underscore character.
  5822. This can only be set at creation time. By default set to `_cnpg_`.
  5823. pattern: ^[0-9a-z_]*$
  5824. type: string
  5825. synchronizeLogicalDecoding:
  5826. description: |-
  5827. When enabled, the operator automatically manages synchronization of logical
  5828. decoding (replication) slots across high-availability clusters.
  5829. Requires one of the following conditions:
  5830. - PostgreSQL version 17 or later
  5831. - PostgreSQL version < 17 with pg_failover_slots extension enabled
  5832. type: boolean
  5833. type: object
  5834. synchronizeReplicas:
  5835. description: Configures the synchronization of the user defined
  5836. physical replication slots
  5837. properties:
  5838. enabled:
  5839. default: true
  5840. description: When set to true, every replication slot that
  5841. is on the primary is synchronized on each standby
  5842. type: boolean
  5843. excludePatterns:
  5844. description: List of regular expression patterns to match
  5845. the names of replication slots to be excluded (by default
  5846. empty)
  5847. items:
  5848. type: string
  5849. type: array
  5850. required:
  5851. - enabled
  5852. type: object
  5853. updateInterval:
  5854. default: 30
  5855. description: |-
  5856. Standby will update the status of the local replication slots
  5857. every `updateInterval` seconds (default 30).
  5858. minimum: 1
  5859. type: integer
  5860. type: object
  5861. resources:
  5862. description: |-
  5863. Resources requirements of every generated Pod. Please refer to
  5864. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5865. for more information.
  5866. properties:
  5867. claims:
  5868. description: |-
  5869. Claims lists the names of resources, defined in spec.resourceClaims,
  5870. that are used by this container.
  5871. This field depends on the
  5872. DynamicResourceAllocation feature gate.
  5873. This field is immutable. It can only be set for containers.
  5874. items:
  5875. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  5876. properties:
  5877. name:
  5878. description: |-
  5879. Name must match the name of one entry in pod.spec.resourceClaims of
  5880. the Pod where this field is used. It makes that resource available
  5881. inside a container.
  5882. type: string
  5883. request:
  5884. description: |-
  5885. Request is the name chosen for a request in the referenced claim.
  5886. If empty, everything from the claim is made available, otherwise
  5887. only the result of this request.
  5888. type: string
  5889. required:
  5890. - name
  5891. type: object
  5892. type: array
  5893. x-kubernetes-list-map-keys:
  5894. - name
  5895. x-kubernetes-list-type: map
  5896. limits:
  5897. additionalProperties:
  5898. anyOf:
  5899. - type: integer
  5900. - type: string
  5901. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5902. x-kubernetes-int-or-string: true
  5903. description: |-
  5904. Limits describes the maximum amount of compute resources allowed.
  5905. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5906. type: object
  5907. requests:
  5908. additionalProperties:
  5909. anyOf:
  5910. - type: integer
  5911. - type: string
  5912. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  5913. x-kubernetes-int-or-string: true
  5914. description: |-
  5915. Requests describes the minimum amount of compute resources required.
  5916. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  5917. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  5918. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  5919. type: object
  5920. type: object
  5921. schedulerName:
  5922. description: |-
  5923. If specified, the pod will be dispatched by specified Kubernetes
  5924. scheduler. If not specified, the pod will be dispatched by the default
  5925. scheduler. More info:
  5926. https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/
  5927. type: string
  5928. seccompProfile:
  5929. description: |-
  5930. The SeccompProfile applied to every Pod and Container.
  5931. Defaults to: `RuntimeDefault`
  5932. properties:
  5933. localhostProfile:
  5934. description: |-
  5935. localhostProfile indicates a profile defined in a file on the node should be used.
  5936. The profile must be preconfigured on the node to work.
  5937. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  5938. Must be set if type is "Localhost". Must NOT be set for any other type.
  5939. type: string
  5940. type:
  5941. description: |-
  5942. type indicates which kind of seccomp profile will be applied.
  5943. Valid options are:
  5944. Localhost - a profile defined in a file on the node should be used.
  5945. RuntimeDefault - the container runtime default profile should be used.
  5946. Unconfined - no profile should be applied.
  5947. type: string
  5948. required:
  5949. - type
  5950. type: object
  5951. securityContext:
  5952. description: |-
  5953. Override the SecurityContext applied to every Container in the Pod of the cluster.
  5954. When set, this overrides the operator's default Container SecurityContext.
  5955. If omitted, the operator defaults are used.
  5956. properties:
  5957. allowPrivilegeEscalation:
  5958. description: |-
  5959. AllowPrivilegeEscalation controls whether a process can gain more
  5960. privileges than its parent process. This bool directly controls if
  5961. the no_new_privs flag will be set on the container process.
  5962. AllowPrivilegeEscalation is true always when the container is:
  5963. 1) run as Privileged
  5964. 2) has CAP_SYS_ADMIN
  5965. Note that this field cannot be set when spec.os.name is windows.
  5966. type: boolean
  5967. appArmorProfile:
  5968. description: |-
  5969. appArmorProfile is the AppArmor options to use by this container. If set, this profile
  5970. overrides the pod's appArmorProfile.
  5971. Note that this field cannot be set when spec.os.name is windows.
  5972. properties:
  5973. localhostProfile:
  5974. description: |-
  5975. localhostProfile indicates a profile loaded on the node that should be used.
  5976. The profile must be preconfigured on the node to work.
  5977. Must match the loaded name of the profile.
  5978. Must be set if and only if type is "Localhost".
  5979. type: string
  5980. type:
  5981. description: |-
  5982. type indicates which kind of AppArmor profile will be applied.
  5983. Valid options are:
  5984. Localhost - a profile pre-loaded on the node.
  5985. RuntimeDefault - the container runtime's default profile.
  5986. Unconfined - no AppArmor enforcement.
  5987. type: string
  5988. required:
  5989. - type
  5990. type: object
  5991. capabilities:
  5992. description: |-
  5993. The capabilities to add/drop when running containers.
  5994. Defaults to the default set of capabilities granted by the container runtime.
  5995. Note that this field cannot be set when spec.os.name is windows.
  5996. properties:
  5997. add:
  5998. description: Added capabilities
  5999. items:
  6000. description: Capability represent POSIX capabilities type
  6001. type: string
  6002. type: array
  6003. x-kubernetes-list-type: atomic
  6004. drop:
  6005. description: Removed capabilities
  6006. items:
  6007. description: Capability represent POSIX capabilities type
  6008. type: string
  6009. type: array
  6010. x-kubernetes-list-type: atomic
  6011. type: object
  6012. privileged:
  6013. description: |-
  6014. Run container in privileged mode.
  6015. Processes in privileged containers are essentially equivalent to root on the host.
  6016. Defaults to false.
  6017. Note that this field cannot be set when spec.os.name is windows.
  6018. type: boolean
  6019. procMount:
  6020. description: |-
  6021. procMount denotes the type of proc mount to use for the containers.
  6022. The default value is Default which uses the container runtime defaults for
  6023. readonly paths and masked paths.
  6024. This requires the ProcMountType feature flag to be enabled.
  6025. Note that this field cannot be set when spec.os.name is windows.
  6026. type: string
  6027. readOnlyRootFilesystem:
  6028. description: |-
  6029. Whether this container has a read-only root filesystem.
  6030. Default is false.
  6031. Note that this field cannot be set when spec.os.name is windows.
  6032. type: boolean
  6033. runAsGroup:
  6034. description: |-
  6035. The GID to run the entrypoint of the container process.
  6036. Uses runtime default if unset.
  6037. May also be set in PodSecurityContext. If set in both SecurityContext and
  6038. PodSecurityContext, the value specified in SecurityContext takes precedence.
  6039. Note that this field cannot be set when spec.os.name is windows.
  6040. format: int64
  6041. type: integer
  6042. runAsNonRoot:
  6043. description: |-
  6044. Indicates that the container must run as a non-root user.
  6045. If true, the Kubelet will validate the image at runtime to ensure that it
  6046. does not run as UID 0 (root) and fail to start the container if it does.
  6047. If unset or false, no such validation will be performed.
  6048. May also be set in PodSecurityContext. If set in both SecurityContext and
  6049. PodSecurityContext, the value specified in SecurityContext takes precedence.
  6050. type: boolean
  6051. runAsUser:
  6052. description: |-
  6053. The UID to run the entrypoint of the container process.
  6054. Defaults to user specified in image metadata if unspecified.
  6055. May also be set in PodSecurityContext. If set in both SecurityContext and
  6056. PodSecurityContext, the value specified in SecurityContext takes precedence.
  6057. Note that this field cannot be set when spec.os.name is windows.
  6058. format: int64
  6059. type: integer
  6060. seLinuxOptions:
  6061. description: |-
  6062. The SELinux context to be applied to the container.
  6063. If unspecified, the container runtime will allocate a random SELinux context for each
  6064. container. May also be set in PodSecurityContext. If set in both SecurityContext and
  6065. PodSecurityContext, the value specified in SecurityContext takes precedence.
  6066. Note that this field cannot be set when spec.os.name is windows.
  6067. properties:
  6068. level:
  6069. description: Level is SELinux level label that applies to
  6070. the container.
  6071. type: string
  6072. role:
  6073. description: Role is a SELinux role label that applies to
  6074. the container.
  6075. type: string
  6076. type:
  6077. description: Type is a SELinux type label that applies to
  6078. the container.
  6079. type: string
  6080. user:
  6081. description: User is a SELinux user label that applies to
  6082. the container.
  6083. type: string
  6084. type: object
  6085. seccompProfile:
  6086. description: |-
  6087. The seccomp options to use by this container. If seccomp options are
  6088. provided at both the pod & container level, the container options
  6089. override the pod options.
  6090. Note that this field cannot be set when spec.os.name is windows.
  6091. properties:
  6092. localhostProfile:
  6093. description: |-
  6094. localhostProfile indicates a profile defined in a file on the node should be used.
  6095. The profile must be preconfigured on the node to work.
  6096. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  6097. Must be set if type is "Localhost". Must NOT be set for any other type.
  6098. type: string
  6099. type:
  6100. description: |-
  6101. type indicates which kind of seccomp profile will be applied.
  6102. Valid options are:
  6103. Localhost - a profile defined in a file on the node should be used.
  6104. RuntimeDefault - the container runtime default profile should be used.
  6105. Unconfined - no profile should be applied.
  6106. type: string
  6107. required:
  6108. - type
  6109. type: object
  6110. windowsOptions:
  6111. description: |-
  6112. The Windows specific settings applied to all containers.
  6113. If unspecified, the options from the PodSecurityContext will be used.
  6114. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  6115. Note that this field cannot be set when spec.os.name is linux.
  6116. properties:
  6117. gmsaCredentialSpec:
  6118. description: |-
  6119. GMSACredentialSpec is where the GMSA admission webhook
  6120. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  6121. GMSA credential spec named by the GMSACredentialSpecName field.
  6122. type: string
  6123. gmsaCredentialSpecName:
  6124. description: GMSACredentialSpecName is the name of the GMSA
  6125. credential spec to use.
  6126. type: string
  6127. hostProcess:
  6128. description: |-
  6129. HostProcess determines if a container should be run as a 'Host Process' container.
  6130. All of a Pod's containers must have the same effective HostProcess value
  6131. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  6132. In addition, if HostProcess is true then HostNetwork must also be set to true.
  6133. type: boolean
  6134. runAsUserName:
  6135. description: |-
  6136. The UserName in Windows to run the entrypoint of the container process.
  6137. Defaults to the user specified in image metadata if unspecified.
  6138. May also be set in PodSecurityContext. If set in both SecurityContext and
  6139. PodSecurityContext, the value specified in SecurityContext takes precedence.
  6140. type: string
  6141. type: object
  6142. type: object
  6143. serviceAccountTemplate:
  6144. description: Configure the generation of the service account
  6145. properties:
  6146. metadata:
  6147. description: |-
  6148. Metadata are the metadata to be used for the generated
  6149. service account
  6150. properties:
  6151. annotations:
  6152. additionalProperties:
  6153. type: string
  6154. description: |-
  6155. Annotations is an unstructured key value map stored with a resource that may be
  6156. set by external tools to store and retrieve arbitrary metadata. They are not
  6157. queryable and should be preserved when modifying objects.
  6158. More info: http://kubernetes.io/docs/user-guide/annotations
  6159. type: object
  6160. labels:
  6161. additionalProperties:
  6162. type: string
  6163. description: |-
  6164. Map of string keys and values that can be used to organize and categorize
  6165. (scope and select) objects. May match selectors of replication controllers
  6166. and services.
  6167. More info: http://kubernetes.io/docs/user-guide/labels
  6168. type: object
  6169. name:
  6170. description: The name of the resource. Only supported for
  6171. certain types
  6172. type: string
  6173. type: object
  6174. required:
  6175. - metadata
  6176. type: object
  6177. smartShutdownTimeout:
  6178. default: 180
  6179. description: |-
  6180. The time in seconds that controls the window of time reserved for the smart shutdown of Postgres to complete.
  6181. Make sure you reserve enough time for the operator to request a fast shutdown of Postgres
  6182. (that is: `stopDelay` - `smartShutdownTimeout`). Default is 180 seconds.
  6183. format: int32
  6184. type: integer
  6185. startDelay:
  6186. default: 3600
  6187. description: |-
  6188. The time in seconds that is allowed for a PostgreSQL instance to
  6189. successfully start up (default 3600).
  6190. The startup probe failure threshold is derived from this value using the formula:
  6191. ceiling(startDelay / 10).
  6192. format: int32
  6193. type: integer
  6194. stopDelay:
  6195. default: 1800
  6196. description: |-
  6197. The time in seconds that is allowed for a PostgreSQL instance to
  6198. gracefully shutdown (default 1800)
  6199. format: int32
  6200. type: integer
  6201. storage:
  6202. description: Configuration of the storage of the instances
  6203. properties:
  6204. pvcTemplate:
  6205. description: Template to be used to generate the Persistent Volume
  6206. Claim
  6207. properties:
  6208. accessModes:
  6209. description: |-
  6210. accessModes contains the desired access modes the volume should have.
  6211. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  6212. items:
  6213. type: string
  6214. type: array
  6215. x-kubernetes-list-type: atomic
  6216. dataSource:
  6217. description: |-
  6218. dataSource field can be used to specify either:
  6219. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  6220. * An existing PVC (PersistentVolumeClaim)
  6221. If the provisioner or an external controller can support the specified data source,
  6222. it will create a new volume based on the contents of the specified data source.
  6223. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  6224. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  6225. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  6226. properties:
  6227. apiGroup:
  6228. description: |-
  6229. APIGroup is the group for the resource being referenced.
  6230. If APIGroup is not specified, the specified Kind must be in the core API group.
  6231. For any other third-party types, APIGroup is required.
  6232. type: string
  6233. kind:
  6234. description: Kind is the type of resource being referenced
  6235. type: string
  6236. name:
  6237. description: Name is the name of resource being referenced
  6238. type: string
  6239. required:
  6240. - kind
  6241. - name
  6242. type: object
  6243. x-kubernetes-map-type: atomic
  6244. dataSourceRef:
  6245. description: |-
  6246. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  6247. volume is desired. This may be any object from a non-empty API group (non
  6248. core object) or a PersistentVolumeClaim object.
  6249. When this field is specified, volume binding will only succeed if the type of
  6250. the specified object matches some installed volume populator or dynamic
  6251. provisioner.
  6252. This field will replace the functionality of the dataSource field and as such
  6253. if both fields are non-empty, they must have the same value. For backwards
  6254. compatibility, when namespace isn't specified in dataSourceRef,
  6255. both fields (dataSource and dataSourceRef) will be set to the same
  6256. value automatically if one of them is empty and the other is non-empty.
  6257. When namespace is specified in dataSourceRef,
  6258. dataSource isn't set to the same value and must be empty.
  6259. There are three important differences between dataSource and dataSourceRef:
  6260. * While dataSource only allows two specific types of objects, dataSourceRef
  6261. allows any non-core object, as well as PersistentVolumeClaim objects.
  6262. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  6263. preserves all values, and generates an error if a disallowed value is
  6264. specified.
  6265. * While dataSource only allows local objects, dataSourceRef allows objects
  6266. in any namespaces.
  6267. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  6268. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6269. properties:
  6270. apiGroup:
  6271. description: |-
  6272. APIGroup is the group for the resource being referenced.
  6273. If APIGroup is not specified, the specified Kind must be in the core API group.
  6274. For any other third-party types, APIGroup is required.
  6275. type: string
  6276. kind:
  6277. description: Kind is the type of resource being referenced
  6278. type: string
  6279. name:
  6280. description: Name is the name of resource being referenced
  6281. type: string
  6282. namespace:
  6283. description: |-
  6284. Namespace is the namespace of resource being referenced
  6285. 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.
  6286. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6287. type: string
  6288. required:
  6289. - kind
  6290. - name
  6291. type: object
  6292. resources:
  6293. description: |-
  6294. resources represents the minimum resources the volume should have.
  6295. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  6296. that are lower than previous value but must still be higher than capacity recorded in the
  6297. status field of the claim.
  6298. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  6299. properties:
  6300. limits:
  6301. additionalProperties:
  6302. anyOf:
  6303. - type: integer
  6304. - type: string
  6305. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6306. x-kubernetes-int-or-string: true
  6307. description: |-
  6308. Limits describes the maximum amount of compute resources allowed.
  6309. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6310. type: object
  6311. requests:
  6312. additionalProperties:
  6313. anyOf:
  6314. - type: integer
  6315. - type: string
  6316. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6317. x-kubernetes-int-or-string: true
  6318. description: |-
  6319. Requests describes the minimum amount of compute resources required.
  6320. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  6321. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  6322. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6323. type: object
  6324. type: object
  6325. selector:
  6326. description: selector is a label query over volumes to consider
  6327. for binding.
  6328. properties:
  6329. matchExpressions:
  6330. description: matchExpressions is a list of label selector
  6331. requirements. The requirements are ANDed.
  6332. items:
  6333. description: |-
  6334. A label selector requirement is a selector that contains values, a key, and an operator that
  6335. relates the key and values.
  6336. properties:
  6337. key:
  6338. description: key is the label key that the selector
  6339. applies to.
  6340. type: string
  6341. operator:
  6342. description: |-
  6343. operator represents a key's relationship to a set of values.
  6344. Valid operators are In, NotIn, Exists and DoesNotExist.
  6345. type: string
  6346. values:
  6347. description: |-
  6348. values is an array of string values. If the operator is In or NotIn,
  6349. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  6350. the values array must be empty. This array is replaced during a strategic
  6351. merge patch.
  6352. items:
  6353. type: string
  6354. type: array
  6355. x-kubernetes-list-type: atomic
  6356. required:
  6357. - key
  6358. - operator
  6359. type: object
  6360. type: array
  6361. x-kubernetes-list-type: atomic
  6362. matchLabels:
  6363. additionalProperties:
  6364. type: string
  6365. description: |-
  6366. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  6367. map is equivalent to an element of matchExpressions, whose key field is "key", the
  6368. operator is "In", and the values array contains only "value". The requirements are ANDed.
  6369. type: object
  6370. type: object
  6371. x-kubernetes-map-type: atomic
  6372. storageClassName:
  6373. description: |-
  6374. storageClassName is the name of the StorageClass required by the claim.
  6375. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  6376. type: string
  6377. volumeAttributesClassName:
  6378. description: |-
  6379. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  6380. If specified, the CSI driver will create or update the volume with the attributes defined
  6381. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  6382. it can be changed after the claim is created. An empty string or nil value indicates that no
  6383. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  6384. this field can be reset to its previous value (including nil) to cancel the modification.
  6385. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  6386. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  6387. exists.
  6388. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  6389. type: string
  6390. volumeMode:
  6391. description: |-
  6392. volumeMode defines what type of volume is required by the claim.
  6393. Value of Filesystem is implied when not included in claim spec.
  6394. type: string
  6395. volumeName:
  6396. description: volumeName is the binding reference to the PersistentVolume
  6397. backing this claim.
  6398. type: string
  6399. type: object
  6400. resizeInUseVolumes:
  6401. default: true
  6402. description: Resize existent PVCs, defaults to true
  6403. type: boolean
  6404. size:
  6405. description: |-
  6406. Size of the storage. Required if not already specified in the PVC template.
  6407. Changes to this field are automatically reapplied to the created PVCs.
  6408. Size cannot be decreased.
  6409. type: string
  6410. storageClass:
  6411. description: |-
  6412. StorageClass to use for PVCs. Applied after
  6413. evaluating the PVC template, if available.
  6414. If not specified, the generated PVCs will use the
  6415. default storage class
  6416. type: string
  6417. type: object
  6418. superuserSecret:
  6419. description: |-
  6420. The secret containing the superuser password. If not defined a new
  6421. secret will be created with a randomly generated password
  6422. properties:
  6423. name:
  6424. description: Name of the referent.
  6425. type: string
  6426. required:
  6427. - name
  6428. type: object
  6429. switchoverDelay:
  6430. default: 3600
  6431. description: |-
  6432. The time in seconds that is allowed for a primary PostgreSQL instance
  6433. to gracefully shutdown during a switchover.
  6434. Default value is 3600 seconds (1 hour).
  6435. format: int32
  6436. type: integer
  6437. tablespaces:
  6438. description: The tablespaces configuration
  6439. items:
  6440. description: |-
  6441. TablespaceConfiguration is the configuration of a tablespace, and includes
  6442. the storage specification for the tablespace
  6443. properties:
  6444. name:
  6445. description: The name of the tablespace
  6446. type: string
  6447. owner:
  6448. description: Owner is the PostgreSQL user owning the tablespace
  6449. properties:
  6450. name:
  6451. type: string
  6452. type: object
  6453. storage:
  6454. description: The storage configuration for the tablespace
  6455. properties:
  6456. pvcTemplate:
  6457. description: Template to be used to generate the Persistent
  6458. Volume Claim
  6459. properties:
  6460. accessModes:
  6461. description: |-
  6462. accessModes contains the desired access modes the volume should have.
  6463. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  6464. items:
  6465. type: string
  6466. type: array
  6467. x-kubernetes-list-type: atomic
  6468. dataSource:
  6469. description: |-
  6470. dataSource field can be used to specify either:
  6471. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  6472. * An existing PVC (PersistentVolumeClaim)
  6473. If the provisioner or an external controller can support the specified data source,
  6474. it will create a new volume based on the contents of the specified data source.
  6475. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  6476. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  6477. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  6478. properties:
  6479. apiGroup:
  6480. description: |-
  6481. APIGroup is the group for the resource being referenced.
  6482. If APIGroup is not specified, the specified Kind must be in the core API group.
  6483. For any other third-party types, APIGroup is required.
  6484. type: string
  6485. kind:
  6486. description: Kind is the type of resource being
  6487. referenced
  6488. type: string
  6489. name:
  6490. description: Name is the name of resource being
  6491. referenced
  6492. type: string
  6493. required:
  6494. - kind
  6495. - name
  6496. type: object
  6497. x-kubernetes-map-type: atomic
  6498. dataSourceRef:
  6499. description: |-
  6500. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  6501. volume is desired. This may be any object from a non-empty API group (non
  6502. core object) or a PersistentVolumeClaim object.
  6503. When this field is specified, volume binding will only succeed if the type of
  6504. the specified object matches some installed volume populator or dynamic
  6505. provisioner.
  6506. This field will replace the functionality of the dataSource field and as such
  6507. if both fields are non-empty, they must have the same value. For backwards
  6508. compatibility, when namespace isn't specified in dataSourceRef,
  6509. both fields (dataSource and dataSourceRef) will be set to the same
  6510. value automatically if one of them is empty and the other is non-empty.
  6511. When namespace is specified in dataSourceRef,
  6512. dataSource isn't set to the same value and must be empty.
  6513. There are three important differences between dataSource and dataSourceRef:
  6514. * While dataSource only allows two specific types of objects, dataSourceRef
  6515. allows any non-core object, as well as PersistentVolumeClaim objects.
  6516. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  6517. preserves all values, and generates an error if a disallowed value is
  6518. specified.
  6519. * While dataSource only allows local objects, dataSourceRef allows objects
  6520. in any namespaces.
  6521. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  6522. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6523. properties:
  6524. apiGroup:
  6525. description: |-
  6526. APIGroup is the group for the resource being referenced.
  6527. If APIGroup is not specified, the specified Kind must be in the core API group.
  6528. For any other third-party types, APIGroup is required.
  6529. type: string
  6530. kind:
  6531. description: Kind is the type of resource being
  6532. referenced
  6533. type: string
  6534. name:
  6535. description: Name is the name of resource being
  6536. referenced
  6537. type: string
  6538. namespace:
  6539. description: |-
  6540. Namespace is the namespace of resource being referenced
  6541. 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.
  6542. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6543. type: string
  6544. required:
  6545. - kind
  6546. - name
  6547. type: object
  6548. resources:
  6549. description: |-
  6550. resources represents the minimum resources the volume should have.
  6551. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  6552. that are lower than previous value but must still be higher than capacity recorded in the
  6553. status field of the claim.
  6554. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  6555. properties:
  6556. limits:
  6557. additionalProperties:
  6558. anyOf:
  6559. - type: integer
  6560. - type: string
  6561. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6562. x-kubernetes-int-or-string: true
  6563. description: |-
  6564. Limits describes the maximum amount of compute resources allowed.
  6565. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6566. type: object
  6567. requests:
  6568. additionalProperties:
  6569. anyOf:
  6570. - type: integer
  6571. - type: string
  6572. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6573. x-kubernetes-int-or-string: true
  6574. description: |-
  6575. Requests describes the minimum amount of compute resources required.
  6576. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  6577. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  6578. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6579. type: object
  6580. type: object
  6581. selector:
  6582. description: selector is a label query over volumes
  6583. to consider for binding.
  6584. properties:
  6585. matchExpressions:
  6586. description: matchExpressions is a list of label
  6587. selector requirements. The requirements are ANDed.
  6588. items:
  6589. description: |-
  6590. A label selector requirement is a selector that contains values, a key, and an operator that
  6591. relates the key and values.
  6592. properties:
  6593. key:
  6594. description: key is the label key that the
  6595. selector applies to.
  6596. type: string
  6597. operator:
  6598. description: |-
  6599. operator represents a key's relationship to a set of values.
  6600. Valid operators are In, NotIn, Exists and DoesNotExist.
  6601. type: string
  6602. values:
  6603. description: |-
  6604. values is an array of string values. If the operator is In or NotIn,
  6605. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  6606. the values array must be empty. This array is replaced during a strategic
  6607. merge patch.
  6608. items:
  6609. type: string
  6610. type: array
  6611. x-kubernetes-list-type: atomic
  6612. required:
  6613. - key
  6614. - operator
  6615. type: object
  6616. type: array
  6617. x-kubernetes-list-type: atomic
  6618. matchLabels:
  6619. additionalProperties:
  6620. type: string
  6621. description: |-
  6622. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  6623. map is equivalent to an element of matchExpressions, whose key field is "key", the
  6624. operator is "In", and the values array contains only "value". The requirements are ANDed.
  6625. type: object
  6626. type: object
  6627. x-kubernetes-map-type: atomic
  6628. storageClassName:
  6629. description: |-
  6630. storageClassName is the name of the StorageClass required by the claim.
  6631. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  6632. type: string
  6633. volumeAttributesClassName:
  6634. description: |-
  6635. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  6636. If specified, the CSI driver will create or update the volume with the attributes defined
  6637. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  6638. it can be changed after the claim is created. An empty string or nil value indicates that no
  6639. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  6640. this field can be reset to its previous value (including nil) to cancel the modification.
  6641. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  6642. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  6643. exists.
  6644. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  6645. type: string
  6646. volumeMode:
  6647. description: |-
  6648. volumeMode defines what type of volume is required by the claim.
  6649. Value of Filesystem is implied when not included in claim spec.
  6650. type: string
  6651. volumeName:
  6652. description: volumeName is the binding reference to
  6653. the PersistentVolume backing this claim.
  6654. type: string
  6655. type: object
  6656. resizeInUseVolumes:
  6657. default: true
  6658. description: Resize existent PVCs, defaults to true
  6659. type: boolean
  6660. size:
  6661. description: |-
  6662. Size of the storage. Required if not already specified in the PVC template.
  6663. Changes to this field are automatically reapplied to the created PVCs.
  6664. Size cannot be decreased.
  6665. type: string
  6666. storageClass:
  6667. description: |-
  6668. StorageClass to use for PVCs. Applied after
  6669. evaluating the PVC template, if available.
  6670. If not specified, the generated PVCs will use the
  6671. default storage class
  6672. type: string
  6673. type: object
  6674. temporary:
  6675. default: false
  6676. description: |-
  6677. When set to true, the tablespace will be added as a `temp_tablespaces`
  6678. entry in PostgreSQL, and will be available to automatically house temp
  6679. database objects, or other temporary files. Please refer to PostgreSQL
  6680. documentation for more information on the `temp_tablespaces` GUC.
  6681. type: boolean
  6682. required:
  6683. - name
  6684. - storage
  6685. type: object
  6686. type: array
  6687. topologySpreadConstraints:
  6688. description: |-
  6689. TopologySpreadConstraints specifies how to spread matching pods among the given topology.
  6690. More info:
  6691. https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
  6692. items:
  6693. description: TopologySpreadConstraint specifies how to spread matching
  6694. pods among the given topology.
  6695. properties:
  6696. labelSelector:
  6697. description: |-
  6698. LabelSelector is used to find matching pods.
  6699. Pods that match this label selector are counted to determine the number of pods
  6700. in their corresponding topology domain.
  6701. properties:
  6702. matchExpressions:
  6703. description: matchExpressions is a list of label selector
  6704. requirements. The requirements are ANDed.
  6705. items:
  6706. description: |-
  6707. A label selector requirement is a selector that contains values, a key, and an operator that
  6708. relates the key and values.
  6709. properties:
  6710. key:
  6711. description: key is the label key that the selector
  6712. applies to.
  6713. type: string
  6714. operator:
  6715. description: |-
  6716. operator represents a key's relationship to a set of values.
  6717. Valid operators are In, NotIn, Exists and DoesNotExist.
  6718. type: string
  6719. values:
  6720. description: |-
  6721. values is an array of string values. If the operator is In or NotIn,
  6722. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  6723. the values array must be empty. This array is replaced during a strategic
  6724. merge patch.
  6725. items:
  6726. type: string
  6727. type: array
  6728. x-kubernetes-list-type: atomic
  6729. required:
  6730. - key
  6731. - operator
  6732. type: object
  6733. type: array
  6734. x-kubernetes-list-type: atomic
  6735. matchLabels:
  6736. additionalProperties:
  6737. type: string
  6738. description: |-
  6739. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  6740. map is equivalent to an element of matchExpressions, whose key field is "key", the
  6741. operator is "In", and the values array contains only "value". The requirements are ANDed.
  6742. type: object
  6743. type: object
  6744. x-kubernetes-map-type: atomic
  6745. matchLabelKeys:
  6746. description: |-
  6747. MatchLabelKeys is a set of pod label keys to select the pods over which
  6748. spreading will be calculated. The keys are used to lookup values from the
  6749. incoming pod labels, those key-value labels are ANDed with labelSelector
  6750. to select the group of existing pods over which spreading will be calculated
  6751. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  6752. MatchLabelKeys cannot be set when LabelSelector isn't set.
  6753. Keys that don't exist in the incoming pod labels will
  6754. be ignored. A null or empty list means only match against labelSelector.
  6755. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  6756. items:
  6757. type: string
  6758. type: array
  6759. x-kubernetes-list-type: atomic
  6760. maxSkew:
  6761. description: |-
  6762. MaxSkew describes the degree to which pods may be unevenly distributed.
  6763. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  6764. between the number of matching pods in the target topology and the global minimum.
  6765. The global minimum is the minimum number of matching pods in an eligible domain
  6766. or zero if the number of eligible domains is less than MinDomains.
  6767. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  6768. labelSelector spread as 2/2/1:
  6769. In this case, the global minimum is 1.
  6770. | zone1 | zone2 | zone3 |
  6771. | P P | P P | P |
  6772. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  6773. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  6774. violate MaxSkew(1).
  6775. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  6776. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  6777. to topologies that satisfy it.
  6778. It's a required field. Default value is 1 and 0 is not allowed.
  6779. format: int32
  6780. type: integer
  6781. minDomains:
  6782. description: |-
  6783. MinDomains indicates a minimum number of eligible domains.
  6784. When the number of eligible domains with matching topology keys is less than minDomains,
  6785. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  6786. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  6787. this value has no effect on scheduling.
  6788. As a result, when the number of eligible domains is less than minDomains,
  6789. scheduler won't schedule more than maxSkew Pods to those domains.
  6790. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  6791. Valid values are integers greater than 0.
  6792. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  6793. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  6794. labelSelector spread as 2/2/2:
  6795. | zone1 | zone2 | zone3 |
  6796. | P P | P P | P P |
  6797. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  6798. In this situation, new pod with the same labelSelector cannot be scheduled,
  6799. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  6800. it will violate MaxSkew.
  6801. format: int32
  6802. type: integer
  6803. nodeAffinityPolicy:
  6804. description: |-
  6805. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  6806. when calculating pod topology spread skew. Options are:
  6807. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  6808. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  6809. If this value is nil, the behavior is equivalent to the Honor policy.
  6810. type: string
  6811. nodeTaintsPolicy:
  6812. description: |-
  6813. NodeTaintsPolicy indicates how we will treat node taints when calculating
  6814. pod topology spread skew. Options are:
  6815. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  6816. has a toleration, are included.
  6817. - Ignore: node taints are ignored. All nodes are included.
  6818. If this value is nil, the behavior is equivalent to the Ignore policy.
  6819. type: string
  6820. topologyKey:
  6821. description: |-
  6822. TopologyKey is the key of node labels. Nodes that have a label with this key
  6823. and identical values are considered to be in the same topology.
  6824. We consider each <key, value> as a "bucket", and try to put balanced number
  6825. of pods into each bucket.
  6826. We define a domain as a particular instance of a topology.
  6827. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  6828. nodeAffinityPolicy and nodeTaintsPolicy.
  6829. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  6830. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  6831. It's a required field.
  6832. type: string
  6833. whenUnsatisfiable:
  6834. description: |-
  6835. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  6836. the spread constraint.
  6837. - DoNotSchedule (default) tells the scheduler not to schedule it.
  6838. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  6839. but giving higher precedence to topologies that would help reduce the
  6840. skew.
  6841. A constraint is considered "Unsatisfiable" for an incoming pod
  6842. if and only if every possible node assignment for that pod would violate
  6843. "MaxSkew" on some topology.
  6844. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  6845. labelSelector spread as 3/1/1:
  6846. | zone1 | zone2 | zone3 |
  6847. | P P P | P | P |
  6848. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  6849. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  6850. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  6851. won't make it *more* imbalanced.
  6852. It's a required field.
  6853. type: string
  6854. required:
  6855. - maxSkew
  6856. - topologyKey
  6857. - whenUnsatisfiable
  6858. type: object
  6859. type: array
  6860. walStorage:
  6861. description: Configuration of the storage for PostgreSQL WAL (Write-Ahead
  6862. Log)
  6863. properties:
  6864. pvcTemplate:
  6865. description: Template to be used to generate the Persistent Volume
  6866. Claim
  6867. properties:
  6868. accessModes:
  6869. description: |-
  6870. accessModes contains the desired access modes the volume should have.
  6871. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  6872. items:
  6873. type: string
  6874. type: array
  6875. x-kubernetes-list-type: atomic
  6876. dataSource:
  6877. description: |-
  6878. dataSource field can be used to specify either:
  6879. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  6880. * An existing PVC (PersistentVolumeClaim)
  6881. If the provisioner or an external controller can support the specified data source,
  6882. it will create a new volume based on the contents of the specified data source.
  6883. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  6884. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  6885. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  6886. properties:
  6887. apiGroup:
  6888. description: |-
  6889. APIGroup is the group for the resource being referenced.
  6890. If APIGroup is not specified, the specified Kind must be in the core API group.
  6891. For any other third-party types, APIGroup is required.
  6892. type: string
  6893. kind:
  6894. description: Kind is the type of resource being referenced
  6895. type: string
  6896. name:
  6897. description: Name is the name of resource being referenced
  6898. type: string
  6899. required:
  6900. - kind
  6901. - name
  6902. type: object
  6903. x-kubernetes-map-type: atomic
  6904. dataSourceRef:
  6905. description: |-
  6906. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  6907. volume is desired. This may be any object from a non-empty API group (non
  6908. core object) or a PersistentVolumeClaim object.
  6909. When this field is specified, volume binding will only succeed if the type of
  6910. the specified object matches some installed volume populator or dynamic
  6911. provisioner.
  6912. This field will replace the functionality of the dataSource field and as such
  6913. if both fields are non-empty, they must have the same value. For backwards
  6914. compatibility, when namespace isn't specified in dataSourceRef,
  6915. both fields (dataSource and dataSourceRef) will be set to the same
  6916. value automatically if one of them is empty and the other is non-empty.
  6917. When namespace is specified in dataSourceRef,
  6918. dataSource isn't set to the same value and must be empty.
  6919. There are three important differences between dataSource and dataSourceRef:
  6920. * While dataSource only allows two specific types of objects, dataSourceRef
  6921. allows any non-core object, as well as PersistentVolumeClaim objects.
  6922. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  6923. preserves all values, and generates an error if a disallowed value is
  6924. specified.
  6925. * While dataSource only allows local objects, dataSourceRef allows objects
  6926. in any namespaces.
  6927. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  6928. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6929. properties:
  6930. apiGroup:
  6931. description: |-
  6932. APIGroup is the group for the resource being referenced.
  6933. If APIGroup is not specified, the specified Kind must be in the core API group.
  6934. For any other third-party types, APIGroup is required.
  6935. type: string
  6936. kind:
  6937. description: Kind is the type of resource being referenced
  6938. type: string
  6939. name:
  6940. description: Name is the name of resource being referenced
  6941. type: string
  6942. namespace:
  6943. description: |-
  6944. Namespace is the namespace of resource being referenced
  6945. 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.
  6946. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  6947. type: string
  6948. required:
  6949. - kind
  6950. - name
  6951. type: object
  6952. resources:
  6953. description: |-
  6954. resources represents the minimum resources the volume should have.
  6955. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  6956. that are lower than previous value but must still be higher than capacity recorded in the
  6957. status field of the claim.
  6958. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  6959. properties:
  6960. limits:
  6961. additionalProperties:
  6962. anyOf:
  6963. - type: integer
  6964. - type: string
  6965. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6966. x-kubernetes-int-or-string: true
  6967. description: |-
  6968. Limits describes the maximum amount of compute resources allowed.
  6969. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6970. type: object
  6971. requests:
  6972. additionalProperties:
  6973. anyOf:
  6974. - type: integer
  6975. - type: string
  6976. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  6977. x-kubernetes-int-or-string: true
  6978. description: |-
  6979. Requests describes the minimum amount of compute resources required.
  6980. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  6981. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  6982. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  6983. type: object
  6984. type: object
  6985. selector:
  6986. description: selector is a label query over volumes to consider
  6987. for binding.
  6988. properties:
  6989. matchExpressions:
  6990. description: matchExpressions is a list of label selector
  6991. requirements. The requirements are ANDed.
  6992. items:
  6993. description: |-
  6994. A label selector requirement is a selector that contains values, a key, and an operator that
  6995. relates the key and values.
  6996. properties:
  6997. key:
  6998. description: key is the label key that the selector
  6999. applies to.
  7000. type: string
  7001. operator:
  7002. description: |-
  7003. operator represents a key's relationship to a set of values.
  7004. Valid operators are In, NotIn, Exists and DoesNotExist.
  7005. type: string
  7006. values:
  7007. description: |-
  7008. values is an array of string values. If the operator is In or NotIn,
  7009. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  7010. the values array must be empty. This array is replaced during a strategic
  7011. merge patch.
  7012. items:
  7013. type: string
  7014. type: array
  7015. x-kubernetes-list-type: atomic
  7016. required:
  7017. - key
  7018. - operator
  7019. type: object
  7020. type: array
  7021. x-kubernetes-list-type: atomic
  7022. matchLabels:
  7023. additionalProperties:
  7024. type: string
  7025. description: |-
  7026. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  7027. map is equivalent to an element of matchExpressions, whose key field is "key", the
  7028. operator is "In", and the values array contains only "value". The requirements are ANDed.
  7029. type: object
  7030. type: object
  7031. x-kubernetes-map-type: atomic
  7032. storageClassName:
  7033. description: |-
  7034. storageClassName is the name of the StorageClass required by the claim.
  7035. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  7036. type: string
  7037. volumeAttributesClassName:
  7038. description: |-
  7039. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  7040. If specified, the CSI driver will create or update the volume with the attributes defined
  7041. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  7042. it can be changed after the claim is created. An empty string or nil value indicates that no
  7043. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  7044. this field can be reset to its previous value (including nil) to cancel the modification.
  7045. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  7046. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  7047. exists.
  7048. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  7049. type: string
  7050. volumeMode:
  7051. description: |-
  7052. volumeMode defines what type of volume is required by the claim.
  7053. Value of Filesystem is implied when not included in claim spec.
  7054. type: string
  7055. volumeName:
  7056. description: volumeName is the binding reference to the PersistentVolume
  7057. backing this claim.
  7058. type: string
  7059. type: object
  7060. resizeInUseVolumes:
  7061. default: true
  7062. description: Resize existent PVCs, defaults to true
  7063. type: boolean
  7064. size:
  7065. description: |-
  7066. Size of the storage. Required if not already specified in the PVC template.
  7067. Changes to this field are automatically reapplied to the created PVCs.
  7068. Size cannot be decreased.
  7069. type: string
  7070. storageClass:
  7071. description: |-
  7072. StorageClass to use for PVCs. Applied after
  7073. evaluating the PVC template, if available.
  7074. If not specified, the generated PVCs will use the
  7075. default storage class
  7076. type: string
  7077. type: object
  7078. required:
  7079. - instances
  7080. type: object
  7081. x-kubernetes-validations:
  7082. - message: imageName and imageCatalogRef are mutually exclusive
  7083. rule: '!(has(self.imageCatalogRef) && has(self.imageName))'
  7084. status:
  7085. description: |-
  7086. Most recently observed status of the cluster. This data may not be up
  7087. to date. Populated by the system. Read-only.
  7088. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  7089. properties:
  7090. availableArchitectures:
  7091. description: AvailableArchitectures reports the available architectures
  7092. of a cluster
  7093. items:
  7094. description: AvailableArchitecture represents the state of a cluster's
  7095. architecture
  7096. properties:
  7097. goArch:
  7098. description: GoArch is the name of the executable architecture
  7099. type: string
  7100. hash:
  7101. description: Hash is the hash of the executable
  7102. type: string
  7103. required:
  7104. - goArch
  7105. - hash
  7106. type: object
  7107. type: array
  7108. certificates:
  7109. description: The configuration for the CA and related certificates,
  7110. initialized with defaults.
  7111. properties:
  7112. clientCASecret:
  7113. description: |-
  7114. The secret containing the Client CA certificate. If not defined, a new secret will be created
  7115. with a self-signed CA and will be used to generate all the client certificates.<br />
  7116. <br />
  7117. Contains:<br />
  7118. <br />
  7119. - `ca.crt`: CA that should be used to validate the client certificates,
  7120. used as `ssl_ca_file` of all the instances.<br />
  7121. - `ca.key`: key used to generate client certificates, if ReplicationTLSSecret is provided,
  7122. this can be omitted.<br />
  7123. type: string
  7124. expirations:
  7125. additionalProperties:
  7126. type: string
  7127. description: Expiration dates for all certificates.
  7128. type: object
  7129. replicationTLSSecret:
  7130. description: |-
  7131. The secret of type kubernetes.io/tls containing the client certificate to authenticate as
  7132. the `streaming_replica` user.
  7133. If not defined, ClientCASecret must provide also `ca.key`, and a new secret will be
  7134. created using the provided CA.
  7135. type: string
  7136. serverAltDNSNames:
  7137. description: The list of the server alternative DNS names to be
  7138. added to the generated server TLS certificates, when required.
  7139. items:
  7140. type: string
  7141. type: array
  7142. serverCASecret:
  7143. description: |-
  7144. The secret containing the Server CA certificate. If not defined, a new secret will be created
  7145. with a self-signed CA and will be used to generate the TLS certificate ServerTLSSecret.<br />
  7146. <br />
  7147. Contains:<br />
  7148. <br />
  7149. - `ca.crt`: CA that should be used to validate the server certificate,
  7150. used as `sslrootcert` in client connection strings.<br />
  7151. - `ca.key`: key used to generate Server SSL certs, if ServerTLSSecret is provided,
  7152. this can be omitted.<br />
  7153. type: string
  7154. serverTLSSecret:
  7155. description: |-
  7156. The secret of type kubernetes.io/tls containing the server TLS certificate and key that will be set as
  7157. `ssl_cert_file` and `ssl_key_file` so that clients can connect to postgres securely.
  7158. If not defined, ServerCASecret must provide also `ca.key` and a new secret will be
  7159. created using the provided CA.
  7160. type: string
  7161. type: object
  7162. cloudNativePGCommitHash:
  7163. description: The commit hash number of which this operator running
  7164. type: string
  7165. cloudNativePGOperatorHash:
  7166. description: The hash of the binary of the operator
  7167. type: string
  7168. conditions:
  7169. description: Conditions for cluster object
  7170. items:
  7171. description: Condition contains details for one aspect of the current
  7172. state of this API Resource.
  7173. properties:
  7174. lastTransitionTime:
  7175. description: |-
  7176. lastTransitionTime is the last time the condition transitioned from one status to another.
  7177. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
  7178. format: date-time
  7179. type: string
  7180. message:
  7181. description: |-
  7182. message is a human readable message indicating details about the transition.
  7183. This may be an empty string.
  7184. maxLength: 32768
  7185. type: string
  7186. observedGeneration:
  7187. description: |-
  7188. observedGeneration represents the .metadata.generation that the condition was set based upon.
  7189. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
  7190. with respect to the current state of the instance.
  7191. format: int64
  7192. minimum: 0
  7193. type: integer
  7194. reason:
  7195. description: |-
  7196. reason contains a programmatic identifier indicating the reason for the condition's last transition.
  7197. Producers of specific condition types may define expected values and meanings for this field,
  7198. and whether the values are considered a guaranteed API.
  7199. The value should be a CamelCase string.
  7200. This field may not be empty.
  7201. maxLength: 1024
  7202. minLength: 1
  7203. pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
  7204. type: string
  7205. status:
  7206. description: status of the condition, one of True, False, Unknown.
  7207. enum:
  7208. - "True"
  7209. - "False"
  7210. - Unknown
  7211. type: string
  7212. type:
  7213. description: type of condition in CamelCase or in foo.example.com/CamelCase.
  7214. maxLength: 316
  7215. pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
  7216. type: string
  7217. required:
  7218. - lastTransitionTime
  7219. - message
  7220. - reason
  7221. - status
  7222. - type
  7223. type: object
  7224. type: array
  7225. configMapResourceVersion:
  7226. description: |-
  7227. The list of resource versions of the configmaps,
  7228. managed by the operator. Every change here is done in the
  7229. interest of the instance manager, which will refresh the
  7230. configmap data
  7231. properties:
  7232. metrics:
  7233. additionalProperties:
  7234. type: string
  7235. description: |-
  7236. A map with the versions of all the config maps used to pass metrics.
  7237. Map keys are the config map names, map values are the versions
  7238. type: object
  7239. type: object
  7240. currentPrimary:
  7241. description: Current primary instance
  7242. type: string
  7243. currentPrimaryFailingSinceTimestamp:
  7244. description: |-
  7245. The timestamp when the primary was detected to be unhealthy
  7246. This field is reported when `.spec.failoverDelay` is populated or during online upgrades
  7247. type: string
  7248. currentPrimaryTimestamp:
  7249. description: The timestamp when the last actual promotion to primary
  7250. has occurred
  7251. type: string
  7252. danglingPVC:
  7253. description: |-
  7254. List of all the PVCs created by this cluster and still available
  7255. which are not attached to a Pod
  7256. items:
  7257. type: string
  7258. type: array
  7259. demotionToken:
  7260. description: |-
  7261. DemotionToken is a JSON token containing the information
  7262. from pg_controldata such as Database system identifier, Latest checkpoint's
  7263. TimeLineID, Latest checkpoint's REDO location, Latest checkpoint's REDO
  7264. WAL file, and Time of latest checkpoint
  7265. type: string
  7266. firstRecoverabilityPoint:
  7267. description: |-
  7268. The first recoverability point, stored as a date in RFC3339 format.
  7269. This field is calculated from the content of FirstRecoverabilityPointByMethod.
  7270. Deprecated: the field is not set for backup plugins.
  7271. type: string
  7272. firstRecoverabilityPointByMethod:
  7273. additionalProperties:
  7274. format: date-time
  7275. type: string
  7276. description: |-
  7277. The first recoverability point, stored as a date in RFC3339 format, per backup method type.
  7278. Deprecated: the field is not set for backup plugins.
  7279. type: object
  7280. healthyPVC:
  7281. description: List of all the PVCs not dangling nor initializing
  7282. items:
  7283. type: string
  7284. type: array
  7285. image:
  7286. description: Image contains the image name used by the pods
  7287. type: string
  7288. initializingPVC:
  7289. description: List of all the PVCs that are being initialized by this
  7290. cluster
  7291. items:
  7292. type: string
  7293. type: array
  7294. instanceNames:
  7295. description: List of instance names in the cluster
  7296. items:
  7297. type: string
  7298. type: array
  7299. instances:
  7300. description: The total number of PVC Groups detected in the cluster.
  7301. It may differ from the number of existing instance pods.
  7302. type: integer
  7303. instancesReportedState:
  7304. additionalProperties:
  7305. description: InstanceReportedState describes the last reported state
  7306. of an instance during a reconciliation loop
  7307. properties:
  7308. ip:
  7309. description: IP address of the instance
  7310. type: string
  7311. isPrimary:
  7312. description: indicates if an instance is the primary one
  7313. type: boolean
  7314. timeLineID:
  7315. description: indicates on which TimelineId the instance is
  7316. type: integer
  7317. required:
  7318. - isPrimary
  7319. type: object
  7320. description: The reported state of the instances during the last reconciliation
  7321. loop
  7322. type: object
  7323. instancesStatus:
  7324. additionalProperties:
  7325. items:
  7326. type: string
  7327. type: array
  7328. description: InstancesStatus indicates in which status the instances
  7329. are
  7330. type: object
  7331. jobCount:
  7332. description: How many Jobs have been created by this cluster
  7333. format: int32
  7334. type: integer
  7335. lastFailedBackup:
  7336. description: |-
  7337. Last failed backup, stored as a date in RFC3339 format.
  7338. Deprecated: the field is not set for backup plugins.
  7339. type: string
  7340. lastPromotionToken:
  7341. description: |-
  7342. LastPromotionToken is the last verified promotion token that
  7343. was used to promote a replica cluster
  7344. type: string
  7345. lastSuccessfulBackup:
  7346. description: |-
  7347. Last successful backup, stored as a date in RFC3339 format.
  7348. This field is calculated from the content of LastSuccessfulBackupByMethod.
  7349. Deprecated: the field is not set for backup plugins.
  7350. type: string
  7351. lastSuccessfulBackupByMethod:
  7352. additionalProperties:
  7353. format: date-time
  7354. type: string
  7355. description: |-
  7356. Last successful backup, stored as a date in RFC3339 format, per backup method type.
  7357. Deprecated: the field is not set for backup plugins.
  7358. type: object
  7359. latestGeneratedNode:
  7360. description: ID of the latest generated node (used to avoid node name
  7361. clashing)
  7362. type: integer
  7363. managedRolesStatus:
  7364. description: ManagedRolesStatus reports the state of the managed roles
  7365. in the cluster
  7366. properties:
  7367. byStatus:
  7368. additionalProperties:
  7369. items:
  7370. type: string
  7371. type: array
  7372. description: ByStatus gives the list of roles in each state
  7373. type: object
  7374. cannotReconcile:
  7375. additionalProperties:
  7376. items:
  7377. type: string
  7378. type: array
  7379. description: |-
  7380. CannotReconcile lists roles that cannot be reconciled in PostgreSQL,
  7381. with an explanation of the cause
  7382. type: object
  7383. passwordStatus:
  7384. additionalProperties:
  7385. description: PasswordState represents the state of the password
  7386. of a managed RoleConfiguration
  7387. properties:
  7388. resourceVersion:
  7389. description: the resource version of the password secret
  7390. type: string
  7391. transactionID:
  7392. description: the last transaction ID to affect the role
  7393. definition in PostgreSQL
  7394. format: int64
  7395. type: integer
  7396. type: object
  7397. description: PasswordStatus gives the last transaction id and
  7398. password secret version for each managed role
  7399. type: object
  7400. type: object
  7401. onlineUpdateEnabled:
  7402. description: OnlineUpdateEnabled shows if the online upgrade is enabled
  7403. inside the cluster
  7404. type: boolean
  7405. pgDataImageInfo:
  7406. description: PGDataImageInfo contains the details of the latest image
  7407. that has run on the current data directory.
  7408. properties:
  7409. image:
  7410. description: Image is the image name
  7411. type: string
  7412. majorVersion:
  7413. description: MajorVersion is the major version of the image
  7414. type: integer
  7415. required:
  7416. - image
  7417. - majorVersion
  7418. type: object
  7419. phase:
  7420. description: Current phase of the cluster
  7421. type: string
  7422. phaseReason:
  7423. description: Reason for the current phase
  7424. type: string
  7425. pluginStatus:
  7426. description: PluginStatus is the status of the loaded plugins
  7427. items:
  7428. description: PluginStatus is the status of a loaded plugin
  7429. properties:
  7430. backupCapabilities:
  7431. description: |-
  7432. BackupCapabilities are the list of capabilities of the
  7433. plugin regarding the Backup management
  7434. items:
  7435. type: string
  7436. type: array
  7437. capabilities:
  7438. description: |-
  7439. Capabilities are the list of capabilities of the
  7440. plugin
  7441. items:
  7442. type: string
  7443. type: array
  7444. name:
  7445. description: Name is the name of the plugin
  7446. type: string
  7447. operatorCapabilities:
  7448. description: |-
  7449. OperatorCapabilities are the list of capabilities of the
  7450. plugin regarding the reconciler
  7451. items:
  7452. type: string
  7453. type: array
  7454. restoreJobHookCapabilities:
  7455. description: |-
  7456. RestoreJobHookCapabilities are the list of capabilities of the
  7457. plugin regarding the RestoreJobHook management
  7458. items:
  7459. type: string
  7460. type: array
  7461. status:
  7462. description: Status contain the status reported by the plugin
  7463. through the SetStatusInCluster interface
  7464. type: string
  7465. version:
  7466. description: |-
  7467. Version is the version of the plugin loaded by the
  7468. latest reconciliation loop
  7469. type: string
  7470. walCapabilities:
  7471. description: |-
  7472. WALCapabilities are the list of capabilities of the
  7473. plugin regarding the WAL management
  7474. items:
  7475. type: string
  7476. type: array
  7477. required:
  7478. - name
  7479. - version
  7480. type: object
  7481. type: array
  7482. poolerIntegrations:
  7483. description: The integration needed by poolers referencing the cluster
  7484. properties:
  7485. pgBouncerIntegration:
  7486. description: PgBouncerIntegrationStatus encapsulates the needed
  7487. integration for the pgbouncer poolers referencing the cluster
  7488. properties:
  7489. secrets:
  7490. items:
  7491. type: string
  7492. type: array
  7493. type: object
  7494. type: object
  7495. pvcCount:
  7496. description: How many PVCs have been created by this cluster
  7497. format: int32
  7498. type: integer
  7499. readService:
  7500. description: Current list of read pods
  7501. type: string
  7502. readyInstances:
  7503. description: The total number of ready instances in the cluster. It
  7504. is equal to the number of ready instance pods.
  7505. type: integer
  7506. resizingPVC:
  7507. description: List of all the PVCs that have ResizingPVC condition.
  7508. items:
  7509. type: string
  7510. type: array
  7511. secretsResourceVersion:
  7512. description: |-
  7513. The list of resource versions of the secrets
  7514. managed by the operator. Every change here is done in the
  7515. interest of the instance manager, which will refresh the
  7516. secret data
  7517. properties:
  7518. applicationSecretVersion:
  7519. description: The resource version of the "app" user secret
  7520. type: string
  7521. barmanEndpointCA:
  7522. description: The resource version of the Barman Endpoint CA if
  7523. provided
  7524. type: string
  7525. caSecretVersion:
  7526. description: Unused. Retained for compatibility with old versions.
  7527. type: string
  7528. clientCaSecretVersion:
  7529. description: The resource version of the PostgreSQL client-side
  7530. CA secret version
  7531. type: string
  7532. externalClusterSecretVersion:
  7533. additionalProperties:
  7534. type: string
  7535. description: The resource versions of the external cluster secrets
  7536. type: object
  7537. managedRoleSecretVersion:
  7538. additionalProperties:
  7539. type: string
  7540. description: The resource versions of the managed roles secrets
  7541. type: object
  7542. metrics:
  7543. additionalProperties:
  7544. type: string
  7545. description: |-
  7546. A map with the versions of all the secrets used to pass metrics.
  7547. Map keys are the secret names, map values are the versions
  7548. type: object
  7549. replicationSecretVersion:
  7550. description: The resource version of the "streaming_replica" user
  7551. secret
  7552. type: string
  7553. serverCaSecretVersion:
  7554. description: The resource version of the PostgreSQL server-side
  7555. CA secret version
  7556. type: string
  7557. serverSecretVersion:
  7558. description: The resource version of the PostgreSQL server-side
  7559. secret version
  7560. type: string
  7561. superuserSecretVersion:
  7562. description: The resource version of the "postgres" user secret
  7563. type: string
  7564. type: object
  7565. switchReplicaClusterStatus:
  7566. description: SwitchReplicaClusterStatus is the status of the switch
  7567. to replica cluster
  7568. properties:
  7569. inProgress:
  7570. description: InProgress indicates if there is an ongoing procedure
  7571. of switching a cluster to a replica cluster.
  7572. type: boolean
  7573. type: object
  7574. systemID:
  7575. description: SystemID is the latest detected PostgreSQL SystemID
  7576. type: string
  7577. tablespacesStatus:
  7578. description: TablespacesStatus reports the state of the declarative
  7579. tablespaces in the cluster
  7580. items:
  7581. description: TablespaceState represents the state of a tablespace
  7582. in a cluster
  7583. properties:
  7584. error:
  7585. description: Error is the reconciliation error, if any
  7586. type: string
  7587. name:
  7588. description: Name is the name of the tablespace
  7589. type: string
  7590. owner:
  7591. description: Owner is the PostgreSQL user owning the tablespace
  7592. type: string
  7593. state:
  7594. description: State is the latest reconciliation state
  7595. type: string
  7596. required:
  7597. - name
  7598. - state
  7599. type: object
  7600. type: array
  7601. targetPrimary:
  7602. description: |-
  7603. Target primary instance, this is different from the previous one
  7604. during a switchover or a failover
  7605. type: string
  7606. targetPrimaryTimestamp:
  7607. description: The timestamp when the last request for a new primary
  7608. has occurred
  7609. type: string
  7610. timelineID:
  7611. description: The timeline of the Postgres cluster
  7612. type: integer
  7613. topology:
  7614. description: Instances topology.
  7615. properties:
  7616. instances:
  7617. additionalProperties:
  7618. additionalProperties:
  7619. type: string
  7620. description: PodTopologyLabels represent the topology of a Pod.
  7621. map[labelName]labelValue
  7622. type: object
  7623. description: Instances contains the pod topology of the instances
  7624. type: object
  7625. nodesUsed:
  7626. description: |-
  7627. NodesUsed represents the count of distinct nodes accommodating the instances.
  7628. A value of '1' suggests that all instances are hosted on a single node,
  7629. implying the absence of High Availability (HA). Ideally, this value should
  7630. be the same as the number of instances in the Postgres HA cluster, implying
  7631. shared nothing architecture on the compute side.
  7632. format: int32
  7633. type: integer
  7634. successfullyExtracted:
  7635. description: |-
  7636. SuccessfullyExtracted indicates if the topology data was extract. It is useful to enact fallback behaviors
  7637. in synchronous replica election in case of failures
  7638. type: boolean
  7639. type: object
  7640. unusablePVC:
  7641. description: List of all the PVCs that are unusable because another
  7642. PVC is missing
  7643. items:
  7644. type: string
  7645. type: array
  7646. writeService:
  7647. description: Current write pod
  7648. type: string
  7649. type: object
  7650. required:
  7651. - metadata
  7652. - spec
  7653. type: object
  7654. served: true
  7655. storage: true
  7656. subresources:
  7657. scale:
  7658. specReplicasPath: .spec.instances
  7659. statusReplicasPath: .status.instances
  7660. status: {}
  7661. ---
  7662. apiVersion: apiextensions.k8s.io/v1
  7663. kind: CustomResourceDefinition
  7664. metadata:
  7665. annotations:
  7666. controller-gen.kubebuilder.io/version: v0.19.0
  7667. name: databases.postgresql.cnpg.io
  7668. spec:
  7669. group: postgresql.cnpg.io
  7670. names:
  7671. kind: Database
  7672. listKind: DatabaseList
  7673. plural: databases
  7674. singular: database
  7675. scope: Namespaced
  7676. versions:
  7677. - additionalPrinterColumns:
  7678. - jsonPath: .metadata.creationTimestamp
  7679. name: Age
  7680. type: date
  7681. - jsonPath: .spec.cluster.name
  7682. name: Cluster
  7683. type: string
  7684. - jsonPath: .spec.name
  7685. name: PG Name
  7686. type: string
  7687. - jsonPath: .status.applied
  7688. name: Applied
  7689. type: boolean
  7690. - description: Latest reconciliation message
  7691. jsonPath: .status.message
  7692. name: Message
  7693. type: string
  7694. name: v1
  7695. schema:
  7696. openAPIV3Schema:
  7697. description: Database is the Schema for the databases API
  7698. properties:
  7699. apiVersion:
  7700. description: |-
  7701. APIVersion defines the versioned schema of this representation of an object.
  7702. Servers should convert recognized schemas to the latest internal value, and
  7703. may reject unrecognized values.
  7704. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  7705. type: string
  7706. kind:
  7707. description: |-
  7708. Kind is a string value representing the REST resource this object represents.
  7709. Servers may infer this from the endpoint the client submits requests to.
  7710. Cannot be updated.
  7711. In CamelCase.
  7712. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  7713. type: string
  7714. metadata:
  7715. type: object
  7716. spec:
  7717. description: |-
  7718. Specification of the desired Database.
  7719. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  7720. properties:
  7721. allowConnections:
  7722. description: |-
  7723. Maps to the `ALLOW_CONNECTIONS` parameter of `CREATE DATABASE` and
  7724. `ALTER DATABASE`. If false then no one can connect to this database.
  7725. type: boolean
  7726. builtinLocale:
  7727. description: |-
  7728. Maps to the `BUILTIN_LOCALE` parameter of `CREATE DATABASE`. This
  7729. setting cannot be changed. Specifies the locale name when the
  7730. builtin provider is used. This option requires `localeProvider` to
  7731. be set to `builtin`. Available from PostgreSQL 17.
  7732. type: string
  7733. x-kubernetes-validations:
  7734. - message: builtinLocale is immutable
  7735. rule: self == oldSelf
  7736. cluster:
  7737. description: The name of the PostgreSQL cluster hosting the database.
  7738. properties:
  7739. name:
  7740. default: ""
  7741. description: |-
  7742. Name of the referent.
  7743. This field is effectively required, but due to backwards compatibility is
  7744. allowed to be empty. Instances of this type with an empty value here are
  7745. almost certainly wrong.
  7746. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  7747. type: string
  7748. type: object
  7749. x-kubernetes-map-type: atomic
  7750. collationVersion:
  7751. description: |-
  7752. Maps to the `COLLATION_VERSION` parameter of `CREATE DATABASE`. This
  7753. setting cannot be changed.
  7754. type: string
  7755. x-kubernetes-validations:
  7756. - message: collationVersion is immutable
  7757. rule: self == oldSelf
  7758. connectionLimit:
  7759. description: |-
  7760. Maps to the `CONNECTION LIMIT` clause of `CREATE DATABASE` and
  7761. `ALTER DATABASE`. How many concurrent connections can be made to
  7762. this database. -1 (the default) means no limit.
  7763. type: integer
  7764. databaseReclaimPolicy:
  7765. default: retain
  7766. description: The policy for end-of-life maintenance of this database.
  7767. enum:
  7768. - delete
  7769. - retain
  7770. type: string
  7771. encoding:
  7772. description: |-
  7773. Maps to the `ENCODING` parameter of `CREATE DATABASE`. This setting
  7774. cannot be changed. Character set encoding to use in the database.
  7775. type: string
  7776. x-kubernetes-validations:
  7777. - message: encoding is immutable
  7778. rule: self == oldSelf
  7779. ensure:
  7780. default: present
  7781. description: Ensure the PostgreSQL database is `present` or `absent`
  7782. - defaults to "present".
  7783. enum:
  7784. - present
  7785. - absent
  7786. type: string
  7787. extensions:
  7788. description: The list of extensions to be managed in the database
  7789. items:
  7790. description: ExtensionSpec configures an extension in a database
  7791. properties:
  7792. ensure:
  7793. default: present
  7794. description: |-
  7795. Specifies whether an object (e.g schema) should be present or absent
  7796. in the database. If set to `present`, the object will be created if
  7797. it does not exist. If set to `absent`, the extension/schema will be
  7798. removed if it exists.
  7799. enum:
  7800. - present
  7801. - absent
  7802. type: string
  7803. name:
  7804. description: Name of the object (extension, schema, FDW, server)
  7805. type: string
  7806. schema:
  7807. description: |-
  7808. The name of the schema in which to install the extension's objects,
  7809. in case the extension allows its contents to be relocated. If not
  7810. specified (default), and the extension's control file does not
  7811. specify a schema either, the current default object creation schema
  7812. is used.
  7813. type: string
  7814. version:
  7815. description: |-
  7816. The version of the extension to install. If empty, the operator will
  7817. install the default version (whatever is specified in the
  7818. extension's control file)
  7819. type: string
  7820. required:
  7821. - name
  7822. type: object
  7823. type: array
  7824. fdws:
  7825. description: The list of foreign data wrappers to be managed in the
  7826. database
  7827. items:
  7828. description: FDWSpec configures an Foreign Data Wrapper in a database
  7829. properties:
  7830. ensure:
  7831. default: present
  7832. description: |-
  7833. Specifies whether an object (e.g schema) should be present or absent
  7834. in the database. If set to `present`, the object will be created if
  7835. it does not exist. If set to `absent`, the extension/schema will be
  7836. removed if it exists.
  7837. enum:
  7838. - present
  7839. - absent
  7840. type: string
  7841. handler:
  7842. description: |-
  7843. Name of the handler function (e.g., "postgres_fdw_handler").
  7844. This will be empty if no handler is specified. In that case,
  7845. the default handler is registered when the FDW extension is created.
  7846. type: string
  7847. name:
  7848. description: Name of the object (extension, schema, FDW, server)
  7849. type: string
  7850. options:
  7851. description: Options specifies the configuration options for
  7852. the FDW.
  7853. items:
  7854. description: OptionSpec holds the name, value and the ensure
  7855. field for an option
  7856. properties:
  7857. ensure:
  7858. default: present
  7859. description: |-
  7860. Specifies whether an option should be present or absent in
  7861. the database. If set to `present`, the option will be
  7862. created if it does not exist. If set to `absent`, the
  7863. option will be removed if it exists.
  7864. enum:
  7865. - present
  7866. - absent
  7867. type: string
  7868. name:
  7869. description: Name of the option
  7870. type: string
  7871. value:
  7872. description: Value of the option
  7873. type: string
  7874. required:
  7875. - name
  7876. - value
  7877. type: object
  7878. type: array
  7879. owner:
  7880. description: |-
  7881. Owner specifies the database role that will own the Foreign Data Wrapper.
  7882. The role must have superuser privileges in the target database.
  7883. type: string
  7884. usage:
  7885. description: List of roles for which `USAGE` privileges on the
  7886. FDW are granted or revoked.
  7887. items:
  7888. description: UsageSpec configures a usage for a foreign data
  7889. wrapper
  7890. properties:
  7891. name:
  7892. description: Name of the usage
  7893. type: string
  7894. x-kubernetes-validations:
  7895. - message: name is required
  7896. rule: self != ''
  7897. type:
  7898. default: grant
  7899. description: The type of usage
  7900. enum:
  7901. - grant
  7902. - revoke
  7903. type: string
  7904. required:
  7905. - name
  7906. type: object
  7907. type: array
  7908. validator:
  7909. description: |-
  7910. Name of the validator function (e.g., "postgres_fdw_validator").
  7911. This will be empty if no validator is specified. In that case,
  7912. the default validator is registered when the FDW extension is created.
  7913. type: string
  7914. required:
  7915. - name
  7916. type: object
  7917. type: array
  7918. icuLocale:
  7919. description: |-
  7920. Maps to the `ICU_LOCALE` parameter of `CREATE DATABASE`. This
  7921. setting cannot be changed. Specifies the ICU locale when the ICU
  7922. provider is used. This option requires `localeProvider` to be set to
  7923. `icu`. Available from PostgreSQL 15.
  7924. type: string
  7925. x-kubernetes-validations:
  7926. - message: icuLocale is immutable
  7927. rule: self == oldSelf
  7928. icuRules:
  7929. description: |-
  7930. Maps to the `ICU_RULES` parameter of `CREATE DATABASE`. This setting
  7931. cannot be changed. Specifies additional collation rules to customize
  7932. the behavior of the default collation. This option requires
  7933. `localeProvider` to be set to `icu`. Available from PostgreSQL 16.
  7934. type: string
  7935. x-kubernetes-validations:
  7936. - message: icuRules is immutable
  7937. rule: self == oldSelf
  7938. isTemplate:
  7939. description: |-
  7940. Maps to the `IS_TEMPLATE` parameter of `CREATE DATABASE` and `ALTER
  7941. DATABASE`. If true, this database is considered a template and can
  7942. be cloned by any user with `CREATEDB` privileges.
  7943. type: boolean
  7944. locale:
  7945. description: |-
  7946. Maps to the `LOCALE` parameter of `CREATE DATABASE`. This setting
  7947. cannot be changed. Sets the default collation order and character
  7948. classification in the new database.
  7949. type: string
  7950. x-kubernetes-validations:
  7951. - message: locale is immutable
  7952. rule: self == oldSelf
  7953. localeCType:
  7954. description: |-
  7955. Maps to the `LC_CTYPE` parameter of `CREATE DATABASE`. This setting
  7956. cannot be changed.
  7957. type: string
  7958. x-kubernetes-validations:
  7959. - message: localeCType is immutable
  7960. rule: self == oldSelf
  7961. localeCollate:
  7962. description: |-
  7963. Maps to the `LC_COLLATE` parameter of `CREATE DATABASE`. This
  7964. setting cannot be changed.
  7965. type: string
  7966. x-kubernetes-validations:
  7967. - message: localeCollate is immutable
  7968. rule: self == oldSelf
  7969. localeProvider:
  7970. description: |-
  7971. Maps to the `LOCALE_PROVIDER` parameter of `CREATE DATABASE`. This
  7972. setting cannot be changed. This option sets the locale provider for
  7973. databases created in the new cluster. Available from PostgreSQL 16.
  7974. type: string
  7975. x-kubernetes-validations:
  7976. - message: localeProvider is immutable
  7977. rule: self == oldSelf
  7978. name:
  7979. description: The name of the database to create inside PostgreSQL.
  7980. This setting cannot be changed.
  7981. type: string
  7982. x-kubernetes-validations:
  7983. - message: name is immutable
  7984. rule: self == oldSelf
  7985. - message: the name postgres is reserved
  7986. rule: self != 'postgres'
  7987. - message: the name template0 is reserved
  7988. rule: self != 'template0'
  7989. - message: the name template1 is reserved
  7990. rule: self != 'template1'
  7991. owner:
  7992. description: |-
  7993. Maps to the `OWNER` parameter of `CREATE DATABASE`.
  7994. Maps to the `OWNER TO` command of `ALTER DATABASE`.
  7995. The role name of the user who owns the database inside PostgreSQL.
  7996. type: string
  7997. schemas:
  7998. description: The list of schemas to be managed in the database
  7999. items:
  8000. description: SchemaSpec configures a schema in a database
  8001. properties:
  8002. ensure:
  8003. default: present
  8004. description: |-
  8005. Specifies whether an object (e.g schema) should be present or absent
  8006. in the database. If set to `present`, the object will be created if
  8007. it does not exist. If set to `absent`, the extension/schema will be
  8008. removed if it exists.
  8009. enum:
  8010. - present
  8011. - absent
  8012. type: string
  8013. name:
  8014. description: Name of the object (extension, schema, FDW, server)
  8015. type: string
  8016. owner:
  8017. description: |-
  8018. The role name of the user who owns the schema inside PostgreSQL.
  8019. It maps to the `AUTHORIZATION` parameter of `CREATE SCHEMA` and the
  8020. `OWNER TO` command of `ALTER SCHEMA`.
  8021. type: string
  8022. required:
  8023. - name
  8024. type: object
  8025. type: array
  8026. servers:
  8027. description: The list of foreign servers to be managed in the database
  8028. items:
  8029. description: ServerSpec configures a server of a foreign data wrapper
  8030. properties:
  8031. ensure:
  8032. default: present
  8033. description: |-
  8034. Specifies whether an object (e.g schema) should be present or absent
  8035. in the database. If set to `present`, the object will be created if
  8036. it does not exist. If set to `absent`, the extension/schema will be
  8037. removed if it exists.
  8038. enum:
  8039. - present
  8040. - absent
  8041. type: string
  8042. fdw:
  8043. description: The name of the Foreign Data Wrapper (FDW)
  8044. type: string
  8045. x-kubernetes-validations:
  8046. - message: fdw is required
  8047. rule: self != ''
  8048. name:
  8049. description: Name of the object (extension, schema, FDW, server)
  8050. type: string
  8051. options:
  8052. description: |-
  8053. Options specifies the configuration options for the server
  8054. (key is the option name, value is the option value).
  8055. items:
  8056. description: OptionSpec holds the name, value and the ensure
  8057. field for an option
  8058. properties:
  8059. ensure:
  8060. default: present
  8061. description: |-
  8062. Specifies whether an option should be present or absent in
  8063. the database. If set to `present`, the option will be
  8064. created if it does not exist. If set to `absent`, the
  8065. option will be removed if it exists.
  8066. enum:
  8067. - present
  8068. - absent
  8069. type: string
  8070. name:
  8071. description: Name of the option
  8072. type: string
  8073. value:
  8074. description: Value of the option
  8075. type: string
  8076. required:
  8077. - name
  8078. - value
  8079. type: object
  8080. type: array
  8081. usage:
  8082. description: List of roles for which `USAGE` privileges on the
  8083. server are granted or revoked.
  8084. items:
  8085. description: UsageSpec configures a usage for a foreign data
  8086. wrapper
  8087. properties:
  8088. name:
  8089. description: Name of the usage
  8090. type: string
  8091. x-kubernetes-validations:
  8092. - message: name is required
  8093. rule: self != ''
  8094. type:
  8095. default: grant
  8096. description: The type of usage
  8097. enum:
  8098. - grant
  8099. - revoke
  8100. type: string
  8101. required:
  8102. - name
  8103. type: object
  8104. type: array
  8105. required:
  8106. - fdw
  8107. - name
  8108. type: object
  8109. type: array
  8110. tablespace:
  8111. description: |-
  8112. Maps to the `TABLESPACE` parameter of `CREATE DATABASE`.
  8113. Maps to the `SET TABLESPACE` command of `ALTER DATABASE`.
  8114. The name of the tablespace (in PostgreSQL) that will be associated
  8115. with the new database. This tablespace will be the default
  8116. tablespace used for objects created in this database.
  8117. type: string
  8118. template:
  8119. description: |-
  8120. Maps to the `TEMPLATE` parameter of `CREATE DATABASE`. This setting
  8121. cannot be changed. The name of the template from which to create
  8122. this database.
  8123. type: string
  8124. x-kubernetes-validations:
  8125. - message: template is immutable
  8126. rule: self == oldSelf
  8127. required:
  8128. - cluster
  8129. - name
  8130. - owner
  8131. type: object
  8132. x-kubernetes-validations:
  8133. - message: builtinLocale is only available when localeProvider is set
  8134. to `builtin`
  8135. rule: '!has(self.builtinLocale) || self.localeProvider == ''builtin'''
  8136. - message: icuLocale is only available when localeProvider is set to `icu`
  8137. rule: '!has(self.icuLocale) || self.localeProvider == ''icu'''
  8138. - message: icuRules is only available when localeProvider is set to `icu`
  8139. rule: '!has(self.icuRules) || self.localeProvider == ''icu'''
  8140. status:
  8141. description: |-
  8142. Most recently observed status of the Database. This data may not be up to
  8143. date. Populated by the system. Read-only.
  8144. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  8145. properties:
  8146. applied:
  8147. description: Applied is true if the database was reconciled correctly
  8148. type: boolean
  8149. extensions:
  8150. description: Extensions is the status of the managed extensions
  8151. items:
  8152. description: DatabaseObjectStatus is the status of the managed database
  8153. objects
  8154. properties:
  8155. applied:
  8156. description: |-
  8157. True of the object has been installed successfully in
  8158. the database
  8159. type: boolean
  8160. message:
  8161. description: Message is the object reconciliation message
  8162. type: string
  8163. name:
  8164. description: The name of the object
  8165. type: string
  8166. required:
  8167. - applied
  8168. - name
  8169. type: object
  8170. type: array
  8171. fdws:
  8172. description: FDWs is the status of the managed FDWs
  8173. items:
  8174. description: DatabaseObjectStatus is the status of the managed database
  8175. objects
  8176. properties:
  8177. applied:
  8178. description: |-
  8179. True of the object has been installed successfully in
  8180. the database
  8181. type: boolean
  8182. message:
  8183. description: Message is the object reconciliation message
  8184. type: string
  8185. name:
  8186. description: The name of the object
  8187. type: string
  8188. required:
  8189. - applied
  8190. - name
  8191. type: object
  8192. type: array
  8193. message:
  8194. description: Message is the reconciliation output message
  8195. type: string
  8196. observedGeneration:
  8197. description: |-
  8198. A sequence number representing the latest
  8199. desired state that was synchronized
  8200. format: int64
  8201. type: integer
  8202. schemas:
  8203. description: Schemas is the status of the managed schemas
  8204. items:
  8205. description: DatabaseObjectStatus is the status of the managed database
  8206. objects
  8207. properties:
  8208. applied:
  8209. description: |-
  8210. True of the object has been installed successfully in
  8211. the database
  8212. type: boolean
  8213. message:
  8214. description: Message is the object reconciliation message
  8215. type: string
  8216. name:
  8217. description: The name of the object
  8218. type: string
  8219. required:
  8220. - applied
  8221. - name
  8222. type: object
  8223. type: array
  8224. servers:
  8225. description: Servers is the status of the managed servers
  8226. items:
  8227. description: DatabaseObjectStatus is the status of the managed database
  8228. objects
  8229. properties:
  8230. applied:
  8231. description: |-
  8232. True of the object has been installed successfully in
  8233. the database
  8234. type: boolean
  8235. message:
  8236. description: Message is the object reconciliation message
  8237. type: string
  8238. name:
  8239. description: The name of the object
  8240. type: string
  8241. required:
  8242. - applied
  8243. - name
  8244. type: object
  8245. type: array
  8246. type: object
  8247. required:
  8248. - metadata
  8249. - spec
  8250. type: object
  8251. served: true
  8252. storage: true
  8253. subresources:
  8254. status: {}
  8255. ---
  8256. apiVersion: apiextensions.k8s.io/v1
  8257. kind: CustomResourceDefinition
  8258. metadata:
  8259. annotations:
  8260. controller-gen.kubebuilder.io/version: v0.19.0
  8261. name: failoverquorums.postgresql.cnpg.io
  8262. spec:
  8263. group: postgresql.cnpg.io
  8264. names:
  8265. kind: FailoverQuorum
  8266. listKind: FailoverQuorumList
  8267. plural: failoverquorums
  8268. singular: failoverquorum
  8269. scope: Namespaced
  8270. versions:
  8271. - additionalPrinterColumns:
  8272. - jsonPath: .metadata.creationTimestamp
  8273. name: Age
  8274. type: date
  8275. name: v1
  8276. schema:
  8277. openAPIV3Schema:
  8278. description: |-
  8279. FailoverQuorum contains the information about the current failover
  8280. quorum status of a PG cluster. It is updated by the instance manager
  8281. of the primary node and reset to zero by the operator to trigger
  8282. an update.
  8283. properties:
  8284. apiVersion:
  8285. description: |-
  8286. APIVersion defines the versioned schema of this representation of an object.
  8287. Servers should convert recognized schemas to the latest internal value, and
  8288. may reject unrecognized values.
  8289. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  8290. type: string
  8291. kind:
  8292. description: |-
  8293. Kind is a string value representing the REST resource this object represents.
  8294. Servers may infer this from the endpoint the client submits requests to.
  8295. Cannot be updated.
  8296. In CamelCase.
  8297. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  8298. type: string
  8299. metadata:
  8300. type: object
  8301. status:
  8302. description: Most recently observed status of the failover quorum.
  8303. properties:
  8304. method:
  8305. description: Contains the latest reported Method value.
  8306. type: string
  8307. primary:
  8308. description: |-
  8309. Primary is the name of the primary instance that updated
  8310. this object the latest time.
  8311. type: string
  8312. standbyNames:
  8313. description: |-
  8314. StandbyNames is the list of potentially synchronous
  8315. instance names.
  8316. items:
  8317. type: string
  8318. type: array
  8319. standbyNumber:
  8320. description: |-
  8321. StandbyNumber is the number of synchronous standbys that transactions
  8322. need to wait for replies from.
  8323. type: integer
  8324. type: object
  8325. required:
  8326. - metadata
  8327. type: object
  8328. served: true
  8329. storage: true
  8330. subresources:
  8331. status: {}
  8332. ---
  8333. apiVersion: apiextensions.k8s.io/v1
  8334. kind: CustomResourceDefinition
  8335. metadata:
  8336. annotations:
  8337. controller-gen.kubebuilder.io/version: v0.19.0
  8338. name: imagecatalogs.postgresql.cnpg.io
  8339. spec:
  8340. group: postgresql.cnpg.io
  8341. names:
  8342. kind: ImageCatalog
  8343. listKind: ImageCatalogList
  8344. plural: imagecatalogs
  8345. singular: imagecatalog
  8346. scope: Namespaced
  8347. versions:
  8348. - additionalPrinterColumns:
  8349. - jsonPath: .metadata.creationTimestamp
  8350. name: Age
  8351. type: date
  8352. name: v1
  8353. schema:
  8354. openAPIV3Schema:
  8355. description: ImageCatalog is the Schema for the imagecatalogs API
  8356. properties:
  8357. apiVersion:
  8358. description: |-
  8359. APIVersion defines the versioned schema of this representation of an object.
  8360. Servers should convert recognized schemas to the latest internal value, and
  8361. may reject unrecognized values.
  8362. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  8363. type: string
  8364. kind:
  8365. description: |-
  8366. Kind is a string value representing the REST resource this object represents.
  8367. Servers may infer this from the endpoint the client submits requests to.
  8368. Cannot be updated.
  8369. In CamelCase.
  8370. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  8371. type: string
  8372. metadata:
  8373. type: object
  8374. spec:
  8375. description: |-
  8376. Specification of the desired behavior of the ImageCatalog.
  8377. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  8378. properties:
  8379. images:
  8380. description: List of CatalogImages available in the catalog
  8381. items:
  8382. description: CatalogImage defines the image and major version
  8383. properties:
  8384. image:
  8385. description: The image reference
  8386. type: string
  8387. major:
  8388. description: The PostgreSQL major version of the image. Must
  8389. be unique within the catalog.
  8390. minimum: 10
  8391. type: integer
  8392. required:
  8393. - image
  8394. - major
  8395. type: object
  8396. maxItems: 8
  8397. minItems: 1
  8398. type: array
  8399. x-kubernetes-validations:
  8400. - message: Images must have unique major versions
  8401. rule: self.all(e, self.filter(f, f.major==e.major).size() == 1)
  8402. required:
  8403. - images
  8404. type: object
  8405. required:
  8406. - metadata
  8407. - spec
  8408. type: object
  8409. served: true
  8410. storage: true
  8411. subresources: {}
  8412. ---
  8413. apiVersion: apiextensions.k8s.io/v1
  8414. kind: CustomResourceDefinition
  8415. metadata:
  8416. annotations:
  8417. controller-gen.kubebuilder.io/version: v0.19.0
  8418. name: poolers.postgresql.cnpg.io
  8419. spec:
  8420. group: postgresql.cnpg.io
  8421. names:
  8422. kind: Pooler
  8423. listKind: PoolerList
  8424. plural: poolers
  8425. singular: pooler
  8426. scope: Namespaced
  8427. versions:
  8428. - additionalPrinterColumns:
  8429. - jsonPath: .metadata.creationTimestamp
  8430. name: Age
  8431. type: date
  8432. - jsonPath: .spec.cluster.name
  8433. name: Cluster
  8434. type: string
  8435. - jsonPath: .spec.type
  8436. name: Type
  8437. type: string
  8438. name: v1
  8439. schema:
  8440. openAPIV3Schema:
  8441. description: Pooler is the Schema for the poolers API
  8442. properties:
  8443. apiVersion:
  8444. description: |-
  8445. APIVersion defines the versioned schema of this representation of an object.
  8446. Servers should convert recognized schemas to the latest internal value, and
  8447. may reject unrecognized values.
  8448. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  8449. type: string
  8450. kind:
  8451. description: |-
  8452. Kind is a string value representing the REST resource this object represents.
  8453. Servers may infer this from the endpoint the client submits requests to.
  8454. Cannot be updated.
  8455. In CamelCase.
  8456. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  8457. type: string
  8458. metadata:
  8459. type: object
  8460. spec:
  8461. description: |-
  8462. Specification of the desired behavior of the Pooler.
  8463. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  8464. properties:
  8465. cluster:
  8466. description: |-
  8467. This is the cluster reference on which the Pooler will work.
  8468. Pooler name should never match with any cluster name within the same namespace.
  8469. properties:
  8470. name:
  8471. description: Name of the referent.
  8472. type: string
  8473. required:
  8474. - name
  8475. type: object
  8476. deploymentStrategy:
  8477. description: The deployment strategy to use for pgbouncer to replace
  8478. existing pods with new ones
  8479. properties:
  8480. rollingUpdate:
  8481. description: |-
  8482. Rolling update config params. Present only if DeploymentStrategyType =
  8483. RollingUpdate.
  8484. properties:
  8485. maxSurge:
  8486. anyOf:
  8487. - type: integer
  8488. - type: string
  8489. description: |-
  8490. The maximum number of pods that can be scheduled above the desired number of
  8491. pods.
  8492. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
  8493. This can not be 0 if MaxUnavailable is 0.
  8494. Absolute number is calculated from percentage by rounding up.
  8495. Defaults to 25%.
  8496. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
  8497. the rolling update starts, such that the total number of old and new pods do not exceed
  8498. 130% of desired pods. Once old pods have been killed,
  8499. new ReplicaSet can be scaled up further, ensuring that total number of pods running
  8500. at any time during the update is at most 130% of desired pods.
  8501. x-kubernetes-int-or-string: true
  8502. maxUnavailable:
  8503. anyOf:
  8504. - type: integer
  8505. - type: string
  8506. description: |-
  8507. The maximum number of pods that can be unavailable during the update.
  8508. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
  8509. Absolute number is calculated from percentage by rounding down.
  8510. This can not be 0 if MaxSurge is 0.
  8511. Defaults to 25%.
  8512. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
  8513. immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
  8514. can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
  8515. that the total number of pods available at all times during the update is at
  8516. least 70% of desired pods.
  8517. x-kubernetes-int-or-string: true
  8518. type: object
  8519. type:
  8520. description: Type of deployment. Can be "Recreate" or "RollingUpdate".
  8521. Default is RollingUpdate.
  8522. type: string
  8523. type: object
  8524. instances:
  8525. default: 1
  8526. description: 'The number of replicas we want. Default: 1.'
  8527. format: int32
  8528. type: integer
  8529. monitoring:
  8530. description: |-
  8531. The configuration of the monitoring infrastructure of this pooler.
  8532. Deprecated: This feature will be removed in an upcoming release. If
  8533. you need this functionality, you can create a PodMonitor manually.
  8534. properties:
  8535. enablePodMonitor:
  8536. default: false
  8537. description: Enable or disable the `PodMonitor`
  8538. type: boolean
  8539. podMonitorMetricRelabelings:
  8540. description: The list of metric relabelings for the `PodMonitor`.
  8541. Applied to samples before ingestion.
  8542. items:
  8543. description: |-
  8544. RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
  8545. scraped samples and remote write samples.
  8546. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
  8547. properties:
  8548. action:
  8549. default: replace
  8550. description: |-
  8551. action to perform based on the regex matching.
  8552. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
  8553. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
  8554. Default: "Replace"
  8555. enum:
  8556. - replace
  8557. - Replace
  8558. - keep
  8559. - Keep
  8560. - drop
  8561. - Drop
  8562. - hashmod
  8563. - HashMod
  8564. - labelmap
  8565. - LabelMap
  8566. - labeldrop
  8567. - LabelDrop
  8568. - labelkeep
  8569. - LabelKeep
  8570. - lowercase
  8571. - Lowercase
  8572. - uppercase
  8573. - Uppercase
  8574. - keepequal
  8575. - KeepEqual
  8576. - dropequal
  8577. - DropEqual
  8578. type: string
  8579. modulus:
  8580. description: |-
  8581. modulus to take of the hash of the source label values.
  8582. Only applicable when the action is `HashMod`.
  8583. format: int64
  8584. type: integer
  8585. regex:
  8586. description: regex defines the regular expression against
  8587. which the extracted value is matched.
  8588. type: string
  8589. replacement:
  8590. description: |-
  8591. replacement value against which a Replace action is performed if the
  8592. regular expression matches.
  8593. Regex capture groups are available.
  8594. type: string
  8595. separator:
  8596. description: separator defines the string between concatenated
  8597. SourceLabels.
  8598. type: string
  8599. sourceLabels:
  8600. description: |-
  8601. sourceLabels defines the source labels select values from existing labels. Their content is
  8602. concatenated using the configured Separator and matched against the
  8603. configured regular expression.
  8604. items:
  8605. description: |-
  8606. LabelName is a valid Prometheus label name.
  8607. For Prometheus 3.x, a label name is valid if it contains UTF-8 characters.
  8608. For Prometheus 2.x, a label name is only valid if it contains ASCII characters, letters, numbers, as well as underscores.
  8609. type: string
  8610. type: array
  8611. targetLabel:
  8612. description: |-
  8613. targetLabel defines the label to which the resulting string is written in a replacement.
  8614. It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
  8615. `KeepEqual` and `DropEqual` actions.
  8616. Regex capture groups are available.
  8617. type: string
  8618. type: object
  8619. type: array
  8620. podMonitorRelabelings:
  8621. description: The list of relabelings for the `PodMonitor`. Applied
  8622. to samples before scraping.
  8623. items:
  8624. description: |-
  8625. RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
  8626. scraped samples and remote write samples.
  8627. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
  8628. properties:
  8629. action:
  8630. default: replace
  8631. description: |-
  8632. action to perform based on the regex matching.
  8633. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
  8634. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
  8635. Default: "Replace"
  8636. enum:
  8637. - replace
  8638. - Replace
  8639. - keep
  8640. - Keep
  8641. - drop
  8642. - Drop
  8643. - hashmod
  8644. - HashMod
  8645. - labelmap
  8646. - LabelMap
  8647. - labeldrop
  8648. - LabelDrop
  8649. - labelkeep
  8650. - LabelKeep
  8651. - lowercase
  8652. - Lowercase
  8653. - uppercase
  8654. - Uppercase
  8655. - keepequal
  8656. - KeepEqual
  8657. - dropequal
  8658. - DropEqual
  8659. type: string
  8660. modulus:
  8661. description: |-
  8662. modulus to take of the hash of the source label values.
  8663. Only applicable when the action is `HashMod`.
  8664. format: int64
  8665. type: integer
  8666. regex:
  8667. description: regex defines the regular expression against
  8668. which the extracted value is matched.
  8669. type: string
  8670. replacement:
  8671. description: |-
  8672. replacement value against which a Replace action is performed if the
  8673. regular expression matches.
  8674. Regex capture groups are available.
  8675. type: string
  8676. separator:
  8677. description: separator defines the string between concatenated
  8678. SourceLabels.
  8679. type: string
  8680. sourceLabels:
  8681. description: |-
  8682. sourceLabels defines the source labels select values from existing labels. Their content is
  8683. concatenated using the configured Separator and matched against the
  8684. configured regular expression.
  8685. items:
  8686. description: |-
  8687. LabelName is a valid Prometheus label name.
  8688. For Prometheus 3.x, a label name is valid if it contains UTF-8 characters.
  8689. For Prometheus 2.x, a label name is only valid if it contains ASCII characters, letters, numbers, as well as underscores.
  8690. type: string
  8691. type: array
  8692. targetLabel:
  8693. description: |-
  8694. targetLabel defines the label to which the resulting string is written in a replacement.
  8695. It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
  8696. `KeepEqual` and `DropEqual` actions.
  8697. Regex capture groups are available.
  8698. type: string
  8699. type: object
  8700. type: array
  8701. type: object
  8702. pgbouncer:
  8703. description: The PgBouncer configuration
  8704. properties:
  8705. authQuery:
  8706. description: |-
  8707. The query that will be used to download the hash of the password
  8708. of a certain user. Default: "SELECT usename, passwd FROM public.user_search($1)".
  8709. In case it is specified, also an AuthQuerySecret has to be specified and
  8710. no automatic CNPG Cluster integration will be triggered.
  8711. type: string
  8712. authQuerySecret:
  8713. description: |-
  8714. The credentials of the user that need to be used for the authentication
  8715. query. In case it is specified, also an AuthQuery
  8716. (e.g. "SELECT usename, passwd FROM pg_catalog.pg_shadow WHERE usename=$1")
  8717. has to be specified and no automatic CNPG Cluster integration will be triggered.
  8718. Deprecated.
  8719. properties:
  8720. name:
  8721. description: Name of the referent.
  8722. type: string
  8723. required:
  8724. - name
  8725. type: object
  8726. clientCASecret:
  8727. description: |-
  8728. ClientCASecret provides PgBouncer’s client_tls_ca_file, the root
  8729. CA for validating client certificates
  8730. properties:
  8731. name:
  8732. description: Name of the referent.
  8733. type: string
  8734. required:
  8735. - name
  8736. type: object
  8737. clientTLSSecret:
  8738. description: |-
  8739. ClientTLSSecret provides PgBouncer’s client_tls_key_file (private key)
  8740. and client_tls_cert_file (certificate) used to accept client connections
  8741. properties:
  8742. name:
  8743. description: Name of the referent.
  8744. type: string
  8745. required:
  8746. - name
  8747. type: object
  8748. parameters:
  8749. additionalProperties:
  8750. type: string
  8751. description: |-
  8752. Additional parameters to be passed to PgBouncer - please check
  8753. the CNPG documentation for a list of options you can configure
  8754. type: object
  8755. paused:
  8756. default: false
  8757. description: |-
  8758. When set to `true`, PgBouncer will disconnect from the PostgreSQL
  8759. server, first waiting for all queries to complete, and pause all new
  8760. client connections until this value is set to `false` (default). Internally,
  8761. the operator calls PgBouncer's `PAUSE` and `RESUME` commands.
  8762. type: boolean
  8763. pg_hba:
  8764. description: |-
  8765. PostgreSQL Host Based Authentication rules (lines to be appended
  8766. to the pg_hba.conf file)
  8767. items:
  8768. type: string
  8769. type: array
  8770. poolMode:
  8771. default: session
  8772. description: 'The pool mode. Default: `session`.'
  8773. enum:
  8774. - session
  8775. - transaction
  8776. type: string
  8777. serverCASecret:
  8778. description: |-
  8779. ServerCASecret provides PgBouncer’s server_tls_ca_file, the root
  8780. CA for validating PostgreSQL certificates
  8781. properties:
  8782. name:
  8783. description: Name of the referent.
  8784. type: string
  8785. required:
  8786. - name
  8787. type: object
  8788. serverTLSSecret:
  8789. description: |-
  8790. ServerTLSSecret, when pointing to a TLS secret, provides pgbouncer's
  8791. `server_tls_key_file` and `server_tls_cert_file`, used when
  8792. authenticating against PostgreSQL.
  8793. properties:
  8794. name:
  8795. description: Name of the referent.
  8796. type: string
  8797. required:
  8798. - name
  8799. type: object
  8800. type: object
  8801. serviceTemplate:
  8802. description: Template for the Service to be created
  8803. properties:
  8804. metadata:
  8805. description: |-
  8806. Standard object's metadata.
  8807. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  8808. properties:
  8809. annotations:
  8810. additionalProperties:
  8811. type: string
  8812. description: |-
  8813. Annotations is an unstructured key value map stored with a resource that may be
  8814. set by external tools to store and retrieve arbitrary metadata. They are not
  8815. queryable and should be preserved when modifying objects.
  8816. More info: http://kubernetes.io/docs/user-guide/annotations
  8817. type: object
  8818. labels:
  8819. additionalProperties:
  8820. type: string
  8821. description: |-
  8822. Map of string keys and values that can be used to organize and categorize
  8823. (scope and select) objects. May match selectors of replication controllers
  8824. and services.
  8825. More info: http://kubernetes.io/docs/user-guide/labels
  8826. type: object
  8827. name:
  8828. description: The name of the resource. Only supported for
  8829. certain types
  8830. type: string
  8831. type: object
  8832. spec:
  8833. description: |-
  8834. Specification of the desired behavior of the service.
  8835. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  8836. properties:
  8837. allocateLoadBalancerNodePorts:
  8838. description: |-
  8839. allocateLoadBalancerNodePorts defines if NodePorts will be automatically
  8840. allocated for services with type LoadBalancer. Default is "true". It
  8841. may be set to "false" if the cluster load-balancer does not rely on
  8842. NodePorts. If the caller requests specific NodePorts (by specifying a
  8843. value), those requests will be respected, regardless of this field.
  8844. This field may only be set for services with type LoadBalancer and will
  8845. be cleared if the type is changed to any other type.
  8846. type: boolean
  8847. clusterIP:
  8848. description: |-
  8849. clusterIP is the IP address of the service and is usually assigned
  8850. randomly. If an address is specified manually, is in-range (as per
  8851. system configuration), and is not in use, it will be allocated to the
  8852. service; otherwise creation of the service will fail. This field may not
  8853. be changed through updates unless the type field is also being changed
  8854. to ExternalName (which requires this field to be blank) or the type
  8855. field is being changed from ExternalName (in which case this field may
  8856. optionally be specified, as describe above). Valid values are "None",
  8857. empty string (""), or a valid IP address. Setting this to "None" makes a
  8858. "headless service" (no virtual IP), which is useful when direct endpoint
  8859. connections are preferred and proxying is not required. Only applies to
  8860. types ClusterIP, NodePort, and LoadBalancer. If this field is specified
  8861. when creating a Service of type ExternalName, creation will fail. This
  8862. field will be wiped when updating a Service to type ExternalName.
  8863. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  8864. type: string
  8865. clusterIPs:
  8866. description: |-
  8867. ClusterIPs is a list of IP addresses assigned to this service, and are
  8868. usually assigned randomly. If an address is specified manually, is
  8869. in-range (as per system configuration), and is not in use, it will be
  8870. allocated to the service; otherwise creation of the service will fail.
  8871. This field may not be changed through updates unless the type field is
  8872. also being changed to ExternalName (which requires this field to be
  8873. empty) or the type field is being changed from ExternalName (in which
  8874. case this field may optionally be specified, as describe above). Valid
  8875. values are "None", empty string (""), or a valid IP address. Setting
  8876. this to "None" makes a "headless service" (no virtual IP), which is
  8877. useful when direct endpoint connections are preferred and proxying is
  8878. not required. Only applies to types ClusterIP, NodePort, and
  8879. LoadBalancer. If this field is specified when creating a Service of type
  8880. ExternalName, creation will fail. This field will be wiped when updating
  8881. a Service to type ExternalName. If this field is not specified, it will
  8882. be initialized from the clusterIP field. If this field is specified,
  8883. clients must ensure that clusterIPs[0] and clusterIP have the same
  8884. value.
  8885. This field may hold a maximum of two entries (dual-stack IPs, in either order).
  8886. These IPs must correspond to the values of the ipFamilies field. Both
  8887. clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
  8888. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  8889. items:
  8890. type: string
  8891. type: array
  8892. x-kubernetes-list-type: atomic
  8893. externalIPs:
  8894. description: |-
  8895. externalIPs is a list of IP addresses for which nodes in the cluster
  8896. will also accept traffic for this service. These IPs are not managed by
  8897. Kubernetes. The user is responsible for ensuring that traffic arrives
  8898. at a node with this IP. A common example is external load-balancers
  8899. that are not part of the Kubernetes system.
  8900. items:
  8901. type: string
  8902. type: array
  8903. x-kubernetes-list-type: atomic
  8904. externalName:
  8905. description: |-
  8906. externalName is the external reference that discovery mechanisms will
  8907. return as an alias for this service (e.g. a DNS CNAME record). No
  8908. proxying will be involved. Must be a lowercase RFC-1123 hostname
  8909. (https://tools.ietf.org/html/rfc1123) and requires `type` to be "ExternalName".
  8910. type: string
  8911. externalTrafficPolicy:
  8912. description: |-
  8913. externalTrafficPolicy describes how nodes distribute service traffic they
  8914. receive on one of the Service's "externally-facing" addresses (NodePorts,
  8915. ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure
  8916. the service in a way that assumes that external load balancers will take care
  8917. of balancing the service traffic between nodes, and so each node will deliver
  8918. traffic only to the node-local endpoints of the service, without masquerading
  8919. the client source IP. (Traffic mistakenly sent to a node with no endpoints will
  8920. be dropped.) The default value, "Cluster", uses the standard behavior of
  8921. routing to all endpoints evenly (possibly modified by topology and other
  8922. features). Note that traffic sent to an External IP or LoadBalancer IP from
  8923. within the cluster will always get "Cluster" semantics, but clients sending to
  8924. a NodePort from within the cluster may need to take traffic policy into account
  8925. when picking a node.
  8926. type: string
  8927. healthCheckNodePort:
  8928. description: |-
  8929. healthCheckNodePort specifies the healthcheck nodePort for the service.
  8930. This only applies when type is set to LoadBalancer and
  8931. externalTrafficPolicy is set to Local. If a value is specified, is
  8932. in-range, and is not in use, it will be used. If not specified, a value
  8933. will be automatically allocated. External systems (e.g. load-balancers)
  8934. can use this port to determine if a given node holds endpoints for this
  8935. service or not. If this field is specified when creating a Service
  8936. which does not need it, creation will fail. This field will be wiped
  8937. when updating a Service to no longer need it (e.g. changing type).
  8938. This field cannot be updated once set.
  8939. format: int32
  8940. type: integer
  8941. internalTrafficPolicy:
  8942. description: |-
  8943. InternalTrafficPolicy describes how nodes distribute service traffic they
  8944. receive on the ClusterIP. If set to "Local", the proxy will assume that pods
  8945. only want to talk to endpoints of the service on the same node as the pod,
  8946. dropping the traffic if there are no local endpoints. The default value,
  8947. "Cluster", uses the standard behavior of routing to all endpoints evenly
  8948. (possibly modified by topology and other features).
  8949. type: string
  8950. ipFamilies:
  8951. description: |-
  8952. IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this
  8953. service. This field is usually assigned automatically based on cluster
  8954. configuration and the ipFamilyPolicy field. If this field is specified
  8955. manually, the requested family is available in the cluster,
  8956. and ipFamilyPolicy allows it, it will be used; otherwise creation of
  8957. the service will fail. This field is conditionally mutable: it allows
  8958. for adding or removing a secondary IP family, but it does not allow
  8959. changing the primary IP family of the Service. Valid values are "IPv4"
  8960. and "IPv6". This field only applies to Services of types ClusterIP,
  8961. NodePort, and LoadBalancer, and does apply to "headless" services.
  8962. This field will be wiped when updating a Service to type ExternalName.
  8963. This field may hold a maximum of two entries (dual-stack families, in
  8964. either order). These families must correspond to the values of the
  8965. clusterIPs field, if specified. Both clusterIPs and ipFamilies are
  8966. governed by the ipFamilyPolicy field.
  8967. items:
  8968. description: |-
  8969. IPFamily represents the IP Family (IPv4 or IPv6). This type is used
  8970. to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).
  8971. type: string
  8972. type: array
  8973. x-kubernetes-list-type: atomic
  8974. ipFamilyPolicy:
  8975. description: |-
  8976. IPFamilyPolicy represents the dual-stack-ness requested or required by
  8977. this Service. If there is no value provided, then this field will be set
  8978. to SingleStack. Services can be "SingleStack" (a single IP family),
  8979. "PreferDualStack" (two IP families on dual-stack configured clusters or
  8980. a single IP family on single-stack clusters), or "RequireDualStack"
  8981. (two IP families on dual-stack configured clusters, otherwise fail). The
  8982. ipFamilies and clusterIPs fields depend on the value of this field. This
  8983. field will be wiped when updating a service to type ExternalName.
  8984. type: string
  8985. loadBalancerClass:
  8986. description: |-
  8987. loadBalancerClass is the class of the load balancer implementation this Service belongs to.
  8988. If specified, the value of this field must be a label-style identifier, with an optional prefix,
  8989. e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users.
  8990. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load
  8991. balancer implementation is used, today this is typically done through the cloud provider integration,
  8992. but should apply for any default implementation. If set, it is assumed that a load balancer
  8993. implementation is watching for Services with a matching class. Any default load balancer
  8994. implementation (e.g. cloud providers) should ignore Services that set this field.
  8995. This field can only be set when creating or updating a Service to type 'LoadBalancer'.
  8996. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.
  8997. type: string
  8998. loadBalancerIP:
  8999. description: |-
  9000. Only applies to Service Type: LoadBalancer.
  9001. This feature depends on whether the underlying cloud-provider supports specifying
  9002. the loadBalancerIP when a load balancer is created.
  9003. This field will be ignored if the cloud-provider does not support the feature.
  9004. Deprecated: This field was under-specified and its meaning varies across implementations.
  9005. Using it is non-portable and it may not support dual-stack.
  9006. Users are encouraged to use implementation-specific annotations when available.
  9007. type: string
  9008. loadBalancerSourceRanges:
  9009. description: |-
  9010. If specified and supported by the platform, this will restrict traffic through the cloud-provider
  9011. load-balancer will be restricted to the specified client IPs. This field will be ignored if the
  9012. cloud-provider does not support the feature."
  9013. More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
  9014. items:
  9015. type: string
  9016. type: array
  9017. x-kubernetes-list-type: atomic
  9018. ports:
  9019. description: |-
  9020. The list of ports that are exposed by this service.
  9021. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  9022. items:
  9023. description: ServicePort contains information on service's
  9024. port.
  9025. properties:
  9026. appProtocol:
  9027. description: |-
  9028. The application protocol for this port.
  9029. This is used as a hint for implementations to offer richer behavior for protocols that they understand.
  9030. This field follows standard Kubernetes label syntax.
  9031. Valid values are either:
  9032. * Un-prefixed protocol names - reserved for IANA standard service names (as per
  9033. RFC-6335 and https://www.iana.org/assignments/service-names).
  9034. * Kubernetes-defined prefixed names:
  9035. * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
  9036. * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455
  9037. * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
  9038. * Other protocols should use implementation-defined prefixed names such as
  9039. mycompany.com/my-custom-protocol.
  9040. type: string
  9041. name:
  9042. description: |-
  9043. The name of this port within the service. This must be a DNS_LABEL.
  9044. All ports within a ServiceSpec must have unique names. When considering
  9045. the endpoints for a Service, this must match the 'name' field in the
  9046. EndpointPort.
  9047. Optional if only one ServicePort is defined on this service.
  9048. type: string
  9049. nodePort:
  9050. description: |-
  9051. The port on each node on which this service is exposed when type is
  9052. NodePort or LoadBalancer. Usually assigned by the system. If a value is
  9053. specified, in-range, and not in use it will be used, otherwise the
  9054. operation will fail. If not specified, a port will be allocated if this
  9055. Service requires one. If this field is specified when creating a
  9056. Service which does not need it, creation will fail. This field will be
  9057. wiped when updating a Service to no longer need it (e.g. changing type
  9058. from NodePort to ClusterIP).
  9059. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  9060. format: int32
  9061. type: integer
  9062. port:
  9063. description: The port that will be exposed by this service.
  9064. format: int32
  9065. type: integer
  9066. protocol:
  9067. default: TCP
  9068. description: |-
  9069. The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
  9070. Default is TCP.
  9071. type: string
  9072. targetPort:
  9073. anyOf:
  9074. - type: integer
  9075. - type: string
  9076. description: |-
  9077. Number or name of the port to access on the pods targeted by the service.
  9078. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  9079. If this is a string, it will be looked up as a named port in the
  9080. target Pod's container ports. If this is not specified, the value
  9081. of the 'port' field is used (an identity map).
  9082. This field is ignored for services with clusterIP=None, and should be
  9083. omitted or set equal to the 'port' field.
  9084. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
  9085. x-kubernetes-int-or-string: true
  9086. required:
  9087. - port
  9088. type: object
  9089. type: array
  9090. x-kubernetes-list-map-keys:
  9091. - port
  9092. - protocol
  9093. x-kubernetes-list-type: map
  9094. publishNotReadyAddresses:
  9095. description: |-
  9096. publishNotReadyAddresses indicates that any agent which deals with endpoints for this
  9097. Service should disregard any indications of ready/not-ready.
  9098. The primary use case for setting this field is for a StatefulSet's Headless Service to
  9099. propagate SRV DNS records for its Pods for the purpose of peer discovery.
  9100. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for
  9101. Services interpret this to mean that all endpoints are considered "ready" even if the
  9102. Pods themselves are not. Agents which consume only Kubernetes generated endpoints
  9103. through the Endpoints or EndpointSlice resources can safely assume this behavior.
  9104. type: boolean
  9105. selector:
  9106. additionalProperties:
  9107. type: string
  9108. description: |-
  9109. Route service traffic to pods with label keys and values matching this
  9110. selector. If empty or not present, the service is assumed to have an
  9111. external process managing its endpoints, which Kubernetes will not
  9112. modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
  9113. Ignored if type is ExternalName.
  9114. More info: https://kubernetes.io/docs/concepts/services-networking/service/
  9115. type: object
  9116. x-kubernetes-map-type: atomic
  9117. sessionAffinity:
  9118. description: |-
  9119. Supports "ClientIP" and "None". Used to maintain session affinity.
  9120. Enable client IP based session affinity.
  9121. Must be ClientIP or None.
  9122. Defaults to None.
  9123. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  9124. type: string
  9125. sessionAffinityConfig:
  9126. description: sessionAffinityConfig contains the configurations
  9127. of session affinity.
  9128. properties:
  9129. clientIP:
  9130. description: clientIP contains the configurations of Client
  9131. IP based session affinity.
  9132. properties:
  9133. timeoutSeconds:
  9134. description: |-
  9135. timeoutSeconds specifies the seconds of ClientIP type session sticky time.
  9136. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP".
  9137. Default value is 10800(for 3 hours).
  9138. format: int32
  9139. type: integer
  9140. type: object
  9141. type: object
  9142. trafficDistribution:
  9143. description: |-
  9144. TrafficDistribution offers a way to express preferences for how traffic
  9145. is distributed to Service endpoints. Implementations can use this field
  9146. as a hint, but are not required to guarantee strict adherence. If the
  9147. field is not set, the implementation will apply its default routing
  9148. strategy. If set to "PreferClose", implementations should prioritize
  9149. endpoints that are in the same zone.
  9150. type: string
  9151. type:
  9152. description: |-
  9153. type determines how the Service is exposed. Defaults to ClusterIP. Valid
  9154. options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
  9155. "ClusterIP" allocates a cluster-internal IP address for load-balancing
  9156. to endpoints. Endpoints are determined by the selector or if that is not
  9157. specified, by manual construction of an Endpoints object or
  9158. EndpointSlice objects. If clusterIP is "None", no virtual IP is
  9159. allocated and the endpoints are published as a set of endpoints rather
  9160. than a virtual IP.
  9161. "NodePort" builds on ClusterIP and allocates a port on every node which
  9162. routes to the same endpoints as the clusterIP.
  9163. "LoadBalancer" builds on NodePort and creates an external load-balancer
  9164. (if supported in the current cloud) which routes to the same endpoints
  9165. as the clusterIP.
  9166. "ExternalName" aliases this service to the specified externalName.
  9167. Several other fields do not apply to ExternalName services.
  9168. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
  9169. type: string
  9170. type: object
  9171. type: object
  9172. template:
  9173. description: The template of the Pod to be created
  9174. properties:
  9175. metadata:
  9176. description: |-
  9177. Standard object's metadata.
  9178. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  9179. properties:
  9180. annotations:
  9181. additionalProperties:
  9182. type: string
  9183. description: |-
  9184. Annotations is an unstructured key value map stored with a resource that may be
  9185. set by external tools to store and retrieve arbitrary metadata. They are not
  9186. queryable and should be preserved when modifying objects.
  9187. More info: http://kubernetes.io/docs/user-guide/annotations
  9188. type: object
  9189. labels:
  9190. additionalProperties:
  9191. type: string
  9192. description: |-
  9193. Map of string keys and values that can be used to organize and categorize
  9194. (scope and select) objects. May match selectors of replication controllers
  9195. and services.
  9196. More info: http://kubernetes.io/docs/user-guide/labels
  9197. type: object
  9198. name:
  9199. description: The name of the resource. Only supported for
  9200. certain types
  9201. type: string
  9202. type: object
  9203. spec:
  9204. description: |-
  9205. Specification of the desired behavior of the pod.
  9206. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  9207. properties:
  9208. activeDeadlineSeconds:
  9209. description: |-
  9210. Optional duration in seconds the pod may be active on the node relative to
  9211. StartTime before the system will actively try to mark it failed and kill associated containers.
  9212. Value must be a positive integer.
  9213. format: int64
  9214. type: integer
  9215. affinity:
  9216. description: If specified, the pod's scheduling constraints
  9217. properties:
  9218. nodeAffinity:
  9219. description: Describes node affinity scheduling rules
  9220. for the pod.
  9221. properties:
  9222. preferredDuringSchedulingIgnoredDuringExecution:
  9223. description: |-
  9224. The scheduler will prefer to schedule pods to nodes that satisfy
  9225. the affinity expressions specified by this field, but it may choose
  9226. a node that violates one or more of the expressions. The node that is
  9227. most preferred is the one with the greatest sum of weights, i.e.
  9228. for each node that meets all of the scheduling requirements (resource
  9229. request, requiredDuringScheduling affinity expressions, etc.),
  9230. compute a sum by iterating through the elements of this field and adding
  9231. "weight" to the sum if the node matches the corresponding matchExpressions; the
  9232. node(s) with the highest sum are the most preferred.
  9233. items:
  9234. description: |-
  9235. An empty preferred scheduling term matches all objects with implicit weight 0
  9236. (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  9237. properties:
  9238. preference:
  9239. description: A node selector term, associated
  9240. with the corresponding weight.
  9241. properties:
  9242. matchExpressions:
  9243. description: A list of node selector requirements
  9244. by node's labels.
  9245. items:
  9246. description: |-
  9247. A node selector requirement is a selector that contains values, a key, and an operator
  9248. that relates the key and values.
  9249. properties:
  9250. key:
  9251. description: The label key that the
  9252. selector applies to.
  9253. type: string
  9254. operator:
  9255. description: |-
  9256. Represents a key's relationship to a set of values.
  9257. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9258. type: string
  9259. values:
  9260. description: |-
  9261. An array of string values. If the operator is In or NotIn,
  9262. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9263. the values array must be empty. If the operator is Gt or Lt, the values
  9264. array must have a single element, which will be interpreted as an integer.
  9265. This array is replaced during a strategic merge patch.
  9266. items:
  9267. type: string
  9268. type: array
  9269. x-kubernetes-list-type: atomic
  9270. required:
  9271. - key
  9272. - operator
  9273. type: object
  9274. type: array
  9275. x-kubernetes-list-type: atomic
  9276. matchFields:
  9277. description: A list of node selector requirements
  9278. by node's fields.
  9279. items:
  9280. description: |-
  9281. A node selector requirement is a selector that contains values, a key, and an operator
  9282. that relates the key and values.
  9283. properties:
  9284. key:
  9285. description: The label key that the
  9286. selector applies to.
  9287. type: string
  9288. operator:
  9289. description: |-
  9290. Represents a key's relationship to a set of values.
  9291. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9292. type: string
  9293. values:
  9294. description: |-
  9295. An array of string values. If the operator is In or NotIn,
  9296. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9297. the values array must be empty. If the operator is Gt or Lt, the values
  9298. array must have a single element, which will be interpreted as an integer.
  9299. This array is replaced during a strategic merge patch.
  9300. items:
  9301. type: string
  9302. type: array
  9303. x-kubernetes-list-type: atomic
  9304. required:
  9305. - key
  9306. - operator
  9307. type: object
  9308. type: array
  9309. x-kubernetes-list-type: atomic
  9310. type: object
  9311. x-kubernetes-map-type: atomic
  9312. weight:
  9313. description: Weight associated with matching
  9314. the corresponding nodeSelectorTerm, in the
  9315. range 1-100.
  9316. format: int32
  9317. type: integer
  9318. required:
  9319. - preference
  9320. - weight
  9321. type: object
  9322. type: array
  9323. x-kubernetes-list-type: atomic
  9324. requiredDuringSchedulingIgnoredDuringExecution:
  9325. description: |-
  9326. If the affinity requirements specified by this field are not met at
  9327. scheduling time, the pod will not be scheduled onto the node.
  9328. If the affinity requirements specified by this field cease to be met
  9329. at some point during pod execution (e.g. due to an update), the system
  9330. may or may not try to eventually evict the pod from its node.
  9331. properties:
  9332. nodeSelectorTerms:
  9333. description: Required. A list of node selector
  9334. terms. The terms are ORed.
  9335. items:
  9336. description: |-
  9337. A null or empty node selector term matches no objects. The requirements of
  9338. them are ANDed.
  9339. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  9340. properties:
  9341. matchExpressions:
  9342. description: A list of node selector requirements
  9343. by node's labels.
  9344. items:
  9345. description: |-
  9346. A node selector requirement is a selector that contains values, a key, and an operator
  9347. that relates the key and values.
  9348. properties:
  9349. key:
  9350. description: The label key that the
  9351. selector applies to.
  9352. type: string
  9353. operator:
  9354. description: |-
  9355. Represents a key's relationship to a set of values.
  9356. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9357. type: string
  9358. values:
  9359. description: |-
  9360. An array of string values. If the operator is In or NotIn,
  9361. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9362. the values array must be empty. If the operator is Gt or Lt, the values
  9363. array must have a single element, which will be interpreted as an integer.
  9364. This array is replaced during a strategic merge patch.
  9365. items:
  9366. type: string
  9367. type: array
  9368. x-kubernetes-list-type: atomic
  9369. required:
  9370. - key
  9371. - operator
  9372. type: object
  9373. type: array
  9374. x-kubernetes-list-type: atomic
  9375. matchFields:
  9376. description: A list of node selector requirements
  9377. by node's fields.
  9378. items:
  9379. description: |-
  9380. A node selector requirement is a selector that contains values, a key, and an operator
  9381. that relates the key and values.
  9382. properties:
  9383. key:
  9384. description: The label key that the
  9385. selector applies to.
  9386. type: string
  9387. operator:
  9388. description: |-
  9389. Represents a key's relationship to a set of values.
  9390. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  9391. type: string
  9392. values:
  9393. description: |-
  9394. An array of string values. If the operator is In or NotIn,
  9395. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9396. the values array must be empty. If the operator is Gt or Lt, the values
  9397. array must have a single element, which will be interpreted as an integer.
  9398. This array is replaced during a strategic merge patch.
  9399. items:
  9400. type: string
  9401. type: array
  9402. x-kubernetes-list-type: atomic
  9403. required:
  9404. - key
  9405. - operator
  9406. type: object
  9407. type: array
  9408. x-kubernetes-list-type: atomic
  9409. type: object
  9410. x-kubernetes-map-type: atomic
  9411. type: array
  9412. x-kubernetes-list-type: atomic
  9413. required:
  9414. - nodeSelectorTerms
  9415. type: object
  9416. x-kubernetes-map-type: atomic
  9417. type: object
  9418. podAffinity:
  9419. description: Describes pod affinity scheduling rules (e.g.
  9420. co-locate this pod in the same node, zone, etc. as some
  9421. other pod(s)).
  9422. properties:
  9423. preferredDuringSchedulingIgnoredDuringExecution:
  9424. description: |-
  9425. The scheduler will prefer to schedule pods to nodes that satisfy
  9426. the affinity expressions specified by this field, but it may choose
  9427. a node that violates one or more of the expressions. The node that is
  9428. most preferred is the one with the greatest sum of weights, i.e.
  9429. for each node that meets all of the scheduling requirements (resource
  9430. request, requiredDuringScheduling affinity expressions, etc.),
  9431. compute a sum by iterating through the elements of this field and adding
  9432. "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
  9433. node(s) with the highest sum are the most preferred.
  9434. items:
  9435. description: The weights of all of the matched WeightedPodAffinityTerm
  9436. fields are added per-node to find the most preferred
  9437. node(s)
  9438. properties:
  9439. podAffinityTerm:
  9440. description: Required. A pod affinity term,
  9441. associated with the corresponding weight.
  9442. properties:
  9443. labelSelector:
  9444. description: |-
  9445. A label query over a set of resources, in this case pods.
  9446. If it's null, this PodAffinityTerm matches with no Pods.
  9447. properties:
  9448. matchExpressions:
  9449. description: matchExpressions is a list
  9450. of label selector requirements. The
  9451. requirements are ANDed.
  9452. items:
  9453. description: |-
  9454. A label selector requirement is a selector that contains values, a key, and an operator that
  9455. relates the key and values.
  9456. properties:
  9457. key:
  9458. description: key is the label
  9459. key that the selector applies
  9460. to.
  9461. type: string
  9462. operator:
  9463. description: |-
  9464. operator represents a key's relationship to a set of values.
  9465. Valid operators are In, NotIn, Exists and DoesNotExist.
  9466. type: string
  9467. values:
  9468. description: |-
  9469. values is an array of string values. If the operator is In or NotIn,
  9470. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9471. the values array must be empty. This array is replaced during a strategic
  9472. merge patch.
  9473. items:
  9474. type: string
  9475. type: array
  9476. x-kubernetes-list-type: atomic
  9477. required:
  9478. - key
  9479. - operator
  9480. type: object
  9481. type: array
  9482. x-kubernetes-list-type: atomic
  9483. matchLabels:
  9484. additionalProperties:
  9485. type: string
  9486. description: |-
  9487. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9488. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9489. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9490. type: object
  9491. type: object
  9492. x-kubernetes-map-type: atomic
  9493. matchLabelKeys:
  9494. description: |-
  9495. MatchLabelKeys is a set of pod label keys to select which pods will
  9496. be taken into consideration. The keys are used to lookup values from the
  9497. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  9498. to select the group of existing pods which pods will be taken into consideration
  9499. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9500. pod labels will be ignored. The default value is empty.
  9501. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  9502. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  9503. items:
  9504. type: string
  9505. type: array
  9506. x-kubernetes-list-type: atomic
  9507. mismatchLabelKeys:
  9508. description: |-
  9509. MismatchLabelKeys is a set of pod label keys to select which pods will
  9510. be taken into consideration. The keys are used to lookup values from the
  9511. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  9512. to select the group of existing pods which pods will be taken into consideration
  9513. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9514. pod labels will be ignored. The default value is empty.
  9515. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  9516. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  9517. items:
  9518. type: string
  9519. type: array
  9520. x-kubernetes-list-type: atomic
  9521. namespaceSelector:
  9522. description: |-
  9523. A label query over the set of namespaces that the term applies to.
  9524. The term is applied to the union of the namespaces selected by this field
  9525. and the ones listed in the namespaces field.
  9526. null selector and null or empty namespaces list means "this pod's namespace".
  9527. An empty selector ({}) matches all namespaces.
  9528. properties:
  9529. matchExpressions:
  9530. description: matchExpressions is a list
  9531. of label selector requirements. The
  9532. requirements are ANDed.
  9533. items:
  9534. description: |-
  9535. A label selector requirement is a selector that contains values, a key, and an operator that
  9536. relates the key and values.
  9537. properties:
  9538. key:
  9539. description: key is the label
  9540. key that the selector applies
  9541. to.
  9542. type: string
  9543. operator:
  9544. description: |-
  9545. operator represents a key's relationship to a set of values.
  9546. Valid operators are In, NotIn, Exists and DoesNotExist.
  9547. type: string
  9548. values:
  9549. description: |-
  9550. values is an array of string values. If the operator is In or NotIn,
  9551. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9552. the values array must be empty. This array is replaced during a strategic
  9553. merge patch.
  9554. items:
  9555. type: string
  9556. type: array
  9557. x-kubernetes-list-type: atomic
  9558. required:
  9559. - key
  9560. - operator
  9561. type: object
  9562. type: array
  9563. x-kubernetes-list-type: atomic
  9564. matchLabels:
  9565. additionalProperties:
  9566. type: string
  9567. description: |-
  9568. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9569. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9570. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9571. type: object
  9572. type: object
  9573. x-kubernetes-map-type: atomic
  9574. namespaces:
  9575. description: |-
  9576. namespaces specifies a static list of namespace names that the term applies to.
  9577. The term is applied to the union of the namespaces listed in this field
  9578. and the ones selected by namespaceSelector.
  9579. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9580. items:
  9581. type: string
  9582. type: array
  9583. x-kubernetes-list-type: atomic
  9584. topologyKey:
  9585. description: |-
  9586. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  9587. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  9588. whose value of the label with key topologyKey matches that of any node on which any of the
  9589. selected pods is running.
  9590. Empty topologyKey is not allowed.
  9591. type: string
  9592. required:
  9593. - topologyKey
  9594. type: object
  9595. weight:
  9596. description: |-
  9597. weight associated with matching the corresponding podAffinityTerm,
  9598. in the range 1-100.
  9599. format: int32
  9600. type: integer
  9601. required:
  9602. - podAffinityTerm
  9603. - weight
  9604. type: object
  9605. type: array
  9606. x-kubernetes-list-type: atomic
  9607. requiredDuringSchedulingIgnoredDuringExecution:
  9608. description: |-
  9609. If the affinity requirements specified by this field are not met at
  9610. scheduling time, the pod will not be scheduled onto the node.
  9611. If the affinity requirements specified by this field cease to be met
  9612. at some point during pod execution (e.g. due to a pod label update), the
  9613. system may or may not try to eventually evict the pod from its node.
  9614. When there are multiple elements, the lists of nodes corresponding to each
  9615. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9616. items:
  9617. description: |-
  9618. Defines a set of pods (namely those matching the labelSelector
  9619. relative to the given namespace(s)) that this pod should be
  9620. co-located (affinity) or not co-located (anti-affinity) with,
  9621. where co-located is defined as running on a node whose value of
  9622. the label with key <topologyKey> matches that of any node on which
  9623. a pod of the set of pods is running
  9624. properties:
  9625. labelSelector:
  9626. description: |-
  9627. A label query over a set of resources, in this case pods.
  9628. If it's null, this PodAffinityTerm matches with no Pods.
  9629. properties:
  9630. matchExpressions:
  9631. description: matchExpressions is a list
  9632. of label selector requirements. The requirements
  9633. are ANDed.
  9634. items:
  9635. description: |-
  9636. A label selector requirement is a selector that contains values, a key, and an operator that
  9637. relates the key and values.
  9638. properties:
  9639. key:
  9640. description: key is the label key
  9641. that the selector applies to.
  9642. type: string
  9643. operator:
  9644. description: |-
  9645. operator represents a key's relationship to a set of values.
  9646. Valid operators are In, NotIn, Exists and DoesNotExist.
  9647. type: string
  9648. values:
  9649. description: |-
  9650. values is an array of string values. If the operator is In or NotIn,
  9651. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9652. the values array must be empty. This array is replaced during a strategic
  9653. merge patch.
  9654. items:
  9655. type: string
  9656. type: array
  9657. x-kubernetes-list-type: atomic
  9658. required:
  9659. - key
  9660. - operator
  9661. type: object
  9662. type: array
  9663. x-kubernetes-list-type: atomic
  9664. matchLabels:
  9665. additionalProperties:
  9666. type: string
  9667. description: |-
  9668. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9669. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9670. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9671. type: object
  9672. type: object
  9673. x-kubernetes-map-type: atomic
  9674. matchLabelKeys:
  9675. description: |-
  9676. MatchLabelKeys is a set of pod label keys to select which pods will
  9677. be taken into consideration. The keys are used to lookup values from the
  9678. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  9679. to select the group of existing pods which pods will be taken into consideration
  9680. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9681. pod labels will be ignored. The default value is empty.
  9682. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  9683. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  9684. items:
  9685. type: string
  9686. type: array
  9687. x-kubernetes-list-type: atomic
  9688. mismatchLabelKeys:
  9689. description: |-
  9690. MismatchLabelKeys is a set of pod label keys to select which pods will
  9691. be taken into consideration. The keys are used to lookup values from the
  9692. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  9693. to select the group of existing pods which pods will be taken into consideration
  9694. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9695. pod labels will be ignored. The default value is empty.
  9696. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  9697. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  9698. items:
  9699. type: string
  9700. type: array
  9701. x-kubernetes-list-type: atomic
  9702. namespaceSelector:
  9703. description: |-
  9704. A label query over the set of namespaces that the term applies to.
  9705. The term is applied to the union of the namespaces selected by this field
  9706. and the ones listed in the namespaces field.
  9707. null selector and null or empty namespaces list means "this pod's namespace".
  9708. An empty selector ({}) matches all namespaces.
  9709. properties:
  9710. matchExpressions:
  9711. description: matchExpressions is a list
  9712. of label selector requirements. The requirements
  9713. are ANDed.
  9714. items:
  9715. description: |-
  9716. A label selector requirement is a selector that contains values, a key, and an operator that
  9717. relates the key and values.
  9718. properties:
  9719. key:
  9720. description: key is the label key
  9721. that the selector applies to.
  9722. type: string
  9723. operator:
  9724. description: |-
  9725. operator represents a key's relationship to a set of values.
  9726. Valid operators are In, NotIn, Exists and DoesNotExist.
  9727. type: string
  9728. values:
  9729. description: |-
  9730. values is an array of string values. If the operator is In or NotIn,
  9731. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9732. the values array must be empty. This array is replaced during a strategic
  9733. merge patch.
  9734. items:
  9735. type: string
  9736. type: array
  9737. x-kubernetes-list-type: atomic
  9738. required:
  9739. - key
  9740. - operator
  9741. type: object
  9742. type: array
  9743. x-kubernetes-list-type: atomic
  9744. matchLabels:
  9745. additionalProperties:
  9746. type: string
  9747. description: |-
  9748. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9749. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9750. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9751. type: object
  9752. type: object
  9753. x-kubernetes-map-type: atomic
  9754. namespaces:
  9755. description: |-
  9756. namespaces specifies a static list of namespace names that the term applies to.
  9757. The term is applied to the union of the namespaces listed in this field
  9758. and the ones selected by namespaceSelector.
  9759. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9760. items:
  9761. type: string
  9762. type: array
  9763. x-kubernetes-list-type: atomic
  9764. topologyKey:
  9765. description: |-
  9766. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  9767. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  9768. whose value of the label with key topologyKey matches that of any node on which any of the
  9769. selected pods is running.
  9770. Empty topologyKey is not allowed.
  9771. type: string
  9772. required:
  9773. - topologyKey
  9774. type: object
  9775. type: array
  9776. x-kubernetes-list-type: atomic
  9777. type: object
  9778. podAntiAffinity:
  9779. description: Describes pod anti-affinity scheduling rules
  9780. (e.g. avoid putting this pod in the same node, zone,
  9781. etc. as some other pod(s)).
  9782. properties:
  9783. preferredDuringSchedulingIgnoredDuringExecution:
  9784. description: |-
  9785. The scheduler will prefer to schedule pods to nodes that satisfy
  9786. the anti-affinity expressions specified by this field, but it may choose
  9787. a node that violates one or more of the expressions. The node that is
  9788. most preferred is the one with the greatest sum of weights, i.e.
  9789. for each node that meets all of the scheduling requirements (resource
  9790. request, requiredDuringScheduling anti-affinity expressions, etc.),
  9791. compute a sum by iterating through the elements of this field and subtracting
  9792. "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the
  9793. node(s) with the highest sum are the most preferred.
  9794. items:
  9795. description: The weights of all of the matched WeightedPodAffinityTerm
  9796. fields are added per-node to find the most preferred
  9797. node(s)
  9798. properties:
  9799. podAffinityTerm:
  9800. description: Required. A pod affinity term,
  9801. associated with the corresponding weight.
  9802. properties:
  9803. labelSelector:
  9804. description: |-
  9805. A label query over a set of resources, in this case pods.
  9806. If it's null, this PodAffinityTerm matches with no Pods.
  9807. properties:
  9808. matchExpressions:
  9809. description: matchExpressions is a list
  9810. of label selector requirements. The
  9811. requirements are ANDed.
  9812. items:
  9813. description: |-
  9814. A label selector requirement is a selector that contains values, a key, and an operator that
  9815. relates the key and values.
  9816. properties:
  9817. key:
  9818. description: key is the label
  9819. key that the selector applies
  9820. to.
  9821. type: string
  9822. operator:
  9823. description: |-
  9824. operator represents a key's relationship to a set of values.
  9825. Valid operators are In, NotIn, Exists and DoesNotExist.
  9826. type: string
  9827. values:
  9828. description: |-
  9829. values is an array of string values. If the operator is In or NotIn,
  9830. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9831. the values array must be empty. This array is replaced during a strategic
  9832. merge patch.
  9833. items:
  9834. type: string
  9835. type: array
  9836. x-kubernetes-list-type: atomic
  9837. required:
  9838. - key
  9839. - operator
  9840. type: object
  9841. type: array
  9842. x-kubernetes-list-type: atomic
  9843. matchLabels:
  9844. additionalProperties:
  9845. type: string
  9846. description: |-
  9847. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9848. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9849. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9850. type: object
  9851. type: object
  9852. x-kubernetes-map-type: atomic
  9853. matchLabelKeys:
  9854. description: |-
  9855. MatchLabelKeys is a set of pod label keys to select which pods will
  9856. be taken into consideration. The keys are used to lookup values from the
  9857. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  9858. to select the group of existing pods which pods will be taken into consideration
  9859. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9860. pod labels will be ignored. The default value is empty.
  9861. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  9862. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  9863. items:
  9864. type: string
  9865. type: array
  9866. x-kubernetes-list-type: atomic
  9867. mismatchLabelKeys:
  9868. description: |-
  9869. MismatchLabelKeys is a set of pod label keys to select which pods will
  9870. be taken into consideration. The keys are used to lookup values from the
  9871. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  9872. to select the group of existing pods which pods will be taken into consideration
  9873. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  9874. pod labels will be ignored. The default value is empty.
  9875. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  9876. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  9877. items:
  9878. type: string
  9879. type: array
  9880. x-kubernetes-list-type: atomic
  9881. namespaceSelector:
  9882. description: |-
  9883. A label query over the set of namespaces that the term applies to.
  9884. The term is applied to the union of the namespaces selected by this field
  9885. and the ones listed in the namespaces field.
  9886. null selector and null or empty namespaces list means "this pod's namespace".
  9887. An empty selector ({}) matches all namespaces.
  9888. properties:
  9889. matchExpressions:
  9890. description: matchExpressions is a list
  9891. of label selector requirements. The
  9892. requirements are ANDed.
  9893. items:
  9894. description: |-
  9895. A label selector requirement is a selector that contains values, a key, and an operator that
  9896. relates the key and values.
  9897. properties:
  9898. key:
  9899. description: key is the label
  9900. key that the selector applies
  9901. to.
  9902. type: string
  9903. operator:
  9904. description: |-
  9905. operator represents a key's relationship to a set of values.
  9906. Valid operators are In, NotIn, Exists and DoesNotExist.
  9907. type: string
  9908. values:
  9909. description: |-
  9910. values is an array of string values. If the operator is In or NotIn,
  9911. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  9912. the values array must be empty. This array is replaced during a strategic
  9913. merge patch.
  9914. items:
  9915. type: string
  9916. type: array
  9917. x-kubernetes-list-type: atomic
  9918. required:
  9919. - key
  9920. - operator
  9921. type: object
  9922. type: array
  9923. x-kubernetes-list-type: atomic
  9924. matchLabels:
  9925. additionalProperties:
  9926. type: string
  9927. description: |-
  9928. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  9929. map is equivalent to an element of matchExpressions, whose key field is "key", the
  9930. operator is "In", and the values array contains only "value". The requirements are ANDed.
  9931. type: object
  9932. type: object
  9933. x-kubernetes-map-type: atomic
  9934. namespaces:
  9935. description: |-
  9936. namespaces specifies a static list of namespace names that the term applies to.
  9937. The term is applied to the union of the namespaces listed in this field
  9938. and the ones selected by namespaceSelector.
  9939. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  9940. items:
  9941. type: string
  9942. type: array
  9943. x-kubernetes-list-type: atomic
  9944. topologyKey:
  9945. description: |-
  9946. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  9947. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  9948. whose value of the label with key topologyKey matches that of any node on which any of the
  9949. selected pods is running.
  9950. Empty topologyKey is not allowed.
  9951. type: string
  9952. required:
  9953. - topologyKey
  9954. type: object
  9955. weight:
  9956. description: |-
  9957. weight associated with matching the corresponding podAffinityTerm,
  9958. in the range 1-100.
  9959. format: int32
  9960. type: integer
  9961. required:
  9962. - podAffinityTerm
  9963. - weight
  9964. type: object
  9965. type: array
  9966. x-kubernetes-list-type: atomic
  9967. requiredDuringSchedulingIgnoredDuringExecution:
  9968. description: |-
  9969. If the anti-affinity requirements specified by this field are not met at
  9970. scheduling time, the pod will not be scheduled onto the node.
  9971. If the anti-affinity requirements specified by this field cease to be met
  9972. at some point during pod execution (e.g. due to a pod label update), the
  9973. system may or may not try to eventually evict the pod from its node.
  9974. When there are multiple elements, the lists of nodes corresponding to each
  9975. podAffinityTerm are intersected, i.e. all terms must be satisfied.
  9976. items:
  9977. description: |-
  9978. Defines a set of pods (namely those matching the labelSelector
  9979. relative to the given namespace(s)) that this pod should be
  9980. co-located (affinity) or not co-located (anti-affinity) with,
  9981. where co-located is defined as running on a node whose value of
  9982. the label with key <topologyKey> matches that of any node on which
  9983. a pod of the set of pods is running
  9984. properties:
  9985. labelSelector:
  9986. description: |-
  9987. A label query over a set of resources, in this case pods.
  9988. If it's null, this PodAffinityTerm matches with no Pods.
  9989. properties:
  9990. matchExpressions:
  9991. description: matchExpressions is a list
  9992. of label selector requirements. The requirements
  9993. are ANDed.
  9994. items:
  9995. description: |-
  9996. A label selector requirement is a selector that contains values, a key, and an operator that
  9997. relates the key and values.
  9998. properties:
  9999. key:
  10000. description: key is the label key
  10001. that the selector applies to.
  10002. type: string
  10003. operator:
  10004. description: |-
  10005. operator represents a key's relationship to a set of values.
  10006. Valid operators are In, NotIn, Exists and DoesNotExist.
  10007. type: string
  10008. values:
  10009. description: |-
  10010. values is an array of string values. If the operator is In or NotIn,
  10011. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  10012. the values array must be empty. This array is replaced during a strategic
  10013. merge patch.
  10014. items:
  10015. type: string
  10016. type: array
  10017. x-kubernetes-list-type: atomic
  10018. required:
  10019. - key
  10020. - operator
  10021. type: object
  10022. type: array
  10023. x-kubernetes-list-type: atomic
  10024. matchLabels:
  10025. additionalProperties:
  10026. type: string
  10027. description: |-
  10028. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  10029. map is equivalent to an element of matchExpressions, whose key field is "key", the
  10030. operator is "In", and the values array contains only "value". The requirements are ANDed.
  10031. type: object
  10032. type: object
  10033. x-kubernetes-map-type: atomic
  10034. matchLabelKeys:
  10035. description: |-
  10036. MatchLabelKeys is a set of pod label keys to select which pods will
  10037. be taken into consideration. The keys are used to lookup values from the
  10038. incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
  10039. to select the group of existing pods which pods will be taken into consideration
  10040. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  10041. pod labels will be ignored. The default value is empty.
  10042. The same key is forbidden to exist in both matchLabelKeys and labelSelector.
  10043. Also, matchLabelKeys cannot be set when labelSelector isn't set.
  10044. items:
  10045. type: string
  10046. type: array
  10047. x-kubernetes-list-type: atomic
  10048. mismatchLabelKeys:
  10049. description: |-
  10050. MismatchLabelKeys is a set of pod label keys to select which pods will
  10051. be taken into consideration. The keys are used to lookup values from the
  10052. incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
  10053. to select the group of existing pods which pods will be taken into consideration
  10054. for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
  10055. pod labels will be ignored. The default value is empty.
  10056. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
  10057. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
  10058. items:
  10059. type: string
  10060. type: array
  10061. x-kubernetes-list-type: atomic
  10062. namespaceSelector:
  10063. description: |-
  10064. A label query over the set of namespaces that the term applies to.
  10065. The term is applied to the union of the namespaces selected by this field
  10066. and the ones listed in the namespaces field.
  10067. null selector and null or empty namespaces list means "this pod's namespace".
  10068. An empty selector ({}) matches all namespaces.
  10069. properties:
  10070. matchExpressions:
  10071. description: matchExpressions is a list
  10072. of label selector requirements. The requirements
  10073. are ANDed.
  10074. items:
  10075. description: |-
  10076. A label selector requirement is a selector that contains values, a key, and an operator that
  10077. relates the key and values.
  10078. properties:
  10079. key:
  10080. description: key is the label key
  10081. that the selector applies to.
  10082. type: string
  10083. operator:
  10084. description: |-
  10085. operator represents a key's relationship to a set of values.
  10086. Valid operators are In, NotIn, Exists and DoesNotExist.
  10087. type: string
  10088. values:
  10089. description: |-
  10090. values is an array of string values. If the operator is In or NotIn,
  10091. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  10092. the values array must be empty. This array is replaced during a strategic
  10093. merge patch.
  10094. items:
  10095. type: string
  10096. type: array
  10097. x-kubernetes-list-type: atomic
  10098. required:
  10099. - key
  10100. - operator
  10101. type: object
  10102. type: array
  10103. x-kubernetes-list-type: atomic
  10104. matchLabels:
  10105. additionalProperties:
  10106. type: string
  10107. description: |-
  10108. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  10109. map is equivalent to an element of matchExpressions, whose key field is "key", the
  10110. operator is "In", and the values array contains only "value". The requirements are ANDed.
  10111. type: object
  10112. type: object
  10113. x-kubernetes-map-type: atomic
  10114. namespaces:
  10115. description: |-
  10116. namespaces specifies a static list of namespace names that the term applies to.
  10117. The term is applied to the union of the namespaces listed in this field
  10118. and the ones selected by namespaceSelector.
  10119. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  10120. items:
  10121. type: string
  10122. type: array
  10123. x-kubernetes-list-type: atomic
  10124. topologyKey:
  10125. description: |-
  10126. This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
  10127. the labelSelector in the specified namespaces, where co-located is defined as running on a node
  10128. whose value of the label with key topologyKey matches that of any node on which any of the
  10129. selected pods is running.
  10130. Empty topologyKey is not allowed.
  10131. type: string
  10132. required:
  10133. - topologyKey
  10134. type: object
  10135. type: array
  10136. x-kubernetes-list-type: atomic
  10137. type: object
  10138. type: object
  10139. automountServiceAccountToken:
  10140. description: AutomountServiceAccountToken indicates whether
  10141. a service account token should be automatically mounted.
  10142. type: boolean
  10143. containers:
  10144. description: |-
  10145. List of containers belonging to the pod.
  10146. Containers cannot currently be added or removed.
  10147. There must be at least one container in a Pod.
  10148. Cannot be updated.
  10149. items:
  10150. description: A single application container that you want
  10151. to run within a pod.
  10152. properties:
  10153. args:
  10154. description: |-
  10155. Arguments to the entrypoint.
  10156. The container image's CMD is used if this is not provided.
  10157. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  10158. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  10159. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  10160. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  10161. of whether the variable exists or not. Cannot be updated.
  10162. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  10163. items:
  10164. type: string
  10165. type: array
  10166. x-kubernetes-list-type: atomic
  10167. command:
  10168. description: |-
  10169. Entrypoint array. Not executed within a shell.
  10170. The container image's ENTRYPOINT is used if this is not provided.
  10171. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  10172. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  10173. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  10174. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  10175. of whether the variable exists or not. Cannot be updated.
  10176. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  10177. items:
  10178. type: string
  10179. type: array
  10180. x-kubernetes-list-type: atomic
  10181. env:
  10182. description: |-
  10183. List of environment variables to set in the container.
  10184. Cannot be updated.
  10185. items:
  10186. description: EnvVar represents an environment variable
  10187. present in a Container.
  10188. properties:
  10189. name:
  10190. description: |-
  10191. Name of the environment variable.
  10192. May consist of any printable ASCII characters except '='.
  10193. type: string
  10194. value:
  10195. description: |-
  10196. Variable references $(VAR_NAME) are expanded
  10197. using the previously defined environment variables in the container and
  10198. any service environment variables. If a variable cannot be resolved,
  10199. the reference in the input string will be unchanged. Double $$ are reduced
  10200. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  10201. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  10202. Escaped references will never be expanded, regardless of whether the variable
  10203. exists or not.
  10204. Defaults to "".
  10205. type: string
  10206. valueFrom:
  10207. description: Source for the environment variable's
  10208. value. Cannot be used if value is not empty.
  10209. properties:
  10210. configMapKeyRef:
  10211. description: Selects a key of a ConfigMap.
  10212. properties:
  10213. key:
  10214. description: The key to select.
  10215. type: string
  10216. name:
  10217. default: ""
  10218. description: |-
  10219. Name of the referent.
  10220. This field is effectively required, but due to backwards compatibility is
  10221. allowed to be empty. Instances of this type with an empty value here are
  10222. almost certainly wrong.
  10223. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10224. type: string
  10225. optional:
  10226. description: Specify whether the ConfigMap
  10227. or its key must be defined
  10228. type: boolean
  10229. required:
  10230. - key
  10231. type: object
  10232. x-kubernetes-map-type: atomic
  10233. fieldRef:
  10234. description: |-
  10235. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  10236. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  10237. properties:
  10238. apiVersion:
  10239. description: Version of the schema the
  10240. FieldPath is written in terms of, defaults
  10241. to "v1".
  10242. type: string
  10243. fieldPath:
  10244. description: Path of the field to select
  10245. in the specified API version.
  10246. type: string
  10247. required:
  10248. - fieldPath
  10249. type: object
  10250. x-kubernetes-map-type: atomic
  10251. fileKeyRef:
  10252. description: |-
  10253. FileKeyRef selects a key of the env file.
  10254. Requires the EnvFiles feature gate to be enabled.
  10255. properties:
  10256. key:
  10257. description: |-
  10258. The key within the env file. An invalid key will prevent the pod from starting.
  10259. The keys defined within a source may consist of any printable ASCII characters except '='.
  10260. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  10261. type: string
  10262. optional:
  10263. default: false
  10264. description: |-
  10265. Specify whether the file or its key must be defined. If the file or key
  10266. does not exist, then the env var is not published.
  10267. If optional is set to true and the specified key does not exist,
  10268. the environment variable will not be set in the Pod's containers.
  10269. If optional is set to false and the specified key does not exist,
  10270. an error will be returned during Pod creation.
  10271. type: boolean
  10272. path:
  10273. description: |-
  10274. The path within the volume from which to select the file.
  10275. Must be relative and may not contain the '..' path or start with '..'.
  10276. type: string
  10277. volumeName:
  10278. description: The name of the volume mount
  10279. containing the env file.
  10280. type: string
  10281. required:
  10282. - key
  10283. - path
  10284. - volumeName
  10285. type: object
  10286. x-kubernetes-map-type: atomic
  10287. resourceFieldRef:
  10288. description: |-
  10289. Selects a resource of the container: only resources limits and requests
  10290. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  10291. properties:
  10292. containerName:
  10293. description: 'Container name: required
  10294. for volumes, optional for env vars'
  10295. type: string
  10296. divisor:
  10297. anyOf:
  10298. - type: integer
  10299. - type: string
  10300. description: Specifies the output format
  10301. of the exposed resources, defaults to
  10302. "1"
  10303. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  10304. x-kubernetes-int-or-string: true
  10305. resource:
  10306. description: 'Required: resource to select'
  10307. type: string
  10308. required:
  10309. - resource
  10310. type: object
  10311. x-kubernetes-map-type: atomic
  10312. secretKeyRef:
  10313. description: Selects a key of a secret in
  10314. the pod's namespace
  10315. properties:
  10316. key:
  10317. description: The key of the secret to
  10318. select from. Must be a valid secret
  10319. key.
  10320. type: string
  10321. name:
  10322. default: ""
  10323. description: |-
  10324. Name of the referent.
  10325. This field is effectively required, but due to backwards compatibility is
  10326. allowed to be empty. Instances of this type with an empty value here are
  10327. almost certainly wrong.
  10328. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10329. type: string
  10330. optional:
  10331. description: Specify whether the Secret
  10332. or its key must be defined
  10333. type: boolean
  10334. required:
  10335. - key
  10336. type: object
  10337. x-kubernetes-map-type: atomic
  10338. type: object
  10339. required:
  10340. - name
  10341. type: object
  10342. type: array
  10343. x-kubernetes-list-map-keys:
  10344. - name
  10345. x-kubernetes-list-type: map
  10346. envFrom:
  10347. description: |-
  10348. List of sources to populate environment variables in the container.
  10349. The keys defined within a source may consist of any printable ASCII characters except '='.
  10350. When a key exists in multiple
  10351. sources, the value associated with the last source will take precedence.
  10352. Values defined by an Env with a duplicate key will take precedence.
  10353. Cannot be updated.
  10354. items:
  10355. description: EnvFromSource represents the source of
  10356. a set of ConfigMaps or Secrets
  10357. properties:
  10358. configMapRef:
  10359. description: The ConfigMap to select from
  10360. properties:
  10361. name:
  10362. default: ""
  10363. description: |-
  10364. Name of the referent.
  10365. This field is effectively required, but due to backwards compatibility is
  10366. allowed to be empty. Instances of this type with an empty value here are
  10367. almost certainly wrong.
  10368. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10369. type: string
  10370. optional:
  10371. description: Specify whether the ConfigMap
  10372. must be defined
  10373. type: boolean
  10374. type: object
  10375. x-kubernetes-map-type: atomic
  10376. prefix:
  10377. description: |-
  10378. Optional text to prepend to the name of each environment variable.
  10379. May consist of any printable ASCII characters except '='.
  10380. type: string
  10381. secretRef:
  10382. description: The Secret to select from
  10383. properties:
  10384. name:
  10385. default: ""
  10386. description: |-
  10387. Name of the referent.
  10388. This field is effectively required, but due to backwards compatibility is
  10389. allowed to be empty. Instances of this type with an empty value here are
  10390. almost certainly wrong.
  10391. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  10392. type: string
  10393. optional:
  10394. description: Specify whether the Secret must
  10395. be defined
  10396. type: boolean
  10397. type: object
  10398. x-kubernetes-map-type: atomic
  10399. type: object
  10400. type: array
  10401. x-kubernetes-list-type: atomic
  10402. image:
  10403. description: |-
  10404. Container image name.
  10405. More info: https://kubernetes.io/docs/concepts/containers/images
  10406. This field is optional to allow higher level config management to default or override
  10407. container images in workload controllers like Deployments and StatefulSets.
  10408. type: string
  10409. imagePullPolicy:
  10410. description: |-
  10411. Image pull policy.
  10412. One of Always, Never, IfNotPresent.
  10413. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  10414. Cannot be updated.
  10415. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  10416. type: string
  10417. lifecycle:
  10418. description: |-
  10419. Actions that the management system should take in response to container lifecycle events.
  10420. Cannot be updated.
  10421. properties:
  10422. postStart:
  10423. description: |-
  10424. PostStart is called immediately after a container is created. If the handler fails,
  10425. the container is terminated and restarted according to its restart policy.
  10426. Other management of the container blocks until the hook completes.
  10427. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  10428. properties:
  10429. exec:
  10430. description: Exec specifies a command to execute
  10431. in the container.
  10432. properties:
  10433. command:
  10434. description: |-
  10435. Command is the command line to execute inside the container, the working directory for the
  10436. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  10437. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  10438. a shell, you need to explicitly call out to that shell.
  10439. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10440. items:
  10441. type: string
  10442. type: array
  10443. x-kubernetes-list-type: atomic
  10444. type: object
  10445. httpGet:
  10446. description: HTTPGet specifies an HTTP GET request
  10447. to perform.
  10448. properties:
  10449. host:
  10450. description: |-
  10451. Host name to connect to, defaults to the pod IP. You probably want to set
  10452. "Host" in httpHeaders instead.
  10453. type: string
  10454. httpHeaders:
  10455. description: Custom headers to set in the
  10456. request. HTTP allows repeated headers.
  10457. items:
  10458. description: HTTPHeader describes a custom
  10459. header to be used in HTTP probes
  10460. properties:
  10461. name:
  10462. description: |-
  10463. The header field name.
  10464. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  10465. type: string
  10466. value:
  10467. description: The header field value
  10468. type: string
  10469. required:
  10470. - name
  10471. - value
  10472. type: object
  10473. type: array
  10474. x-kubernetes-list-type: atomic
  10475. path:
  10476. description: Path to access on the HTTP
  10477. server.
  10478. type: string
  10479. port:
  10480. anyOf:
  10481. - type: integer
  10482. - type: string
  10483. description: |-
  10484. Name or number of the port to access on the container.
  10485. Number must be in the range 1 to 65535.
  10486. Name must be an IANA_SVC_NAME.
  10487. x-kubernetes-int-or-string: true
  10488. scheme:
  10489. description: |-
  10490. Scheme to use for connecting to the host.
  10491. Defaults to HTTP.
  10492. type: string
  10493. required:
  10494. - port
  10495. type: object
  10496. sleep:
  10497. description: Sleep represents a duration that
  10498. the container should sleep.
  10499. properties:
  10500. seconds:
  10501. description: Seconds is the number of seconds
  10502. to sleep.
  10503. format: int64
  10504. type: integer
  10505. required:
  10506. - seconds
  10507. type: object
  10508. tcpSocket:
  10509. description: |-
  10510. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  10511. for backward compatibility. There is no validation of this field and
  10512. lifecycle hooks will fail at runtime when it is specified.
  10513. properties:
  10514. host:
  10515. description: 'Optional: Host name to connect
  10516. to, defaults to the pod IP.'
  10517. type: string
  10518. port:
  10519. anyOf:
  10520. - type: integer
  10521. - type: string
  10522. description: |-
  10523. Number or name of the port to access on the container.
  10524. Number must be in the range 1 to 65535.
  10525. Name must be an IANA_SVC_NAME.
  10526. x-kubernetes-int-or-string: true
  10527. required:
  10528. - port
  10529. type: object
  10530. type: object
  10531. preStop:
  10532. description: |-
  10533. PreStop is called immediately before a container is terminated due to an
  10534. API request or management event such as liveness/startup probe failure,
  10535. preemption, resource contention, etc. The handler is not called if the
  10536. container crashes or exits. The Pod's termination grace period countdown begins before the
  10537. PreStop hook is executed. Regardless of the outcome of the handler, the
  10538. container will eventually terminate within the Pod's termination grace
  10539. period (unless delayed by finalizers). Other management of the container blocks until the hook completes
  10540. or until the termination grace period is reached.
  10541. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  10542. properties:
  10543. exec:
  10544. description: Exec specifies a command to execute
  10545. in the container.
  10546. properties:
  10547. command:
  10548. description: |-
  10549. Command is the command line to execute inside the container, the working directory for the
  10550. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  10551. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  10552. a shell, you need to explicitly call out to that shell.
  10553. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10554. items:
  10555. type: string
  10556. type: array
  10557. x-kubernetes-list-type: atomic
  10558. type: object
  10559. httpGet:
  10560. description: HTTPGet specifies an HTTP GET request
  10561. to perform.
  10562. properties:
  10563. host:
  10564. description: |-
  10565. Host name to connect to, defaults to the pod IP. You probably want to set
  10566. "Host" in httpHeaders instead.
  10567. type: string
  10568. httpHeaders:
  10569. description: Custom headers to set in the
  10570. request. HTTP allows repeated headers.
  10571. items:
  10572. description: HTTPHeader describes a custom
  10573. header to be used in HTTP probes
  10574. properties:
  10575. name:
  10576. description: |-
  10577. The header field name.
  10578. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  10579. type: string
  10580. value:
  10581. description: The header field value
  10582. type: string
  10583. required:
  10584. - name
  10585. - value
  10586. type: object
  10587. type: array
  10588. x-kubernetes-list-type: atomic
  10589. path:
  10590. description: Path to access on the HTTP
  10591. server.
  10592. type: string
  10593. port:
  10594. anyOf:
  10595. - type: integer
  10596. - type: string
  10597. description: |-
  10598. Name or number of the port to access on the container.
  10599. Number must be in the range 1 to 65535.
  10600. Name must be an IANA_SVC_NAME.
  10601. x-kubernetes-int-or-string: true
  10602. scheme:
  10603. description: |-
  10604. Scheme to use for connecting to the host.
  10605. Defaults to HTTP.
  10606. type: string
  10607. required:
  10608. - port
  10609. type: object
  10610. sleep:
  10611. description: Sleep represents a duration that
  10612. the container should sleep.
  10613. properties:
  10614. seconds:
  10615. description: Seconds is the number of seconds
  10616. to sleep.
  10617. format: int64
  10618. type: integer
  10619. required:
  10620. - seconds
  10621. type: object
  10622. tcpSocket:
  10623. description: |-
  10624. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  10625. for backward compatibility. There is no validation of this field and
  10626. lifecycle hooks will fail at runtime when it is specified.
  10627. properties:
  10628. host:
  10629. description: 'Optional: Host name to connect
  10630. to, defaults to the pod IP.'
  10631. type: string
  10632. port:
  10633. anyOf:
  10634. - type: integer
  10635. - type: string
  10636. description: |-
  10637. Number or name of the port to access on the container.
  10638. Number must be in the range 1 to 65535.
  10639. Name must be an IANA_SVC_NAME.
  10640. x-kubernetes-int-or-string: true
  10641. required:
  10642. - port
  10643. type: object
  10644. type: object
  10645. stopSignal:
  10646. description: |-
  10647. StopSignal defines which signal will be sent to a container when it is being stopped.
  10648. If not specified, the default is defined by the container runtime in use.
  10649. StopSignal can only be set for Pods with a non-empty .spec.os.name
  10650. type: string
  10651. type: object
  10652. livenessProbe:
  10653. description: |-
  10654. Periodic probe of container liveness.
  10655. Container will be restarted if the probe fails.
  10656. Cannot be updated.
  10657. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10658. properties:
  10659. exec:
  10660. description: Exec specifies a command to execute
  10661. in the container.
  10662. properties:
  10663. command:
  10664. description: |-
  10665. Command is the command line to execute inside the container, the working directory for the
  10666. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  10667. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  10668. a shell, you need to explicitly call out to that shell.
  10669. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10670. items:
  10671. type: string
  10672. type: array
  10673. x-kubernetes-list-type: atomic
  10674. type: object
  10675. failureThreshold:
  10676. description: |-
  10677. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  10678. Defaults to 3. Minimum value is 1.
  10679. format: int32
  10680. type: integer
  10681. grpc:
  10682. description: GRPC specifies a GRPC HealthCheckRequest.
  10683. properties:
  10684. port:
  10685. description: Port number of the gRPC service.
  10686. Number must be in the range 1 to 65535.
  10687. format: int32
  10688. type: integer
  10689. service:
  10690. default: ""
  10691. description: |-
  10692. Service is the name of the service to place in the gRPC HealthCheckRequest
  10693. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  10694. If this is not specified, the default behavior is defined by gRPC.
  10695. type: string
  10696. required:
  10697. - port
  10698. type: object
  10699. httpGet:
  10700. description: HTTPGet specifies an HTTP GET request
  10701. to perform.
  10702. properties:
  10703. host:
  10704. description: |-
  10705. Host name to connect to, defaults to the pod IP. You probably want to set
  10706. "Host" in httpHeaders instead.
  10707. type: string
  10708. httpHeaders:
  10709. description: Custom headers to set in the request.
  10710. HTTP allows repeated headers.
  10711. items:
  10712. description: HTTPHeader describes a custom
  10713. header to be used in HTTP probes
  10714. properties:
  10715. name:
  10716. description: |-
  10717. The header field name.
  10718. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  10719. type: string
  10720. value:
  10721. description: The header field value
  10722. type: string
  10723. required:
  10724. - name
  10725. - value
  10726. type: object
  10727. type: array
  10728. x-kubernetes-list-type: atomic
  10729. path:
  10730. description: Path to access on the HTTP server.
  10731. type: string
  10732. port:
  10733. anyOf:
  10734. - type: integer
  10735. - type: string
  10736. description: |-
  10737. Name or number of the port to access on the container.
  10738. Number must be in the range 1 to 65535.
  10739. Name must be an IANA_SVC_NAME.
  10740. x-kubernetes-int-or-string: true
  10741. scheme:
  10742. description: |-
  10743. Scheme to use for connecting to the host.
  10744. Defaults to HTTP.
  10745. type: string
  10746. required:
  10747. - port
  10748. type: object
  10749. initialDelaySeconds:
  10750. description: |-
  10751. Number of seconds after the container has started before liveness probes are initiated.
  10752. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10753. format: int32
  10754. type: integer
  10755. periodSeconds:
  10756. description: |-
  10757. How often (in seconds) to perform the probe.
  10758. Default to 10 seconds. Minimum value is 1.
  10759. format: int32
  10760. type: integer
  10761. successThreshold:
  10762. description: |-
  10763. Minimum consecutive successes for the probe to be considered successful after having failed.
  10764. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  10765. format: int32
  10766. type: integer
  10767. tcpSocket:
  10768. description: TCPSocket specifies a connection to
  10769. a TCP port.
  10770. properties:
  10771. host:
  10772. description: 'Optional: Host name to connect
  10773. to, defaults to the pod IP.'
  10774. type: string
  10775. port:
  10776. anyOf:
  10777. - type: integer
  10778. - type: string
  10779. description: |-
  10780. Number or name of the port to access on the container.
  10781. Number must be in the range 1 to 65535.
  10782. Name must be an IANA_SVC_NAME.
  10783. x-kubernetes-int-or-string: true
  10784. required:
  10785. - port
  10786. type: object
  10787. terminationGracePeriodSeconds:
  10788. description: |-
  10789. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  10790. The grace period is the duration in seconds after the processes running in the pod are sent
  10791. a termination signal and the time when the processes are forcibly halted with a kill signal.
  10792. Set this value longer than the expected cleanup time for your process.
  10793. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  10794. value overrides the value provided by the pod spec.
  10795. Value must be non-negative integer. The value zero indicates stop immediately via
  10796. the kill signal (no opportunity to shut down).
  10797. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  10798. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  10799. format: int64
  10800. type: integer
  10801. timeoutSeconds:
  10802. description: |-
  10803. Number of seconds after which the probe times out.
  10804. Defaults to 1 second. Minimum value is 1.
  10805. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10806. format: int32
  10807. type: integer
  10808. type: object
  10809. name:
  10810. description: |-
  10811. Name of the container specified as a DNS_LABEL.
  10812. Each container in a pod must have a unique name (DNS_LABEL).
  10813. Cannot be updated.
  10814. type: string
  10815. ports:
  10816. description: |-
  10817. List of ports to expose from the container. Not specifying a port here
  10818. DOES NOT prevent that port from being exposed. Any port which is
  10819. listening on the default "0.0.0.0" address inside a container will be
  10820. accessible from the network.
  10821. Modifying this array with strategic merge patch may corrupt the data.
  10822. For more information See https://github.com/kubernetes/kubernetes/issues/108255.
  10823. Cannot be updated.
  10824. items:
  10825. description: ContainerPort represents a network port
  10826. in a single container.
  10827. properties:
  10828. containerPort:
  10829. description: |-
  10830. Number of port to expose on the pod's IP address.
  10831. This must be a valid port number, 0 < x < 65536.
  10832. format: int32
  10833. type: integer
  10834. hostIP:
  10835. description: What host IP to bind the external
  10836. port to.
  10837. type: string
  10838. hostPort:
  10839. description: |-
  10840. Number of port to expose on the host.
  10841. If specified, this must be a valid port number, 0 < x < 65536.
  10842. If HostNetwork is specified, this must match ContainerPort.
  10843. Most containers do not need this.
  10844. format: int32
  10845. type: integer
  10846. name:
  10847. description: |-
  10848. If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
  10849. named port in a pod must have a unique name. Name for the port that can be
  10850. referred to by services.
  10851. type: string
  10852. protocol:
  10853. default: TCP
  10854. description: |-
  10855. Protocol for port. Must be UDP, TCP, or SCTP.
  10856. Defaults to "TCP".
  10857. type: string
  10858. required:
  10859. - containerPort
  10860. type: object
  10861. type: array
  10862. x-kubernetes-list-map-keys:
  10863. - containerPort
  10864. - protocol
  10865. x-kubernetes-list-type: map
  10866. readinessProbe:
  10867. description: |-
  10868. Periodic probe of container service readiness.
  10869. Container will be removed from service endpoints if the probe fails.
  10870. Cannot be updated.
  10871. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10872. properties:
  10873. exec:
  10874. description: Exec specifies a command to execute
  10875. in the container.
  10876. properties:
  10877. command:
  10878. description: |-
  10879. Command is the command line to execute inside the container, the working directory for the
  10880. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  10881. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  10882. a shell, you need to explicitly call out to that shell.
  10883. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  10884. items:
  10885. type: string
  10886. type: array
  10887. x-kubernetes-list-type: atomic
  10888. type: object
  10889. failureThreshold:
  10890. description: |-
  10891. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  10892. Defaults to 3. Minimum value is 1.
  10893. format: int32
  10894. type: integer
  10895. grpc:
  10896. description: GRPC specifies a GRPC HealthCheckRequest.
  10897. properties:
  10898. port:
  10899. description: Port number of the gRPC service.
  10900. Number must be in the range 1 to 65535.
  10901. format: int32
  10902. type: integer
  10903. service:
  10904. default: ""
  10905. description: |-
  10906. Service is the name of the service to place in the gRPC HealthCheckRequest
  10907. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  10908. If this is not specified, the default behavior is defined by gRPC.
  10909. type: string
  10910. required:
  10911. - port
  10912. type: object
  10913. httpGet:
  10914. description: HTTPGet specifies an HTTP GET request
  10915. to perform.
  10916. properties:
  10917. host:
  10918. description: |-
  10919. Host name to connect to, defaults to the pod IP. You probably want to set
  10920. "Host" in httpHeaders instead.
  10921. type: string
  10922. httpHeaders:
  10923. description: Custom headers to set in the request.
  10924. HTTP allows repeated headers.
  10925. items:
  10926. description: HTTPHeader describes a custom
  10927. header to be used in HTTP probes
  10928. properties:
  10929. name:
  10930. description: |-
  10931. The header field name.
  10932. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  10933. type: string
  10934. value:
  10935. description: The header field value
  10936. type: string
  10937. required:
  10938. - name
  10939. - value
  10940. type: object
  10941. type: array
  10942. x-kubernetes-list-type: atomic
  10943. path:
  10944. description: Path to access on the HTTP server.
  10945. type: string
  10946. port:
  10947. anyOf:
  10948. - type: integer
  10949. - type: string
  10950. description: |-
  10951. Name or number of the port to access on the container.
  10952. Number must be in the range 1 to 65535.
  10953. Name must be an IANA_SVC_NAME.
  10954. x-kubernetes-int-or-string: true
  10955. scheme:
  10956. description: |-
  10957. Scheme to use for connecting to the host.
  10958. Defaults to HTTP.
  10959. type: string
  10960. required:
  10961. - port
  10962. type: object
  10963. initialDelaySeconds:
  10964. description: |-
  10965. Number of seconds after the container has started before liveness probes are initiated.
  10966. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  10967. format: int32
  10968. type: integer
  10969. periodSeconds:
  10970. description: |-
  10971. How often (in seconds) to perform the probe.
  10972. Default to 10 seconds. Minimum value is 1.
  10973. format: int32
  10974. type: integer
  10975. successThreshold:
  10976. description: |-
  10977. Minimum consecutive successes for the probe to be considered successful after having failed.
  10978. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  10979. format: int32
  10980. type: integer
  10981. tcpSocket:
  10982. description: TCPSocket specifies a connection to
  10983. a TCP port.
  10984. properties:
  10985. host:
  10986. description: 'Optional: Host name to connect
  10987. to, defaults to the pod IP.'
  10988. type: string
  10989. port:
  10990. anyOf:
  10991. - type: integer
  10992. - type: string
  10993. description: |-
  10994. Number or name of the port to access on the container.
  10995. Number must be in the range 1 to 65535.
  10996. Name must be an IANA_SVC_NAME.
  10997. x-kubernetes-int-or-string: true
  10998. required:
  10999. - port
  11000. type: object
  11001. terminationGracePeriodSeconds:
  11002. description: |-
  11003. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  11004. The grace period is the duration in seconds after the processes running in the pod are sent
  11005. a termination signal and the time when the processes are forcibly halted with a kill signal.
  11006. Set this value longer than the expected cleanup time for your process.
  11007. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  11008. value overrides the value provided by the pod spec.
  11009. Value must be non-negative integer. The value zero indicates stop immediately via
  11010. the kill signal (no opportunity to shut down).
  11011. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  11012. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11013. format: int64
  11014. type: integer
  11015. timeoutSeconds:
  11016. description: |-
  11017. Number of seconds after which the probe times out.
  11018. Defaults to 1 second. Minimum value is 1.
  11019. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  11020. format: int32
  11021. type: integer
  11022. type: object
  11023. resizePolicy:
  11024. description: Resources resize policy for the container.
  11025. items:
  11026. description: ContainerResizePolicy represents resource
  11027. resize policy for the container.
  11028. properties:
  11029. resourceName:
  11030. description: |-
  11031. Name of the resource to which this resource resize policy applies.
  11032. Supported values: cpu, memory.
  11033. type: string
  11034. restartPolicy:
  11035. description: |-
  11036. Restart policy to apply when specified resource is resized.
  11037. If not specified, it defaults to NotRequired.
  11038. type: string
  11039. required:
  11040. - resourceName
  11041. - restartPolicy
  11042. type: object
  11043. type: array
  11044. x-kubernetes-list-type: atomic
  11045. resources:
  11046. description: |-
  11047. Compute Resources required by this container.
  11048. Cannot be updated.
  11049. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  11050. properties:
  11051. claims:
  11052. description: |-
  11053. Claims lists the names of resources, defined in spec.resourceClaims,
  11054. that are used by this container.
  11055. This field depends on the
  11056. DynamicResourceAllocation feature gate.
  11057. This field is immutable. It can only be set for containers.
  11058. items:
  11059. description: ResourceClaim references one entry
  11060. in PodSpec.ResourceClaims.
  11061. properties:
  11062. name:
  11063. description: |-
  11064. Name must match the name of one entry in pod.spec.resourceClaims of
  11065. the Pod where this field is used. It makes that resource available
  11066. inside a container.
  11067. type: string
  11068. request:
  11069. description: |-
  11070. Request is the name chosen for a request in the referenced claim.
  11071. If empty, everything from the claim is made available, otherwise
  11072. only the result of this request.
  11073. type: string
  11074. required:
  11075. - name
  11076. type: object
  11077. type: array
  11078. x-kubernetes-list-map-keys:
  11079. - name
  11080. x-kubernetes-list-type: map
  11081. limits:
  11082. additionalProperties:
  11083. anyOf:
  11084. - type: integer
  11085. - type: string
  11086. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11087. x-kubernetes-int-or-string: true
  11088. description: |-
  11089. Limits describes the maximum amount of compute resources allowed.
  11090. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  11091. type: object
  11092. requests:
  11093. additionalProperties:
  11094. anyOf:
  11095. - type: integer
  11096. - type: string
  11097. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11098. x-kubernetes-int-or-string: true
  11099. description: |-
  11100. Requests describes the minimum amount of compute resources required.
  11101. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  11102. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  11103. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  11104. type: object
  11105. type: object
  11106. restartPolicy:
  11107. description: |-
  11108. RestartPolicy defines the restart behavior of individual containers in a pod.
  11109. This overrides the pod-level restart policy. When this field is not specified,
  11110. the restart behavior is defined by the Pod's restart policy and the container type.
  11111. Additionally, setting the RestartPolicy as "Always" for the init container will
  11112. have the following effect:
  11113. this init container will be continually restarted on
  11114. exit until all regular containers have terminated. Once all regular
  11115. containers have completed, all init containers with restartPolicy "Always"
  11116. will be shut down. This lifecycle differs from normal init containers and
  11117. is often referred to as a "sidecar" container. Although this init
  11118. container still starts in the init container sequence, it does not wait
  11119. for the container to complete before proceeding to the next init
  11120. container. Instead, the next init container starts immediately after this
  11121. init container is started, or after any startupProbe has successfully
  11122. completed.
  11123. type: string
  11124. restartPolicyRules:
  11125. description: |-
  11126. Represents a list of rules to be checked to determine if the
  11127. container should be restarted on exit. The rules are evaluated in
  11128. order. Once a rule matches a container exit condition, the remaining
  11129. rules are ignored. If no rule matches the container exit condition,
  11130. the Container-level restart policy determines the whether the container
  11131. is restarted or not. Constraints on the rules:
  11132. - At most 20 rules are allowed.
  11133. - Rules can have the same action.
  11134. - Identical rules are not forbidden in validations.
  11135. When rules are specified, container MUST set RestartPolicy explicitly
  11136. even it if matches the Pod's RestartPolicy.
  11137. items:
  11138. description: ContainerRestartRule describes how a
  11139. container exit is handled.
  11140. properties:
  11141. action:
  11142. description: |-
  11143. Specifies the action taken on a container exit if the requirements
  11144. are satisfied. The only possible value is "Restart" to restart the
  11145. container.
  11146. type: string
  11147. exitCodes:
  11148. description: Represents the exit codes to check
  11149. on container exits.
  11150. properties:
  11151. operator:
  11152. description: |-
  11153. Represents the relationship between the container exit code(s) and the
  11154. specified values. Possible values are:
  11155. - In: the requirement is satisfied if the container exit code is in the
  11156. set of specified values.
  11157. - NotIn: the requirement is satisfied if the container exit code is
  11158. not in the set of specified values.
  11159. type: string
  11160. values:
  11161. description: |-
  11162. Specifies the set of values to check for container exit codes.
  11163. At most 255 elements are allowed.
  11164. items:
  11165. format: int32
  11166. type: integer
  11167. type: array
  11168. x-kubernetes-list-type: set
  11169. required:
  11170. - operator
  11171. type: object
  11172. required:
  11173. - action
  11174. type: object
  11175. type: array
  11176. x-kubernetes-list-type: atomic
  11177. securityContext:
  11178. description: |-
  11179. SecurityContext defines the security options the container should be run with.
  11180. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
  11181. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  11182. properties:
  11183. allowPrivilegeEscalation:
  11184. description: |-
  11185. AllowPrivilegeEscalation controls whether a process can gain more
  11186. privileges than its parent process. This bool directly controls if
  11187. the no_new_privs flag will be set on the container process.
  11188. AllowPrivilegeEscalation is true always when the container is:
  11189. 1) run as Privileged
  11190. 2) has CAP_SYS_ADMIN
  11191. Note that this field cannot be set when spec.os.name is windows.
  11192. type: boolean
  11193. appArmorProfile:
  11194. description: |-
  11195. appArmorProfile is the AppArmor options to use by this container. If set, this profile
  11196. overrides the pod's appArmorProfile.
  11197. Note that this field cannot be set when spec.os.name is windows.
  11198. properties:
  11199. localhostProfile:
  11200. description: |-
  11201. localhostProfile indicates a profile loaded on the node that should be used.
  11202. The profile must be preconfigured on the node to work.
  11203. Must match the loaded name of the profile.
  11204. Must be set if and only if type is "Localhost".
  11205. type: string
  11206. type:
  11207. description: |-
  11208. type indicates which kind of AppArmor profile will be applied.
  11209. Valid options are:
  11210. Localhost - a profile pre-loaded on the node.
  11211. RuntimeDefault - the container runtime's default profile.
  11212. Unconfined - no AppArmor enforcement.
  11213. type: string
  11214. required:
  11215. - type
  11216. type: object
  11217. capabilities:
  11218. description: |-
  11219. The capabilities to add/drop when running containers.
  11220. Defaults to the default set of capabilities granted by the container runtime.
  11221. Note that this field cannot be set when spec.os.name is windows.
  11222. properties:
  11223. add:
  11224. description: Added capabilities
  11225. items:
  11226. description: Capability represent POSIX capabilities
  11227. type
  11228. type: string
  11229. type: array
  11230. x-kubernetes-list-type: atomic
  11231. drop:
  11232. description: Removed capabilities
  11233. items:
  11234. description: Capability represent POSIX capabilities
  11235. type
  11236. type: string
  11237. type: array
  11238. x-kubernetes-list-type: atomic
  11239. type: object
  11240. privileged:
  11241. description: |-
  11242. Run container in privileged mode.
  11243. Processes in privileged containers are essentially equivalent to root on the host.
  11244. Defaults to false.
  11245. Note that this field cannot be set when spec.os.name is windows.
  11246. type: boolean
  11247. procMount:
  11248. description: |-
  11249. procMount denotes the type of proc mount to use for the containers.
  11250. The default value is Default which uses the container runtime defaults for
  11251. readonly paths and masked paths.
  11252. This requires the ProcMountType feature flag to be enabled.
  11253. Note that this field cannot be set when spec.os.name is windows.
  11254. type: string
  11255. readOnlyRootFilesystem:
  11256. description: |-
  11257. Whether this container has a read-only root filesystem.
  11258. Default is false.
  11259. Note that this field cannot be set when spec.os.name is windows.
  11260. type: boolean
  11261. runAsGroup:
  11262. description: |-
  11263. The GID to run the entrypoint of the container process.
  11264. Uses runtime default if unset.
  11265. May also be set in PodSecurityContext. If set in both SecurityContext and
  11266. PodSecurityContext, the value specified in SecurityContext takes precedence.
  11267. Note that this field cannot be set when spec.os.name is windows.
  11268. format: int64
  11269. type: integer
  11270. runAsNonRoot:
  11271. description: |-
  11272. Indicates that the container must run as a non-root user.
  11273. If true, the Kubelet will validate the image at runtime to ensure that it
  11274. does not run as UID 0 (root) and fail to start the container if it does.
  11275. If unset or false, no such validation will be performed.
  11276. May also be set in PodSecurityContext. If set in both SecurityContext and
  11277. PodSecurityContext, the value specified in SecurityContext takes precedence.
  11278. type: boolean
  11279. runAsUser:
  11280. description: |-
  11281. The UID to run the entrypoint of the container process.
  11282. Defaults to user specified in image metadata if unspecified.
  11283. May also be set in PodSecurityContext. If set in both SecurityContext and
  11284. PodSecurityContext, the value specified in SecurityContext takes precedence.
  11285. Note that this field cannot be set when spec.os.name is windows.
  11286. format: int64
  11287. type: integer
  11288. seLinuxOptions:
  11289. description: |-
  11290. The SELinux context to be applied to the container.
  11291. If unspecified, the container runtime will allocate a random SELinux context for each
  11292. container. May also be set in PodSecurityContext. If set in both SecurityContext and
  11293. PodSecurityContext, the value specified in SecurityContext takes precedence.
  11294. Note that this field cannot be set when spec.os.name is windows.
  11295. properties:
  11296. level:
  11297. description: Level is SELinux level label that
  11298. applies to the container.
  11299. type: string
  11300. role:
  11301. description: Role is a SELinux role label that
  11302. applies to the container.
  11303. type: string
  11304. type:
  11305. description: Type is a SELinux type label that
  11306. applies to the container.
  11307. type: string
  11308. user:
  11309. description: User is a SELinux user label that
  11310. applies to the container.
  11311. type: string
  11312. type: object
  11313. seccompProfile:
  11314. description: |-
  11315. The seccomp options to use by this container. If seccomp options are
  11316. provided at both the pod & container level, the container options
  11317. override the pod options.
  11318. Note that this field cannot be set when spec.os.name is windows.
  11319. properties:
  11320. localhostProfile:
  11321. description: |-
  11322. localhostProfile indicates a profile defined in a file on the node should be used.
  11323. The profile must be preconfigured on the node to work.
  11324. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  11325. Must be set if type is "Localhost". Must NOT be set for any other type.
  11326. type: string
  11327. type:
  11328. description: |-
  11329. type indicates which kind of seccomp profile will be applied.
  11330. Valid options are:
  11331. Localhost - a profile defined in a file on the node should be used.
  11332. RuntimeDefault - the container runtime default profile should be used.
  11333. Unconfined - no profile should be applied.
  11334. type: string
  11335. required:
  11336. - type
  11337. type: object
  11338. windowsOptions:
  11339. description: |-
  11340. The Windows specific settings applied to all containers.
  11341. If unspecified, the options from the PodSecurityContext will be used.
  11342. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  11343. Note that this field cannot be set when spec.os.name is linux.
  11344. properties:
  11345. gmsaCredentialSpec:
  11346. description: |-
  11347. GMSACredentialSpec is where the GMSA admission webhook
  11348. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  11349. GMSA credential spec named by the GMSACredentialSpecName field.
  11350. type: string
  11351. gmsaCredentialSpecName:
  11352. description: GMSACredentialSpecName is the name
  11353. of the GMSA credential spec to use.
  11354. type: string
  11355. hostProcess:
  11356. description: |-
  11357. HostProcess determines if a container should be run as a 'Host Process' container.
  11358. All of a Pod's containers must have the same effective HostProcess value
  11359. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  11360. In addition, if HostProcess is true then HostNetwork must also be set to true.
  11361. type: boolean
  11362. runAsUserName:
  11363. description: |-
  11364. The UserName in Windows to run the entrypoint of the container process.
  11365. Defaults to the user specified in image metadata if unspecified.
  11366. May also be set in PodSecurityContext. If set in both SecurityContext and
  11367. PodSecurityContext, the value specified in SecurityContext takes precedence.
  11368. type: string
  11369. type: object
  11370. type: object
  11371. startupProbe:
  11372. description: |-
  11373. StartupProbe indicates that the Pod has successfully initialized.
  11374. If specified, no other probes are executed until this completes successfully.
  11375. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
  11376. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
  11377. when it might take a long time to load data or warm a cache, than during steady-state operation.
  11378. This cannot be updated.
  11379. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  11380. properties:
  11381. exec:
  11382. description: Exec specifies a command to execute
  11383. in the container.
  11384. properties:
  11385. command:
  11386. description: |-
  11387. Command is the command line to execute inside the container, the working directory for the
  11388. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  11389. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  11390. a shell, you need to explicitly call out to that shell.
  11391. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  11392. items:
  11393. type: string
  11394. type: array
  11395. x-kubernetes-list-type: atomic
  11396. type: object
  11397. failureThreshold:
  11398. description: |-
  11399. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  11400. Defaults to 3. Minimum value is 1.
  11401. format: int32
  11402. type: integer
  11403. grpc:
  11404. description: GRPC specifies a GRPC HealthCheckRequest.
  11405. properties:
  11406. port:
  11407. description: Port number of the gRPC service.
  11408. Number must be in the range 1 to 65535.
  11409. format: int32
  11410. type: integer
  11411. service:
  11412. default: ""
  11413. description: |-
  11414. Service is the name of the service to place in the gRPC HealthCheckRequest
  11415. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  11416. If this is not specified, the default behavior is defined by gRPC.
  11417. type: string
  11418. required:
  11419. - port
  11420. type: object
  11421. httpGet:
  11422. description: HTTPGet specifies an HTTP GET request
  11423. to perform.
  11424. properties:
  11425. host:
  11426. description: |-
  11427. Host name to connect to, defaults to the pod IP. You probably want to set
  11428. "Host" in httpHeaders instead.
  11429. type: string
  11430. httpHeaders:
  11431. description: Custom headers to set in the request.
  11432. HTTP allows repeated headers.
  11433. items:
  11434. description: HTTPHeader describes a custom
  11435. header to be used in HTTP probes
  11436. properties:
  11437. name:
  11438. description: |-
  11439. The header field name.
  11440. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  11441. type: string
  11442. value:
  11443. description: The header field value
  11444. type: string
  11445. required:
  11446. - name
  11447. - value
  11448. type: object
  11449. type: array
  11450. x-kubernetes-list-type: atomic
  11451. path:
  11452. description: Path to access on the HTTP server.
  11453. type: string
  11454. port:
  11455. anyOf:
  11456. - type: integer
  11457. - type: string
  11458. description: |-
  11459. Name or number of the port to access on the container.
  11460. Number must be in the range 1 to 65535.
  11461. Name must be an IANA_SVC_NAME.
  11462. x-kubernetes-int-or-string: true
  11463. scheme:
  11464. description: |-
  11465. Scheme to use for connecting to the host.
  11466. Defaults to HTTP.
  11467. type: string
  11468. required:
  11469. - port
  11470. type: object
  11471. initialDelaySeconds:
  11472. description: |-
  11473. Number of seconds after the container has started before liveness probes are initiated.
  11474. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  11475. format: int32
  11476. type: integer
  11477. periodSeconds:
  11478. description: |-
  11479. How often (in seconds) to perform the probe.
  11480. Default to 10 seconds. Minimum value is 1.
  11481. format: int32
  11482. type: integer
  11483. successThreshold:
  11484. description: |-
  11485. Minimum consecutive successes for the probe to be considered successful after having failed.
  11486. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  11487. format: int32
  11488. type: integer
  11489. tcpSocket:
  11490. description: TCPSocket specifies a connection to
  11491. a TCP port.
  11492. properties:
  11493. host:
  11494. description: 'Optional: Host name to connect
  11495. to, defaults to the pod IP.'
  11496. type: string
  11497. port:
  11498. anyOf:
  11499. - type: integer
  11500. - type: string
  11501. description: |-
  11502. Number or name of the port to access on the container.
  11503. Number must be in the range 1 to 65535.
  11504. Name must be an IANA_SVC_NAME.
  11505. x-kubernetes-int-or-string: true
  11506. required:
  11507. - port
  11508. type: object
  11509. terminationGracePeriodSeconds:
  11510. description: |-
  11511. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  11512. The grace period is the duration in seconds after the processes running in the pod are sent
  11513. a termination signal and the time when the processes are forcibly halted with a kill signal.
  11514. Set this value longer than the expected cleanup time for your process.
  11515. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  11516. value overrides the value provided by the pod spec.
  11517. Value must be non-negative integer. The value zero indicates stop immediately via
  11518. the kill signal (no opportunity to shut down).
  11519. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  11520. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  11521. format: int64
  11522. type: integer
  11523. timeoutSeconds:
  11524. description: |-
  11525. Number of seconds after which the probe times out.
  11526. Defaults to 1 second. Minimum value is 1.
  11527. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  11528. format: int32
  11529. type: integer
  11530. type: object
  11531. stdin:
  11532. description: |-
  11533. Whether this container should allocate a buffer for stdin in the container runtime. If this
  11534. is not set, reads from stdin in the container will always result in EOF.
  11535. Default is false.
  11536. type: boolean
  11537. stdinOnce:
  11538. description: |-
  11539. Whether the container runtime should close the stdin channel after it has been opened by
  11540. a single attach. When stdin is true the stdin stream will remain open across multiple attach
  11541. sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
  11542. first client attaches to stdin, and then remains open and accepts data until the client disconnects,
  11543. at which time stdin is closed and remains closed until the container is restarted. If this
  11544. flag is false, a container processes that reads from stdin will never receive an EOF.
  11545. Default is false
  11546. type: boolean
  11547. terminationMessagePath:
  11548. description: |-
  11549. Optional: Path at which the file to which the container's termination message
  11550. will be written is mounted into the container's filesystem.
  11551. Message written is intended to be brief final status, such as an assertion failure message.
  11552. Will be truncated by the node if greater than 4096 bytes. The total message length across
  11553. all containers will be limited to 12kb.
  11554. Defaults to /dev/termination-log.
  11555. Cannot be updated.
  11556. type: string
  11557. terminationMessagePolicy:
  11558. description: |-
  11559. Indicate how the termination message should be populated. File will use the contents of
  11560. terminationMessagePath to populate the container status message on both success and failure.
  11561. FallbackToLogsOnError will use the last chunk of container log output if the termination
  11562. message file is empty and the container exited with an error.
  11563. The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
  11564. Defaults to File.
  11565. Cannot be updated.
  11566. type: string
  11567. tty:
  11568. description: |-
  11569. Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
  11570. Default is false.
  11571. type: boolean
  11572. volumeDevices:
  11573. description: volumeDevices is the list of block devices
  11574. to be used by the container.
  11575. items:
  11576. description: volumeDevice describes a mapping of a
  11577. raw block device within a container.
  11578. properties:
  11579. devicePath:
  11580. description: devicePath is the path inside of
  11581. the container that the device will be mapped
  11582. to.
  11583. type: string
  11584. name:
  11585. description: name must match the name of a persistentVolumeClaim
  11586. in the pod
  11587. type: string
  11588. required:
  11589. - devicePath
  11590. - name
  11591. type: object
  11592. type: array
  11593. x-kubernetes-list-map-keys:
  11594. - devicePath
  11595. x-kubernetes-list-type: map
  11596. volumeMounts:
  11597. description: |-
  11598. Pod volumes to mount into the container's filesystem.
  11599. Cannot be updated.
  11600. items:
  11601. description: VolumeMount describes a mounting of a
  11602. Volume within a container.
  11603. properties:
  11604. mountPath:
  11605. description: |-
  11606. Path within the container at which the volume should be mounted. Must
  11607. not contain ':'.
  11608. type: string
  11609. mountPropagation:
  11610. description: |-
  11611. mountPropagation determines how mounts are propagated from the host
  11612. to container and the other way around.
  11613. When not set, MountPropagationNone is used.
  11614. This field is beta in 1.10.
  11615. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  11616. (which defaults to None).
  11617. type: string
  11618. name:
  11619. description: This must match the Name of a Volume.
  11620. type: string
  11621. readOnly:
  11622. description: |-
  11623. Mounted read-only if true, read-write otherwise (false or unspecified).
  11624. Defaults to false.
  11625. type: boolean
  11626. recursiveReadOnly:
  11627. description: |-
  11628. RecursiveReadOnly specifies whether read-only mounts should be handled
  11629. recursively.
  11630. If ReadOnly is false, this field has no meaning and must be unspecified.
  11631. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  11632. recursively read-only. If this field is set to IfPossible, the mount is made
  11633. recursively read-only, if it is supported by the container runtime. If this
  11634. field is set to Enabled, the mount is made recursively read-only if it is
  11635. supported by the container runtime, otherwise the pod will not be started and
  11636. an error will be generated to indicate the reason.
  11637. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  11638. None (or be unspecified, which defaults to None).
  11639. If this field is not specified, it is treated as an equivalent of Disabled.
  11640. type: string
  11641. subPath:
  11642. description: |-
  11643. Path within the volume from which the container's volume should be mounted.
  11644. Defaults to "" (volume's root).
  11645. type: string
  11646. subPathExpr:
  11647. description: |-
  11648. Expanded path within the volume from which the container's volume should be mounted.
  11649. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  11650. Defaults to "" (volume's root).
  11651. SubPathExpr and SubPath are mutually exclusive.
  11652. type: string
  11653. required:
  11654. - mountPath
  11655. - name
  11656. type: object
  11657. type: array
  11658. x-kubernetes-list-map-keys:
  11659. - mountPath
  11660. x-kubernetes-list-type: map
  11661. workingDir:
  11662. description: |-
  11663. Container's working directory.
  11664. If not specified, the container runtime's default will be used, which
  11665. might be configured in the container image.
  11666. Cannot be updated.
  11667. type: string
  11668. required:
  11669. - name
  11670. type: object
  11671. type: array
  11672. x-kubernetes-list-map-keys:
  11673. - name
  11674. x-kubernetes-list-type: map
  11675. dnsConfig:
  11676. description: |-
  11677. Specifies the DNS parameters of a pod.
  11678. Parameters specified here will be merged to the generated DNS
  11679. configuration based on DNSPolicy.
  11680. properties:
  11681. nameservers:
  11682. description: |-
  11683. A list of DNS name server IP addresses.
  11684. This will be appended to the base nameservers generated from DNSPolicy.
  11685. Duplicated nameservers will be removed.
  11686. items:
  11687. type: string
  11688. type: array
  11689. x-kubernetes-list-type: atomic
  11690. options:
  11691. description: |-
  11692. A list of DNS resolver options.
  11693. This will be merged with the base options generated from DNSPolicy.
  11694. Duplicated entries will be removed. Resolution options given in Options
  11695. will override those that appear in the base DNSPolicy.
  11696. items:
  11697. description: PodDNSConfigOption defines DNS resolver
  11698. options of a pod.
  11699. properties:
  11700. name:
  11701. description: |-
  11702. Name is this DNS resolver option's name.
  11703. Required.
  11704. type: string
  11705. value:
  11706. description: Value is this DNS resolver option's
  11707. value.
  11708. type: string
  11709. type: object
  11710. type: array
  11711. x-kubernetes-list-type: atomic
  11712. searches:
  11713. description: |-
  11714. A list of DNS search domains for host-name lookup.
  11715. This will be appended to the base search paths generated from DNSPolicy.
  11716. Duplicated search paths will be removed.
  11717. items:
  11718. type: string
  11719. type: array
  11720. x-kubernetes-list-type: atomic
  11721. type: object
  11722. dnsPolicy:
  11723. description: |-
  11724. Set DNS policy for the pod.
  11725. Defaults to "ClusterFirst".
  11726. Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
  11727. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
  11728. To have DNS options set along with hostNetwork, you have to specify DNS policy
  11729. explicitly to 'ClusterFirstWithHostNet'.
  11730. type: string
  11731. enableServiceLinks:
  11732. description: |-
  11733. EnableServiceLinks indicates whether information about services should be injected into pod's
  11734. environment variables, matching the syntax of Docker links.
  11735. Optional: Defaults to true.
  11736. type: boolean
  11737. ephemeralContainers:
  11738. description: |-
  11739. List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing
  11740. pod to perform user-initiated actions such as debugging. This list cannot be specified when
  11741. creating a pod, and it cannot be modified by updating the pod spec. In order to add an
  11742. ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.
  11743. items:
  11744. description: |-
  11745. An EphemeralContainer is a temporary container that you may add to an existing Pod for
  11746. user-initiated activities such as debugging. Ephemeral containers have no resource or
  11747. scheduling guarantees, and they will not be restarted when they exit or when a Pod is
  11748. removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the
  11749. Pod to exceed its resource allocation.
  11750. To add an ephemeral container, use the ephemeralcontainers subresource of an existing
  11751. Pod. Ephemeral containers may not be removed or restarted.
  11752. properties:
  11753. args:
  11754. description: |-
  11755. Arguments to the entrypoint.
  11756. The image's CMD is used if this is not provided.
  11757. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  11758. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  11759. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  11760. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  11761. of whether the variable exists or not. Cannot be updated.
  11762. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  11763. items:
  11764. type: string
  11765. type: array
  11766. x-kubernetes-list-type: atomic
  11767. command:
  11768. description: |-
  11769. Entrypoint array. Not executed within a shell.
  11770. The image's ENTRYPOINT is used if this is not provided.
  11771. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  11772. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  11773. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  11774. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  11775. of whether the variable exists or not. Cannot be updated.
  11776. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  11777. items:
  11778. type: string
  11779. type: array
  11780. x-kubernetes-list-type: atomic
  11781. env:
  11782. description: |-
  11783. List of environment variables to set in the container.
  11784. Cannot be updated.
  11785. items:
  11786. description: EnvVar represents an environment variable
  11787. present in a Container.
  11788. properties:
  11789. name:
  11790. description: |-
  11791. Name of the environment variable.
  11792. May consist of any printable ASCII characters except '='.
  11793. type: string
  11794. value:
  11795. description: |-
  11796. Variable references $(VAR_NAME) are expanded
  11797. using the previously defined environment variables in the container and
  11798. any service environment variables. If a variable cannot be resolved,
  11799. the reference in the input string will be unchanged. Double $$ are reduced
  11800. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  11801. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  11802. Escaped references will never be expanded, regardless of whether the variable
  11803. exists or not.
  11804. Defaults to "".
  11805. type: string
  11806. valueFrom:
  11807. description: Source for the environment variable's
  11808. value. Cannot be used if value is not empty.
  11809. properties:
  11810. configMapKeyRef:
  11811. description: Selects a key of a ConfigMap.
  11812. properties:
  11813. key:
  11814. description: The key to select.
  11815. type: string
  11816. name:
  11817. default: ""
  11818. description: |-
  11819. Name of the referent.
  11820. This field is effectively required, but due to backwards compatibility is
  11821. allowed to be empty. Instances of this type with an empty value here are
  11822. almost certainly wrong.
  11823. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  11824. type: string
  11825. optional:
  11826. description: Specify whether the ConfigMap
  11827. or its key must be defined
  11828. type: boolean
  11829. required:
  11830. - key
  11831. type: object
  11832. x-kubernetes-map-type: atomic
  11833. fieldRef:
  11834. description: |-
  11835. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  11836. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  11837. properties:
  11838. apiVersion:
  11839. description: Version of the schema the
  11840. FieldPath is written in terms of, defaults
  11841. to "v1".
  11842. type: string
  11843. fieldPath:
  11844. description: Path of the field to select
  11845. in the specified API version.
  11846. type: string
  11847. required:
  11848. - fieldPath
  11849. type: object
  11850. x-kubernetes-map-type: atomic
  11851. fileKeyRef:
  11852. description: |-
  11853. FileKeyRef selects a key of the env file.
  11854. Requires the EnvFiles feature gate to be enabled.
  11855. properties:
  11856. key:
  11857. description: |-
  11858. The key within the env file. An invalid key will prevent the pod from starting.
  11859. The keys defined within a source may consist of any printable ASCII characters except '='.
  11860. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  11861. type: string
  11862. optional:
  11863. default: false
  11864. description: |-
  11865. Specify whether the file or its key must be defined. If the file or key
  11866. does not exist, then the env var is not published.
  11867. If optional is set to true and the specified key does not exist,
  11868. the environment variable will not be set in the Pod's containers.
  11869. If optional is set to false and the specified key does not exist,
  11870. an error will be returned during Pod creation.
  11871. type: boolean
  11872. path:
  11873. description: |-
  11874. The path within the volume from which to select the file.
  11875. Must be relative and may not contain the '..' path or start with '..'.
  11876. type: string
  11877. volumeName:
  11878. description: The name of the volume mount
  11879. containing the env file.
  11880. type: string
  11881. required:
  11882. - key
  11883. - path
  11884. - volumeName
  11885. type: object
  11886. x-kubernetes-map-type: atomic
  11887. resourceFieldRef:
  11888. description: |-
  11889. Selects a resource of the container: only resources limits and requests
  11890. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  11891. properties:
  11892. containerName:
  11893. description: 'Container name: required
  11894. for volumes, optional for env vars'
  11895. type: string
  11896. divisor:
  11897. anyOf:
  11898. - type: integer
  11899. - type: string
  11900. description: Specifies the output format
  11901. of the exposed resources, defaults to
  11902. "1"
  11903. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  11904. x-kubernetes-int-or-string: true
  11905. resource:
  11906. description: 'Required: resource to select'
  11907. type: string
  11908. required:
  11909. - resource
  11910. type: object
  11911. x-kubernetes-map-type: atomic
  11912. secretKeyRef:
  11913. description: Selects a key of a secret in
  11914. the pod's namespace
  11915. properties:
  11916. key:
  11917. description: The key of the secret to
  11918. select from. Must be a valid secret
  11919. key.
  11920. type: string
  11921. name:
  11922. default: ""
  11923. description: |-
  11924. Name of the referent.
  11925. This field is effectively required, but due to backwards compatibility is
  11926. allowed to be empty. Instances of this type with an empty value here are
  11927. almost certainly wrong.
  11928. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  11929. type: string
  11930. optional:
  11931. description: Specify whether the Secret
  11932. or its key must be defined
  11933. type: boolean
  11934. required:
  11935. - key
  11936. type: object
  11937. x-kubernetes-map-type: atomic
  11938. type: object
  11939. required:
  11940. - name
  11941. type: object
  11942. type: array
  11943. x-kubernetes-list-map-keys:
  11944. - name
  11945. x-kubernetes-list-type: map
  11946. envFrom:
  11947. description: |-
  11948. List of sources to populate environment variables in the container.
  11949. The keys defined within a source may consist of any printable ASCII characters except '='.
  11950. When a key exists in multiple
  11951. sources, the value associated with the last source will take precedence.
  11952. Values defined by an Env with a duplicate key will take precedence.
  11953. Cannot be updated.
  11954. items:
  11955. description: EnvFromSource represents the source of
  11956. a set of ConfigMaps or Secrets
  11957. properties:
  11958. configMapRef:
  11959. description: The ConfigMap to select from
  11960. properties:
  11961. name:
  11962. default: ""
  11963. description: |-
  11964. Name of the referent.
  11965. This field is effectively required, but due to backwards compatibility is
  11966. allowed to be empty. Instances of this type with an empty value here are
  11967. almost certainly wrong.
  11968. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  11969. type: string
  11970. optional:
  11971. description: Specify whether the ConfigMap
  11972. must be defined
  11973. type: boolean
  11974. type: object
  11975. x-kubernetes-map-type: atomic
  11976. prefix:
  11977. description: |-
  11978. Optional text to prepend to the name of each environment variable.
  11979. May consist of any printable ASCII characters except '='.
  11980. type: string
  11981. secretRef:
  11982. description: The Secret to select from
  11983. properties:
  11984. name:
  11985. default: ""
  11986. description: |-
  11987. Name of the referent.
  11988. This field is effectively required, but due to backwards compatibility is
  11989. allowed to be empty. Instances of this type with an empty value here are
  11990. almost certainly wrong.
  11991. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  11992. type: string
  11993. optional:
  11994. description: Specify whether the Secret must
  11995. be defined
  11996. type: boolean
  11997. type: object
  11998. x-kubernetes-map-type: atomic
  11999. type: object
  12000. type: array
  12001. x-kubernetes-list-type: atomic
  12002. image:
  12003. description: |-
  12004. Container image name.
  12005. More info: https://kubernetes.io/docs/concepts/containers/images
  12006. type: string
  12007. imagePullPolicy:
  12008. description: |-
  12009. Image pull policy.
  12010. One of Always, Never, IfNotPresent.
  12011. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  12012. Cannot be updated.
  12013. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  12014. type: string
  12015. lifecycle:
  12016. description: Lifecycle is not allowed for ephemeral
  12017. containers.
  12018. properties:
  12019. postStart:
  12020. description: |-
  12021. PostStart is called immediately after a container is created. If the handler fails,
  12022. the container is terminated and restarted according to its restart policy.
  12023. Other management of the container blocks until the hook completes.
  12024. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  12025. properties:
  12026. exec:
  12027. description: Exec specifies a command to execute
  12028. in the container.
  12029. properties:
  12030. command:
  12031. description: |-
  12032. Command is the command line to execute inside the container, the working directory for the
  12033. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12034. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12035. a shell, you need to explicitly call out to that shell.
  12036. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12037. items:
  12038. type: string
  12039. type: array
  12040. x-kubernetes-list-type: atomic
  12041. type: object
  12042. httpGet:
  12043. description: HTTPGet specifies an HTTP GET request
  12044. to perform.
  12045. properties:
  12046. host:
  12047. description: |-
  12048. Host name to connect to, defaults to the pod IP. You probably want to set
  12049. "Host" in httpHeaders instead.
  12050. type: string
  12051. httpHeaders:
  12052. description: Custom headers to set in the
  12053. request. HTTP allows repeated headers.
  12054. items:
  12055. description: HTTPHeader describes a custom
  12056. header to be used in HTTP probes
  12057. properties:
  12058. name:
  12059. description: |-
  12060. The header field name.
  12061. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12062. type: string
  12063. value:
  12064. description: The header field value
  12065. type: string
  12066. required:
  12067. - name
  12068. - value
  12069. type: object
  12070. type: array
  12071. x-kubernetes-list-type: atomic
  12072. path:
  12073. description: Path to access on the HTTP
  12074. server.
  12075. type: string
  12076. port:
  12077. anyOf:
  12078. - type: integer
  12079. - type: string
  12080. description: |-
  12081. Name or number of the port to access on the container.
  12082. Number must be in the range 1 to 65535.
  12083. Name must be an IANA_SVC_NAME.
  12084. x-kubernetes-int-or-string: true
  12085. scheme:
  12086. description: |-
  12087. Scheme to use for connecting to the host.
  12088. Defaults to HTTP.
  12089. type: string
  12090. required:
  12091. - port
  12092. type: object
  12093. sleep:
  12094. description: Sleep represents a duration that
  12095. the container should sleep.
  12096. properties:
  12097. seconds:
  12098. description: Seconds is the number of seconds
  12099. to sleep.
  12100. format: int64
  12101. type: integer
  12102. required:
  12103. - seconds
  12104. type: object
  12105. tcpSocket:
  12106. description: |-
  12107. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  12108. for backward compatibility. There is no validation of this field and
  12109. lifecycle hooks will fail at runtime when it is specified.
  12110. properties:
  12111. host:
  12112. description: 'Optional: Host name to connect
  12113. to, defaults to the pod IP.'
  12114. type: string
  12115. port:
  12116. anyOf:
  12117. - type: integer
  12118. - type: string
  12119. description: |-
  12120. Number or name of the port to access on the container.
  12121. Number must be in the range 1 to 65535.
  12122. Name must be an IANA_SVC_NAME.
  12123. x-kubernetes-int-or-string: true
  12124. required:
  12125. - port
  12126. type: object
  12127. type: object
  12128. preStop:
  12129. description: |-
  12130. PreStop is called immediately before a container is terminated due to an
  12131. API request or management event such as liveness/startup probe failure,
  12132. preemption, resource contention, etc. The handler is not called if the
  12133. container crashes or exits. The Pod's termination grace period countdown begins before the
  12134. PreStop hook is executed. Regardless of the outcome of the handler, the
  12135. container will eventually terminate within the Pod's termination grace
  12136. period (unless delayed by finalizers). Other management of the container blocks until the hook completes
  12137. or until the termination grace period is reached.
  12138. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  12139. properties:
  12140. exec:
  12141. description: Exec specifies a command to execute
  12142. in the container.
  12143. properties:
  12144. command:
  12145. description: |-
  12146. Command is the command line to execute inside the container, the working directory for the
  12147. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12148. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12149. a shell, you need to explicitly call out to that shell.
  12150. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12151. items:
  12152. type: string
  12153. type: array
  12154. x-kubernetes-list-type: atomic
  12155. type: object
  12156. httpGet:
  12157. description: HTTPGet specifies an HTTP GET request
  12158. to perform.
  12159. properties:
  12160. host:
  12161. description: |-
  12162. Host name to connect to, defaults to the pod IP. You probably want to set
  12163. "Host" in httpHeaders instead.
  12164. type: string
  12165. httpHeaders:
  12166. description: Custom headers to set in the
  12167. request. HTTP allows repeated headers.
  12168. items:
  12169. description: HTTPHeader describes a custom
  12170. header to be used in HTTP probes
  12171. properties:
  12172. name:
  12173. description: |-
  12174. The header field name.
  12175. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12176. type: string
  12177. value:
  12178. description: The header field value
  12179. type: string
  12180. required:
  12181. - name
  12182. - value
  12183. type: object
  12184. type: array
  12185. x-kubernetes-list-type: atomic
  12186. path:
  12187. description: Path to access on the HTTP
  12188. server.
  12189. type: string
  12190. port:
  12191. anyOf:
  12192. - type: integer
  12193. - type: string
  12194. description: |-
  12195. Name or number of the port to access on the container.
  12196. Number must be in the range 1 to 65535.
  12197. Name must be an IANA_SVC_NAME.
  12198. x-kubernetes-int-or-string: true
  12199. scheme:
  12200. description: |-
  12201. Scheme to use for connecting to the host.
  12202. Defaults to HTTP.
  12203. type: string
  12204. required:
  12205. - port
  12206. type: object
  12207. sleep:
  12208. description: Sleep represents a duration that
  12209. the container should sleep.
  12210. properties:
  12211. seconds:
  12212. description: Seconds is the number of seconds
  12213. to sleep.
  12214. format: int64
  12215. type: integer
  12216. required:
  12217. - seconds
  12218. type: object
  12219. tcpSocket:
  12220. description: |-
  12221. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  12222. for backward compatibility. There is no validation of this field and
  12223. lifecycle hooks will fail at runtime when it is specified.
  12224. properties:
  12225. host:
  12226. description: 'Optional: Host name to connect
  12227. to, defaults to the pod IP.'
  12228. type: string
  12229. port:
  12230. anyOf:
  12231. - type: integer
  12232. - type: string
  12233. description: |-
  12234. Number or name of the port to access on the container.
  12235. Number must be in the range 1 to 65535.
  12236. Name must be an IANA_SVC_NAME.
  12237. x-kubernetes-int-or-string: true
  12238. required:
  12239. - port
  12240. type: object
  12241. type: object
  12242. stopSignal:
  12243. description: |-
  12244. StopSignal defines which signal will be sent to a container when it is being stopped.
  12245. If not specified, the default is defined by the container runtime in use.
  12246. StopSignal can only be set for Pods with a non-empty .spec.os.name
  12247. type: string
  12248. type: object
  12249. livenessProbe:
  12250. description: Probes are not allowed for ephemeral containers.
  12251. properties:
  12252. exec:
  12253. description: Exec specifies a command to execute
  12254. in the container.
  12255. properties:
  12256. command:
  12257. description: |-
  12258. Command is the command line to execute inside the container, the working directory for the
  12259. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12260. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12261. a shell, you need to explicitly call out to that shell.
  12262. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12263. items:
  12264. type: string
  12265. type: array
  12266. x-kubernetes-list-type: atomic
  12267. type: object
  12268. failureThreshold:
  12269. description: |-
  12270. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  12271. Defaults to 3. Minimum value is 1.
  12272. format: int32
  12273. type: integer
  12274. grpc:
  12275. description: GRPC specifies a GRPC HealthCheckRequest.
  12276. properties:
  12277. port:
  12278. description: Port number of the gRPC service.
  12279. Number must be in the range 1 to 65535.
  12280. format: int32
  12281. type: integer
  12282. service:
  12283. default: ""
  12284. description: |-
  12285. Service is the name of the service to place in the gRPC HealthCheckRequest
  12286. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  12287. If this is not specified, the default behavior is defined by gRPC.
  12288. type: string
  12289. required:
  12290. - port
  12291. type: object
  12292. httpGet:
  12293. description: HTTPGet specifies an HTTP GET request
  12294. to perform.
  12295. properties:
  12296. host:
  12297. description: |-
  12298. Host name to connect to, defaults to the pod IP. You probably want to set
  12299. "Host" in httpHeaders instead.
  12300. type: string
  12301. httpHeaders:
  12302. description: Custom headers to set in the request.
  12303. HTTP allows repeated headers.
  12304. items:
  12305. description: HTTPHeader describes a custom
  12306. header to be used in HTTP probes
  12307. properties:
  12308. name:
  12309. description: |-
  12310. The header field name.
  12311. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12312. type: string
  12313. value:
  12314. description: The header field value
  12315. type: string
  12316. required:
  12317. - name
  12318. - value
  12319. type: object
  12320. type: array
  12321. x-kubernetes-list-type: atomic
  12322. path:
  12323. description: Path to access on the HTTP server.
  12324. type: string
  12325. port:
  12326. anyOf:
  12327. - type: integer
  12328. - type: string
  12329. description: |-
  12330. Name or number of the port to access on the container.
  12331. Number must be in the range 1 to 65535.
  12332. Name must be an IANA_SVC_NAME.
  12333. x-kubernetes-int-or-string: true
  12334. scheme:
  12335. description: |-
  12336. Scheme to use for connecting to the host.
  12337. Defaults to HTTP.
  12338. type: string
  12339. required:
  12340. - port
  12341. type: object
  12342. initialDelaySeconds:
  12343. description: |-
  12344. Number of seconds after the container has started before liveness probes are initiated.
  12345. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12346. format: int32
  12347. type: integer
  12348. periodSeconds:
  12349. description: |-
  12350. How often (in seconds) to perform the probe.
  12351. Default to 10 seconds. Minimum value is 1.
  12352. format: int32
  12353. type: integer
  12354. successThreshold:
  12355. description: |-
  12356. Minimum consecutive successes for the probe to be considered successful after having failed.
  12357. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  12358. format: int32
  12359. type: integer
  12360. tcpSocket:
  12361. description: TCPSocket specifies a connection to
  12362. a TCP port.
  12363. properties:
  12364. host:
  12365. description: 'Optional: Host name to connect
  12366. to, defaults to the pod IP.'
  12367. type: string
  12368. port:
  12369. anyOf:
  12370. - type: integer
  12371. - type: string
  12372. description: |-
  12373. Number or name of the port to access on the container.
  12374. Number must be in the range 1 to 65535.
  12375. Name must be an IANA_SVC_NAME.
  12376. x-kubernetes-int-or-string: true
  12377. required:
  12378. - port
  12379. type: object
  12380. terminationGracePeriodSeconds:
  12381. description: |-
  12382. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  12383. The grace period is the duration in seconds after the processes running in the pod are sent
  12384. a termination signal and the time when the processes are forcibly halted with a kill signal.
  12385. Set this value longer than the expected cleanup time for your process.
  12386. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  12387. value overrides the value provided by the pod spec.
  12388. Value must be non-negative integer. The value zero indicates stop immediately via
  12389. the kill signal (no opportunity to shut down).
  12390. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  12391. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  12392. format: int64
  12393. type: integer
  12394. timeoutSeconds:
  12395. description: |-
  12396. Number of seconds after which the probe times out.
  12397. Defaults to 1 second. Minimum value is 1.
  12398. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12399. format: int32
  12400. type: integer
  12401. type: object
  12402. name:
  12403. description: |-
  12404. Name of the ephemeral container specified as a DNS_LABEL.
  12405. This name must be unique among all containers, init containers and ephemeral containers.
  12406. type: string
  12407. ports:
  12408. description: Ports are not allowed for ephemeral containers.
  12409. items:
  12410. description: ContainerPort represents a network port
  12411. in a single container.
  12412. properties:
  12413. containerPort:
  12414. description: |-
  12415. Number of port to expose on the pod's IP address.
  12416. This must be a valid port number, 0 < x < 65536.
  12417. format: int32
  12418. type: integer
  12419. hostIP:
  12420. description: What host IP to bind the external
  12421. port to.
  12422. type: string
  12423. hostPort:
  12424. description: |-
  12425. Number of port to expose on the host.
  12426. If specified, this must be a valid port number, 0 < x < 65536.
  12427. If HostNetwork is specified, this must match ContainerPort.
  12428. Most containers do not need this.
  12429. format: int32
  12430. type: integer
  12431. name:
  12432. description: |-
  12433. If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
  12434. named port in a pod must have a unique name. Name for the port that can be
  12435. referred to by services.
  12436. type: string
  12437. protocol:
  12438. default: TCP
  12439. description: |-
  12440. Protocol for port. Must be UDP, TCP, or SCTP.
  12441. Defaults to "TCP".
  12442. type: string
  12443. required:
  12444. - containerPort
  12445. type: object
  12446. type: array
  12447. x-kubernetes-list-map-keys:
  12448. - containerPort
  12449. - protocol
  12450. x-kubernetes-list-type: map
  12451. readinessProbe:
  12452. description: Probes are not allowed for ephemeral containers.
  12453. properties:
  12454. exec:
  12455. description: Exec specifies a command to execute
  12456. in the container.
  12457. properties:
  12458. command:
  12459. description: |-
  12460. Command is the command line to execute inside the container, the working directory for the
  12461. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12462. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12463. a shell, you need to explicitly call out to that shell.
  12464. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12465. items:
  12466. type: string
  12467. type: array
  12468. x-kubernetes-list-type: atomic
  12469. type: object
  12470. failureThreshold:
  12471. description: |-
  12472. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  12473. Defaults to 3. Minimum value is 1.
  12474. format: int32
  12475. type: integer
  12476. grpc:
  12477. description: GRPC specifies a GRPC HealthCheckRequest.
  12478. properties:
  12479. port:
  12480. description: Port number of the gRPC service.
  12481. Number must be in the range 1 to 65535.
  12482. format: int32
  12483. type: integer
  12484. service:
  12485. default: ""
  12486. description: |-
  12487. Service is the name of the service to place in the gRPC HealthCheckRequest
  12488. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  12489. If this is not specified, the default behavior is defined by gRPC.
  12490. type: string
  12491. required:
  12492. - port
  12493. type: object
  12494. httpGet:
  12495. description: HTTPGet specifies an HTTP GET request
  12496. to perform.
  12497. properties:
  12498. host:
  12499. description: |-
  12500. Host name to connect to, defaults to the pod IP. You probably want to set
  12501. "Host" in httpHeaders instead.
  12502. type: string
  12503. httpHeaders:
  12504. description: Custom headers to set in the request.
  12505. HTTP allows repeated headers.
  12506. items:
  12507. description: HTTPHeader describes a custom
  12508. header to be used in HTTP probes
  12509. properties:
  12510. name:
  12511. description: |-
  12512. The header field name.
  12513. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12514. type: string
  12515. value:
  12516. description: The header field value
  12517. type: string
  12518. required:
  12519. - name
  12520. - value
  12521. type: object
  12522. type: array
  12523. x-kubernetes-list-type: atomic
  12524. path:
  12525. description: Path to access on the HTTP server.
  12526. type: string
  12527. port:
  12528. anyOf:
  12529. - type: integer
  12530. - type: string
  12531. description: |-
  12532. Name or number of the port to access on the container.
  12533. Number must be in the range 1 to 65535.
  12534. Name must be an IANA_SVC_NAME.
  12535. x-kubernetes-int-or-string: true
  12536. scheme:
  12537. description: |-
  12538. Scheme to use for connecting to the host.
  12539. Defaults to HTTP.
  12540. type: string
  12541. required:
  12542. - port
  12543. type: object
  12544. initialDelaySeconds:
  12545. description: |-
  12546. Number of seconds after the container has started before liveness probes are initiated.
  12547. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12548. format: int32
  12549. type: integer
  12550. periodSeconds:
  12551. description: |-
  12552. How often (in seconds) to perform the probe.
  12553. Default to 10 seconds. Minimum value is 1.
  12554. format: int32
  12555. type: integer
  12556. successThreshold:
  12557. description: |-
  12558. Minimum consecutive successes for the probe to be considered successful after having failed.
  12559. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  12560. format: int32
  12561. type: integer
  12562. tcpSocket:
  12563. description: TCPSocket specifies a connection to
  12564. a TCP port.
  12565. properties:
  12566. host:
  12567. description: 'Optional: Host name to connect
  12568. to, defaults to the pod IP.'
  12569. type: string
  12570. port:
  12571. anyOf:
  12572. - type: integer
  12573. - type: string
  12574. description: |-
  12575. Number or name of the port to access on the container.
  12576. Number must be in the range 1 to 65535.
  12577. Name must be an IANA_SVC_NAME.
  12578. x-kubernetes-int-or-string: true
  12579. required:
  12580. - port
  12581. type: object
  12582. terminationGracePeriodSeconds:
  12583. description: |-
  12584. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  12585. The grace period is the duration in seconds after the processes running in the pod are sent
  12586. a termination signal and the time when the processes are forcibly halted with a kill signal.
  12587. Set this value longer than the expected cleanup time for your process.
  12588. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  12589. value overrides the value provided by the pod spec.
  12590. Value must be non-negative integer. The value zero indicates stop immediately via
  12591. the kill signal (no opportunity to shut down).
  12592. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  12593. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  12594. format: int64
  12595. type: integer
  12596. timeoutSeconds:
  12597. description: |-
  12598. Number of seconds after which the probe times out.
  12599. Defaults to 1 second. Minimum value is 1.
  12600. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  12601. format: int32
  12602. type: integer
  12603. type: object
  12604. resizePolicy:
  12605. description: Resources resize policy for the container.
  12606. items:
  12607. description: ContainerResizePolicy represents resource
  12608. resize policy for the container.
  12609. properties:
  12610. resourceName:
  12611. description: |-
  12612. Name of the resource to which this resource resize policy applies.
  12613. Supported values: cpu, memory.
  12614. type: string
  12615. restartPolicy:
  12616. description: |-
  12617. Restart policy to apply when specified resource is resized.
  12618. If not specified, it defaults to NotRequired.
  12619. type: string
  12620. required:
  12621. - resourceName
  12622. - restartPolicy
  12623. type: object
  12624. type: array
  12625. x-kubernetes-list-type: atomic
  12626. resources:
  12627. description: |-
  12628. Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources
  12629. already allocated to the pod.
  12630. properties:
  12631. claims:
  12632. description: |-
  12633. Claims lists the names of resources, defined in spec.resourceClaims,
  12634. that are used by this container.
  12635. This field depends on the
  12636. DynamicResourceAllocation feature gate.
  12637. This field is immutable. It can only be set for containers.
  12638. items:
  12639. description: ResourceClaim references one entry
  12640. in PodSpec.ResourceClaims.
  12641. properties:
  12642. name:
  12643. description: |-
  12644. Name must match the name of one entry in pod.spec.resourceClaims of
  12645. the Pod where this field is used. It makes that resource available
  12646. inside a container.
  12647. type: string
  12648. request:
  12649. description: |-
  12650. Request is the name chosen for a request in the referenced claim.
  12651. If empty, everything from the claim is made available, otherwise
  12652. only the result of this request.
  12653. type: string
  12654. required:
  12655. - name
  12656. type: object
  12657. type: array
  12658. x-kubernetes-list-map-keys:
  12659. - name
  12660. x-kubernetes-list-type: map
  12661. limits:
  12662. additionalProperties:
  12663. anyOf:
  12664. - type: integer
  12665. - type: string
  12666. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12667. x-kubernetes-int-or-string: true
  12668. description: |-
  12669. Limits describes the maximum amount of compute resources allowed.
  12670. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12671. type: object
  12672. requests:
  12673. additionalProperties:
  12674. anyOf:
  12675. - type: integer
  12676. - type: string
  12677. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  12678. x-kubernetes-int-or-string: true
  12679. description: |-
  12680. Requests describes the minimum amount of compute resources required.
  12681. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  12682. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  12683. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  12684. type: object
  12685. type: object
  12686. restartPolicy:
  12687. description: |-
  12688. Restart policy for the container to manage the restart behavior of each
  12689. container within a pod.
  12690. You cannot set this field on ephemeral containers.
  12691. type: string
  12692. restartPolicyRules:
  12693. description: |-
  12694. Represents a list of rules to be checked to determine if the
  12695. container should be restarted on exit. You cannot set this field on
  12696. ephemeral containers.
  12697. items:
  12698. description: ContainerRestartRule describes how a
  12699. container exit is handled.
  12700. properties:
  12701. action:
  12702. description: |-
  12703. Specifies the action taken on a container exit if the requirements
  12704. are satisfied. The only possible value is "Restart" to restart the
  12705. container.
  12706. type: string
  12707. exitCodes:
  12708. description: Represents the exit codes to check
  12709. on container exits.
  12710. properties:
  12711. operator:
  12712. description: |-
  12713. Represents the relationship between the container exit code(s) and the
  12714. specified values. Possible values are:
  12715. - In: the requirement is satisfied if the container exit code is in the
  12716. set of specified values.
  12717. - NotIn: the requirement is satisfied if the container exit code is
  12718. not in the set of specified values.
  12719. type: string
  12720. values:
  12721. description: |-
  12722. Specifies the set of values to check for container exit codes.
  12723. At most 255 elements are allowed.
  12724. items:
  12725. format: int32
  12726. type: integer
  12727. type: array
  12728. x-kubernetes-list-type: set
  12729. required:
  12730. - operator
  12731. type: object
  12732. required:
  12733. - action
  12734. type: object
  12735. type: array
  12736. x-kubernetes-list-type: atomic
  12737. securityContext:
  12738. description: |-
  12739. Optional: SecurityContext defines the security options the ephemeral container should be run with.
  12740. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
  12741. properties:
  12742. allowPrivilegeEscalation:
  12743. description: |-
  12744. AllowPrivilegeEscalation controls whether a process can gain more
  12745. privileges than its parent process. This bool directly controls if
  12746. the no_new_privs flag will be set on the container process.
  12747. AllowPrivilegeEscalation is true always when the container is:
  12748. 1) run as Privileged
  12749. 2) has CAP_SYS_ADMIN
  12750. Note that this field cannot be set when spec.os.name is windows.
  12751. type: boolean
  12752. appArmorProfile:
  12753. description: |-
  12754. appArmorProfile is the AppArmor options to use by this container. If set, this profile
  12755. overrides the pod's appArmorProfile.
  12756. Note that this field cannot be set when spec.os.name is windows.
  12757. properties:
  12758. localhostProfile:
  12759. description: |-
  12760. localhostProfile indicates a profile loaded on the node that should be used.
  12761. The profile must be preconfigured on the node to work.
  12762. Must match the loaded name of the profile.
  12763. Must be set if and only if type is "Localhost".
  12764. type: string
  12765. type:
  12766. description: |-
  12767. type indicates which kind of AppArmor profile will be applied.
  12768. Valid options are:
  12769. Localhost - a profile pre-loaded on the node.
  12770. RuntimeDefault - the container runtime's default profile.
  12771. Unconfined - no AppArmor enforcement.
  12772. type: string
  12773. required:
  12774. - type
  12775. type: object
  12776. capabilities:
  12777. description: |-
  12778. The capabilities to add/drop when running containers.
  12779. Defaults to the default set of capabilities granted by the container runtime.
  12780. Note that this field cannot be set when spec.os.name is windows.
  12781. properties:
  12782. add:
  12783. description: Added capabilities
  12784. items:
  12785. description: Capability represent POSIX capabilities
  12786. type
  12787. type: string
  12788. type: array
  12789. x-kubernetes-list-type: atomic
  12790. drop:
  12791. description: Removed capabilities
  12792. items:
  12793. description: Capability represent POSIX capabilities
  12794. type
  12795. type: string
  12796. type: array
  12797. x-kubernetes-list-type: atomic
  12798. type: object
  12799. privileged:
  12800. description: |-
  12801. Run container in privileged mode.
  12802. Processes in privileged containers are essentially equivalent to root on the host.
  12803. Defaults to false.
  12804. Note that this field cannot be set when spec.os.name is windows.
  12805. type: boolean
  12806. procMount:
  12807. description: |-
  12808. procMount denotes the type of proc mount to use for the containers.
  12809. The default value is Default which uses the container runtime defaults for
  12810. readonly paths and masked paths.
  12811. This requires the ProcMountType feature flag to be enabled.
  12812. Note that this field cannot be set when spec.os.name is windows.
  12813. type: string
  12814. readOnlyRootFilesystem:
  12815. description: |-
  12816. Whether this container has a read-only root filesystem.
  12817. Default is false.
  12818. Note that this field cannot be set when spec.os.name is windows.
  12819. type: boolean
  12820. runAsGroup:
  12821. description: |-
  12822. The GID to run the entrypoint of the container process.
  12823. Uses runtime default if unset.
  12824. May also be set in PodSecurityContext. If set in both SecurityContext and
  12825. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12826. Note that this field cannot be set when spec.os.name is windows.
  12827. format: int64
  12828. type: integer
  12829. runAsNonRoot:
  12830. description: |-
  12831. Indicates that the container must run as a non-root user.
  12832. If true, the Kubelet will validate the image at runtime to ensure that it
  12833. does not run as UID 0 (root) and fail to start the container if it does.
  12834. If unset or false, no such validation will be performed.
  12835. May also be set in PodSecurityContext. If set in both SecurityContext and
  12836. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12837. type: boolean
  12838. runAsUser:
  12839. description: |-
  12840. The UID to run the entrypoint of the container process.
  12841. Defaults to user specified in image metadata if unspecified.
  12842. May also be set in PodSecurityContext. If set in both SecurityContext and
  12843. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12844. Note that this field cannot be set when spec.os.name is windows.
  12845. format: int64
  12846. type: integer
  12847. seLinuxOptions:
  12848. description: |-
  12849. The SELinux context to be applied to the container.
  12850. If unspecified, the container runtime will allocate a random SELinux context for each
  12851. container. May also be set in PodSecurityContext. If set in both SecurityContext and
  12852. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12853. Note that this field cannot be set when spec.os.name is windows.
  12854. properties:
  12855. level:
  12856. description: Level is SELinux level label that
  12857. applies to the container.
  12858. type: string
  12859. role:
  12860. description: Role is a SELinux role label that
  12861. applies to the container.
  12862. type: string
  12863. type:
  12864. description: Type is a SELinux type label that
  12865. applies to the container.
  12866. type: string
  12867. user:
  12868. description: User is a SELinux user label that
  12869. applies to the container.
  12870. type: string
  12871. type: object
  12872. seccompProfile:
  12873. description: |-
  12874. The seccomp options to use by this container. If seccomp options are
  12875. provided at both the pod & container level, the container options
  12876. override the pod options.
  12877. Note that this field cannot be set when spec.os.name is windows.
  12878. properties:
  12879. localhostProfile:
  12880. description: |-
  12881. localhostProfile indicates a profile defined in a file on the node should be used.
  12882. The profile must be preconfigured on the node to work.
  12883. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  12884. Must be set if type is "Localhost". Must NOT be set for any other type.
  12885. type: string
  12886. type:
  12887. description: |-
  12888. type indicates which kind of seccomp profile will be applied.
  12889. Valid options are:
  12890. Localhost - a profile defined in a file on the node should be used.
  12891. RuntimeDefault - the container runtime default profile should be used.
  12892. Unconfined - no profile should be applied.
  12893. type: string
  12894. required:
  12895. - type
  12896. type: object
  12897. windowsOptions:
  12898. description: |-
  12899. The Windows specific settings applied to all containers.
  12900. If unspecified, the options from the PodSecurityContext will be used.
  12901. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  12902. Note that this field cannot be set when spec.os.name is linux.
  12903. properties:
  12904. gmsaCredentialSpec:
  12905. description: |-
  12906. GMSACredentialSpec is where the GMSA admission webhook
  12907. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  12908. GMSA credential spec named by the GMSACredentialSpecName field.
  12909. type: string
  12910. gmsaCredentialSpecName:
  12911. description: GMSACredentialSpecName is the name
  12912. of the GMSA credential spec to use.
  12913. type: string
  12914. hostProcess:
  12915. description: |-
  12916. HostProcess determines if a container should be run as a 'Host Process' container.
  12917. All of a Pod's containers must have the same effective HostProcess value
  12918. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  12919. In addition, if HostProcess is true then HostNetwork must also be set to true.
  12920. type: boolean
  12921. runAsUserName:
  12922. description: |-
  12923. The UserName in Windows to run the entrypoint of the container process.
  12924. Defaults to the user specified in image metadata if unspecified.
  12925. May also be set in PodSecurityContext. If set in both SecurityContext and
  12926. PodSecurityContext, the value specified in SecurityContext takes precedence.
  12927. type: string
  12928. type: object
  12929. type: object
  12930. startupProbe:
  12931. description: Probes are not allowed for ephemeral containers.
  12932. properties:
  12933. exec:
  12934. description: Exec specifies a command to execute
  12935. in the container.
  12936. properties:
  12937. command:
  12938. description: |-
  12939. Command is the command line to execute inside the container, the working directory for the
  12940. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  12941. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  12942. a shell, you need to explicitly call out to that shell.
  12943. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  12944. items:
  12945. type: string
  12946. type: array
  12947. x-kubernetes-list-type: atomic
  12948. type: object
  12949. failureThreshold:
  12950. description: |-
  12951. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  12952. Defaults to 3. Minimum value is 1.
  12953. format: int32
  12954. type: integer
  12955. grpc:
  12956. description: GRPC specifies a GRPC HealthCheckRequest.
  12957. properties:
  12958. port:
  12959. description: Port number of the gRPC service.
  12960. Number must be in the range 1 to 65535.
  12961. format: int32
  12962. type: integer
  12963. service:
  12964. default: ""
  12965. description: |-
  12966. Service is the name of the service to place in the gRPC HealthCheckRequest
  12967. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  12968. If this is not specified, the default behavior is defined by gRPC.
  12969. type: string
  12970. required:
  12971. - port
  12972. type: object
  12973. httpGet:
  12974. description: HTTPGet specifies an HTTP GET request
  12975. to perform.
  12976. properties:
  12977. host:
  12978. description: |-
  12979. Host name to connect to, defaults to the pod IP. You probably want to set
  12980. "Host" in httpHeaders instead.
  12981. type: string
  12982. httpHeaders:
  12983. description: Custom headers to set in the request.
  12984. HTTP allows repeated headers.
  12985. items:
  12986. description: HTTPHeader describes a custom
  12987. header to be used in HTTP probes
  12988. properties:
  12989. name:
  12990. description: |-
  12991. The header field name.
  12992. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  12993. type: string
  12994. value:
  12995. description: The header field value
  12996. type: string
  12997. required:
  12998. - name
  12999. - value
  13000. type: object
  13001. type: array
  13002. x-kubernetes-list-type: atomic
  13003. path:
  13004. description: Path to access on the HTTP server.
  13005. type: string
  13006. port:
  13007. anyOf:
  13008. - type: integer
  13009. - type: string
  13010. description: |-
  13011. Name or number of the port to access on the container.
  13012. Number must be in the range 1 to 65535.
  13013. Name must be an IANA_SVC_NAME.
  13014. x-kubernetes-int-or-string: true
  13015. scheme:
  13016. description: |-
  13017. Scheme to use for connecting to the host.
  13018. Defaults to HTTP.
  13019. type: string
  13020. required:
  13021. - port
  13022. type: object
  13023. initialDelaySeconds:
  13024. description: |-
  13025. Number of seconds after the container has started before liveness probes are initiated.
  13026. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  13027. format: int32
  13028. type: integer
  13029. periodSeconds:
  13030. description: |-
  13031. How often (in seconds) to perform the probe.
  13032. Default to 10 seconds. Minimum value is 1.
  13033. format: int32
  13034. type: integer
  13035. successThreshold:
  13036. description: |-
  13037. Minimum consecutive successes for the probe to be considered successful after having failed.
  13038. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  13039. format: int32
  13040. type: integer
  13041. tcpSocket:
  13042. description: TCPSocket specifies a connection to
  13043. a TCP port.
  13044. properties:
  13045. host:
  13046. description: 'Optional: Host name to connect
  13047. to, defaults to the pod IP.'
  13048. type: string
  13049. port:
  13050. anyOf:
  13051. - type: integer
  13052. - type: string
  13053. description: |-
  13054. Number or name of the port to access on the container.
  13055. Number must be in the range 1 to 65535.
  13056. Name must be an IANA_SVC_NAME.
  13057. x-kubernetes-int-or-string: true
  13058. required:
  13059. - port
  13060. type: object
  13061. terminationGracePeriodSeconds:
  13062. description: |-
  13063. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  13064. The grace period is the duration in seconds after the processes running in the pod are sent
  13065. a termination signal and the time when the processes are forcibly halted with a kill signal.
  13066. Set this value longer than the expected cleanup time for your process.
  13067. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  13068. value overrides the value provided by the pod spec.
  13069. Value must be non-negative integer. The value zero indicates stop immediately via
  13070. the kill signal (no opportunity to shut down).
  13071. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  13072. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  13073. format: int64
  13074. type: integer
  13075. timeoutSeconds:
  13076. description: |-
  13077. Number of seconds after which the probe times out.
  13078. Defaults to 1 second. Minimum value is 1.
  13079. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  13080. format: int32
  13081. type: integer
  13082. type: object
  13083. stdin:
  13084. description: |-
  13085. Whether this container should allocate a buffer for stdin in the container runtime. If this
  13086. is not set, reads from stdin in the container will always result in EOF.
  13087. Default is false.
  13088. type: boolean
  13089. stdinOnce:
  13090. description: |-
  13091. Whether the container runtime should close the stdin channel after it has been opened by
  13092. a single attach. When stdin is true the stdin stream will remain open across multiple attach
  13093. sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
  13094. first client attaches to stdin, and then remains open and accepts data until the client disconnects,
  13095. at which time stdin is closed and remains closed until the container is restarted. If this
  13096. flag is false, a container processes that reads from stdin will never receive an EOF.
  13097. Default is false
  13098. type: boolean
  13099. targetContainerName:
  13100. description: |-
  13101. If set, the name of the container from PodSpec that this ephemeral container targets.
  13102. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.
  13103. If not set then the ephemeral container uses the namespaces configured in the Pod spec.
  13104. The container runtime must implement support for this feature. If the runtime does not
  13105. support namespace targeting then the result of setting this field is undefined.
  13106. type: string
  13107. terminationMessagePath:
  13108. description: |-
  13109. Optional: Path at which the file to which the container's termination message
  13110. will be written is mounted into the container's filesystem.
  13111. Message written is intended to be brief final status, such as an assertion failure message.
  13112. Will be truncated by the node if greater than 4096 bytes. The total message length across
  13113. all containers will be limited to 12kb.
  13114. Defaults to /dev/termination-log.
  13115. Cannot be updated.
  13116. type: string
  13117. terminationMessagePolicy:
  13118. description: |-
  13119. Indicate how the termination message should be populated. File will use the contents of
  13120. terminationMessagePath to populate the container status message on both success and failure.
  13121. FallbackToLogsOnError will use the last chunk of container log output if the termination
  13122. message file is empty and the container exited with an error.
  13123. The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
  13124. Defaults to File.
  13125. Cannot be updated.
  13126. type: string
  13127. tty:
  13128. description: |-
  13129. Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
  13130. Default is false.
  13131. type: boolean
  13132. volumeDevices:
  13133. description: volumeDevices is the list of block devices
  13134. to be used by the container.
  13135. items:
  13136. description: volumeDevice describes a mapping of a
  13137. raw block device within a container.
  13138. properties:
  13139. devicePath:
  13140. description: devicePath is the path inside of
  13141. the container that the device will be mapped
  13142. to.
  13143. type: string
  13144. name:
  13145. description: name must match the name of a persistentVolumeClaim
  13146. in the pod
  13147. type: string
  13148. required:
  13149. - devicePath
  13150. - name
  13151. type: object
  13152. type: array
  13153. x-kubernetes-list-map-keys:
  13154. - devicePath
  13155. x-kubernetes-list-type: map
  13156. volumeMounts:
  13157. description: |-
  13158. Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.
  13159. Cannot be updated.
  13160. items:
  13161. description: VolumeMount describes a mounting of a
  13162. Volume within a container.
  13163. properties:
  13164. mountPath:
  13165. description: |-
  13166. Path within the container at which the volume should be mounted. Must
  13167. not contain ':'.
  13168. type: string
  13169. mountPropagation:
  13170. description: |-
  13171. mountPropagation determines how mounts are propagated from the host
  13172. to container and the other way around.
  13173. When not set, MountPropagationNone is used.
  13174. This field is beta in 1.10.
  13175. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  13176. (which defaults to None).
  13177. type: string
  13178. name:
  13179. description: This must match the Name of a Volume.
  13180. type: string
  13181. readOnly:
  13182. description: |-
  13183. Mounted read-only if true, read-write otherwise (false or unspecified).
  13184. Defaults to false.
  13185. type: boolean
  13186. recursiveReadOnly:
  13187. description: |-
  13188. RecursiveReadOnly specifies whether read-only mounts should be handled
  13189. recursively.
  13190. If ReadOnly is false, this field has no meaning and must be unspecified.
  13191. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  13192. recursively read-only. If this field is set to IfPossible, the mount is made
  13193. recursively read-only, if it is supported by the container runtime. If this
  13194. field is set to Enabled, the mount is made recursively read-only if it is
  13195. supported by the container runtime, otherwise the pod will not be started and
  13196. an error will be generated to indicate the reason.
  13197. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  13198. None (or be unspecified, which defaults to None).
  13199. If this field is not specified, it is treated as an equivalent of Disabled.
  13200. type: string
  13201. subPath:
  13202. description: |-
  13203. Path within the volume from which the container's volume should be mounted.
  13204. Defaults to "" (volume's root).
  13205. type: string
  13206. subPathExpr:
  13207. description: |-
  13208. Expanded path within the volume from which the container's volume should be mounted.
  13209. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  13210. Defaults to "" (volume's root).
  13211. SubPathExpr and SubPath are mutually exclusive.
  13212. type: string
  13213. required:
  13214. - mountPath
  13215. - name
  13216. type: object
  13217. type: array
  13218. x-kubernetes-list-map-keys:
  13219. - mountPath
  13220. x-kubernetes-list-type: map
  13221. workingDir:
  13222. description: |-
  13223. Container's working directory.
  13224. If not specified, the container runtime's default will be used, which
  13225. might be configured in the container image.
  13226. Cannot be updated.
  13227. type: string
  13228. required:
  13229. - name
  13230. type: object
  13231. type: array
  13232. x-kubernetes-list-map-keys:
  13233. - name
  13234. x-kubernetes-list-type: map
  13235. hostAliases:
  13236. description: |-
  13237. HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
  13238. file if specified.
  13239. items:
  13240. description: |-
  13241. HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
  13242. pod's hosts file.
  13243. properties:
  13244. hostnames:
  13245. description: Hostnames for the above IP address.
  13246. items:
  13247. type: string
  13248. type: array
  13249. x-kubernetes-list-type: atomic
  13250. ip:
  13251. description: IP address of the host file entry.
  13252. type: string
  13253. required:
  13254. - ip
  13255. type: object
  13256. type: array
  13257. x-kubernetes-list-map-keys:
  13258. - ip
  13259. x-kubernetes-list-type: map
  13260. hostIPC:
  13261. description: |-
  13262. Use the host's ipc namespace.
  13263. Optional: Default to false.
  13264. type: boolean
  13265. hostNetwork:
  13266. description: |-
  13267. Host networking requested for this pod. Use the host's network namespace.
  13268. When using HostNetwork you should specify ports so the scheduler is aware.
  13269. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`,
  13270. and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`.
  13271. Default to false.
  13272. type: boolean
  13273. hostPID:
  13274. description: |-
  13275. Use the host's pid namespace.
  13276. Optional: Default to false.
  13277. type: boolean
  13278. hostUsers:
  13279. description: |-
  13280. Use the host's user namespace.
  13281. Optional: Default to true.
  13282. If set to true or not present, the pod will be run in the host user namespace, useful
  13283. for when the pod needs a feature only available to the host user namespace, such as
  13284. loading a kernel module with CAP_SYS_MODULE.
  13285. When set to false, a new userns is created for the pod. Setting false is useful for
  13286. mitigating container breakout vulnerabilities even allowing users to run their
  13287. containers as root without actually having root privileges on the host.
  13288. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.
  13289. type: boolean
  13290. hostname:
  13291. description: |-
  13292. Specifies the hostname of the Pod
  13293. If not specified, the pod's hostname will be set to a system-defined value.
  13294. type: string
  13295. hostnameOverride:
  13296. description: |-
  13297. HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod.
  13298. This field only specifies the pod's hostname and does not affect its DNS records.
  13299. When this field is set to a non-empty string:
  13300. - It takes precedence over the values set in `hostname` and `subdomain`.
  13301. - The Pod's hostname will be set to this value.
  13302. - `setHostnameAsFQDN` must be nil or set to false.
  13303. - `hostNetwork` must be set to false.
  13304. This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters.
  13305. Requires the HostnameOverride feature gate to be enabled.
  13306. type: string
  13307. imagePullSecrets:
  13308. description: |-
  13309. ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
  13310. If specified, these secrets will be passed to individual puller implementations for them to use.
  13311. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
  13312. items:
  13313. description: |-
  13314. LocalObjectReference contains enough information to let you locate the
  13315. referenced object inside the same namespace.
  13316. properties:
  13317. name:
  13318. default: ""
  13319. description: |-
  13320. Name of the referent.
  13321. This field is effectively required, but due to backwards compatibility is
  13322. allowed to be empty. Instances of this type with an empty value here are
  13323. almost certainly wrong.
  13324. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13325. type: string
  13326. type: object
  13327. x-kubernetes-map-type: atomic
  13328. type: array
  13329. x-kubernetes-list-map-keys:
  13330. - name
  13331. x-kubernetes-list-type: map
  13332. initContainers:
  13333. description: |-
  13334. List of initialization containers belonging to the pod.
  13335. Init containers are executed in order prior to containers being started. If any
  13336. init container fails, the pod is considered to have failed and is handled according
  13337. to its restartPolicy. The name for an init container or normal container must be
  13338. unique among all containers.
  13339. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
  13340. The resourceRequirements of an init container are taken into account during scheduling
  13341. by finding the highest request/limit for each resource type, and then using the max of
  13342. that value or the sum of the normal containers. Limits are applied to init containers
  13343. in a similar fashion.
  13344. Init containers cannot currently be added or removed.
  13345. Cannot be updated.
  13346. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  13347. items:
  13348. description: A single application container that you want
  13349. to run within a pod.
  13350. properties:
  13351. args:
  13352. description: |-
  13353. Arguments to the entrypoint.
  13354. The container image's CMD is used if this is not provided.
  13355. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  13356. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  13357. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  13358. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  13359. of whether the variable exists or not. Cannot be updated.
  13360. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  13361. items:
  13362. type: string
  13363. type: array
  13364. x-kubernetes-list-type: atomic
  13365. command:
  13366. description: |-
  13367. Entrypoint array. Not executed within a shell.
  13368. The container image's ENTRYPOINT is used if this is not provided.
  13369. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
  13370. cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
  13371. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
  13372. produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
  13373. of whether the variable exists or not. Cannot be updated.
  13374. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  13375. items:
  13376. type: string
  13377. type: array
  13378. x-kubernetes-list-type: atomic
  13379. env:
  13380. description: |-
  13381. List of environment variables to set in the container.
  13382. Cannot be updated.
  13383. items:
  13384. description: EnvVar represents an environment variable
  13385. present in a Container.
  13386. properties:
  13387. name:
  13388. description: |-
  13389. Name of the environment variable.
  13390. May consist of any printable ASCII characters except '='.
  13391. type: string
  13392. value:
  13393. description: |-
  13394. Variable references $(VAR_NAME) are expanded
  13395. using the previously defined environment variables in the container and
  13396. any service environment variables. If a variable cannot be resolved,
  13397. the reference in the input string will be unchanged. Double $$ are reduced
  13398. to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
  13399. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
  13400. Escaped references will never be expanded, regardless of whether the variable
  13401. exists or not.
  13402. Defaults to "".
  13403. type: string
  13404. valueFrom:
  13405. description: Source for the environment variable's
  13406. value. Cannot be used if value is not empty.
  13407. properties:
  13408. configMapKeyRef:
  13409. description: Selects a key of a ConfigMap.
  13410. properties:
  13411. key:
  13412. description: The key to select.
  13413. type: string
  13414. name:
  13415. default: ""
  13416. description: |-
  13417. Name of the referent.
  13418. This field is effectively required, but due to backwards compatibility is
  13419. allowed to be empty. Instances of this type with an empty value here are
  13420. almost certainly wrong.
  13421. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13422. type: string
  13423. optional:
  13424. description: Specify whether the ConfigMap
  13425. or its key must be defined
  13426. type: boolean
  13427. required:
  13428. - key
  13429. type: object
  13430. x-kubernetes-map-type: atomic
  13431. fieldRef:
  13432. description: |-
  13433. Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
  13434. spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
  13435. properties:
  13436. apiVersion:
  13437. description: Version of the schema the
  13438. FieldPath is written in terms of, defaults
  13439. to "v1".
  13440. type: string
  13441. fieldPath:
  13442. description: Path of the field to select
  13443. in the specified API version.
  13444. type: string
  13445. required:
  13446. - fieldPath
  13447. type: object
  13448. x-kubernetes-map-type: atomic
  13449. fileKeyRef:
  13450. description: |-
  13451. FileKeyRef selects a key of the env file.
  13452. Requires the EnvFiles feature gate to be enabled.
  13453. properties:
  13454. key:
  13455. description: |-
  13456. The key within the env file. An invalid key will prevent the pod from starting.
  13457. The keys defined within a source may consist of any printable ASCII characters except '='.
  13458. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
  13459. type: string
  13460. optional:
  13461. default: false
  13462. description: |-
  13463. Specify whether the file or its key must be defined. If the file or key
  13464. does not exist, then the env var is not published.
  13465. If optional is set to true and the specified key does not exist,
  13466. the environment variable will not be set in the Pod's containers.
  13467. If optional is set to false and the specified key does not exist,
  13468. an error will be returned during Pod creation.
  13469. type: boolean
  13470. path:
  13471. description: |-
  13472. The path within the volume from which to select the file.
  13473. Must be relative and may not contain the '..' path or start with '..'.
  13474. type: string
  13475. volumeName:
  13476. description: The name of the volume mount
  13477. containing the env file.
  13478. type: string
  13479. required:
  13480. - key
  13481. - path
  13482. - volumeName
  13483. type: object
  13484. x-kubernetes-map-type: atomic
  13485. resourceFieldRef:
  13486. description: |-
  13487. Selects a resource of the container: only resources limits and requests
  13488. (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
  13489. properties:
  13490. containerName:
  13491. description: 'Container name: required
  13492. for volumes, optional for env vars'
  13493. type: string
  13494. divisor:
  13495. anyOf:
  13496. - type: integer
  13497. - type: string
  13498. description: Specifies the output format
  13499. of the exposed resources, defaults to
  13500. "1"
  13501. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  13502. x-kubernetes-int-or-string: true
  13503. resource:
  13504. description: 'Required: resource to select'
  13505. type: string
  13506. required:
  13507. - resource
  13508. type: object
  13509. x-kubernetes-map-type: atomic
  13510. secretKeyRef:
  13511. description: Selects a key of a secret in
  13512. the pod's namespace
  13513. properties:
  13514. key:
  13515. description: The key of the secret to
  13516. select from. Must be a valid secret
  13517. key.
  13518. type: string
  13519. name:
  13520. default: ""
  13521. description: |-
  13522. Name of the referent.
  13523. This field is effectively required, but due to backwards compatibility is
  13524. allowed to be empty. Instances of this type with an empty value here are
  13525. almost certainly wrong.
  13526. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13527. type: string
  13528. optional:
  13529. description: Specify whether the Secret
  13530. or its key must be defined
  13531. type: boolean
  13532. required:
  13533. - key
  13534. type: object
  13535. x-kubernetes-map-type: atomic
  13536. type: object
  13537. required:
  13538. - name
  13539. type: object
  13540. type: array
  13541. x-kubernetes-list-map-keys:
  13542. - name
  13543. x-kubernetes-list-type: map
  13544. envFrom:
  13545. description: |-
  13546. List of sources to populate environment variables in the container.
  13547. The keys defined within a source may consist of any printable ASCII characters except '='.
  13548. When a key exists in multiple
  13549. sources, the value associated with the last source will take precedence.
  13550. Values defined by an Env with a duplicate key will take precedence.
  13551. Cannot be updated.
  13552. items:
  13553. description: EnvFromSource represents the source of
  13554. a set of ConfigMaps or Secrets
  13555. properties:
  13556. configMapRef:
  13557. description: The ConfigMap to select from
  13558. properties:
  13559. name:
  13560. default: ""
  13561. description: |-
  13562. Name of the referent.
  13563. This field is effectively required, but due to backwards compatibility is
  13564. allowed to be empty. Instances of this type with an empty value here are
  13565. almost certainly wrong.
  13566. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13567. type: string
  13568. optional:
  13569. description: Specify whether the ConfigMap
  13570. must be defined
  13571. type: boolean
  13572. type: object
  13573. x-kubernetes-map-type: atomic
  13574. prefix:
  13575. description: |-
  13576. Optional text to prepend to the name of each environment variable.
  13577. May consist of any printable ASCII characters except '='.
  13578. type: string
  13579. secretRef:
  13580. description: The Secret to select from
  13581. properties:
  13582. name:
  13583. default: ""
  13584. description: |-
  13585. Name of the referent.
  13586. This field is effectively required, but due to backwards compatibility is
  13587. allowed to be empty. Instances of this type with an empty value here are
  13588. almost certainly wrong.
  13589. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  13590. type: string
  13591. optional:
  13592. description: Specify whether the Secret must
  13593. be defined
  13594. type: boolean
  13595. type: object
  13596. x-kubernetes-map-type: atomic
  13597. type: object
  13598. type: array
  13599. x-kubernetes-list-type: atomic
  13600. image:
  13601. description: |-
  13602. Container image name.
  13603. More info: https://kubernetes.io/docs/concepts/containers/images
  13604. This field is optional to allow higher level config management to default or override
  13605. container images in workload controllers like Deployments and StatefulSets.
  13606. type: string
  13607. imagePullPolicy:
  13608. description: |-
  13609. Image pull policy.
  13610. One of Always, Never, IfNotPresent.
  13611. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  13612. Cannot be updated.
  13613. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  13614. type: string
  13615. lifecycle:
  13616. description: |-
  13617. Actions that the management system should take in response to container lifecycle events.
  13618. Cannot be updated.
  13619. properties:
  13620. postStart:
  13621. description: |-
  13622. PostStart is called immediately after a container is created. If the handler fails,
  13623. the container is terminated and restarted according to its restart policy.
  13624. Other management of the container blocks until the hook completes.
  13625. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  13626. properties:
  13627. exec:
  13628. description: Exec specifies a command to execute
  13629. in the container.
  13630. properties:
  13631. command:
  13632. description: |-
  13633. Command is the command line to execute inside the container, the working directory for the
  13634. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  13635. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  13636. a shell, you need to explicitly call out to that shell.
  13637. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  13638. items:
  13639. type: string
  13640. type: array
  13641. x-kubernetes-list-type: atomic
  13642. type: object
  13643. httpGet:
  13644. description: HTTPGet specifies an HTTP GET request
  13645. to perform.
  13646. properties:
  13647. host:
  13648. description: |-
  13649. Host name to connect to, defaults to the pod IP. You probably want to set
  13650. "Host" in httpHeaders instead.
  13651. type: string
  13652. httpHeaders:
  13653. description: Custom headers to set in the
  13654. request. HTTP allows repeated headers.
  13655. items:
  13656. description: HTTPHeader describes a custom
  13657. header to be used in HTTP probes
  13658. properties:
  13659. name:
  13660. description: |-
  13661. The header field name.
  13662. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  13663. type: string
  13664. value:
  13665. description: The header field value
  13666. type: string
  13667. required:
  13668. - name
  13669. - value
  13670. type: object
  13671. type: array
  13672. x-kubernetes-list-type: atomic
  13673. path:
  13674. description: Path to access on the HTTP
  13675. server.
  13676. type: string
  13677. port:
  13678. anyOf:
  13679. - type: integer
  13680. - type: string
  13681. description: |-
  13682. Name or number of the port to access on the container.
  13683. Number must be in the range 1 to 65535.
  13684. Name must be an IANA_SVC_NAME.
  13685. x-kubernetes-int-or-string: true
  13686. scheme:
  13687. description: |-
  13688. Scheme to use for connecting to the host.
  13689. Defaults to HTTP.
  13690. type: string
  13691. required:
  13692. - port
  13693. type: object
  13694. sleep:
  13695. description: Sleep represents a duration that
  13696. the container should sleep.
  13697. properties:
  13698. seconds:
  13699. description: Seconds is the number of seconds
  13700. to sleep.
  13701. format: int64
  13702. type: integer
  13703. required:
  13704. - seconds
  13705. type: object
  13706. tcpSocket:
  13707. description: |-
  13708. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  13709. for backward compatibility. There is no validation of this field and
  13710. lifecycle hooks will fail at runtime when it is specified.
  13711. properties:
  13712. host:
  13713. description: 'Optional: Host name to connect
  13714. to, defaults to the pod IP.'
  13715. type: string
  13716. port:
  13717. anyOf:
  13718. - type: integer
  13719. - type: string
  13720. description: |-
  13721. Number or name of the port to access on the container.
  13722. Number must be in the range 1 to 65535.
  13723. Name must be an IANA_SVC_NAME.
  13724. x-kubernetes-int-or-string: true
  13725. required:
  13726. - port
  13727. type: object
  13728. type: object
  13729. preStop:
  13730. description: |-
  13731. PreStop is called immediately before a container is terminated due to an
  13732. API request or management event such as liveness/startup probe failure,
  13733. preemption, resource contention, etc. The handler is not called if the
  13734. container crashes or exits. The Pod's termination grace period countdown begins before the
  13735. PreStop hook is executed. Regardless of the outcome of the handler, the
  13736. container will eventually terminate within the Pod's termination grace
  13737. period (unless delayed by finalizers). Other management of the container blocks until the hook completes
  13738. or until the termination grace period is reached.
  13739. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
  13740. properties:
  13741. exec:
  13742. description: Exec specifies a command to execute
  13743. in the container.
  13744. properties:
  13745. command:
  13746. description: |-
  13747. Command is the command line to execute inside the container, the working directory for the
  13748. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  13749. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  13750. a shell, you need to explicitly call out to that shell.
  13751. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  13752. items:
  13753. type: string
  13754. type: array
  13755. x-kubernetes-list-type: atomic
  13756. type: object
  13757. httpGet:
  13758. description: HTTPGet specifies an HTTP GET request
  13759. to perform.
  13760. properties:
  13761. host:
  13762. description: |-
  13763. Host name to connect to, defaults to the pod IP. You probably want to set
  13764. "Host" in httpHeaders instead.
  13765. type: string
  13766. httpHeaders:
  13767. description: Custom headers to set in the
  13768. request. HTTP allows repeated headers.
  13769. items:
  13770. description: HTTPHeader describes a custom
  13771. header to be used in HTTP probes
  13772. properties:
  13773. name:
  13774. description: |-
  13775. The header field name.
  13776. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  13777. type: string
  13778. value:
  13779. description: The header field value
  13780. type: string
  13781. required:
  13782. - name
  13783. - value
  13784. type: object
  13785. type: array
  13786. x-kubernetes-list-type: atomic
  13787. path:
  13788. description: Path to access on the HTTP
  13789. server.
  13790. type: string
  13791. port:
  13792. anyOf:
  13793. - type: integer
  13794. - type: string
  13795. description: |-
  13796. Name or number of the port to access on the container.
  13797. Number must be in the range 1 to 65535.
  13798. Name must be an IANA_SVC_NAME.
  13799. x-kubernetes-int-or-string: true
  13800. scheme:
  13801. description: |-
  13802. Scheme to use for connecting to the host.
  13803. Defaults to HTTP.
  13804. type: string
  13805. required:
  13806. - port
  13807. type: object
  13808. sleep:
  13809. description: Sleep represents a duration that
  13810. the container should sleep.
  13811. properties:
  13812. seconds:
  13813. description: Seconds is the number of seconds
  13814. to sleep.
  13815. format: int64
  13816. type: integer
  13817. required:
  13818. - seconds
  13819. type: object
  13820. tcpSocket:
  13821. description: |-
  13822. Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
  13823. for backward compatibility. There is no validation of this field and
  13824. lifecycle hooks will fail at runtime when it is specified.
  13825. properties:
  13826. host:
  13827. description: 'Optional: Host name to connect
  13828. to, defaults to the pod IP.'
  13829. type: string
  13830. port:
  13831. anyOf:
  13832. - type: integer
  13833. - type: string
  13834. description: |-
  13835. Number or name of the port to access on the container.
  13836. Number must be in the range 1 to 65535.
  13837. Name must be an IANA_SVC_NAME.
  13838. x-kubernetes-int-or-string: true
  13839. required:
  13840. - port
  13841. type: object
  13842. type: object
  13843. stopSignal:
  13844. description: |-
  13845. StopSignal defines which signal will be sent to a container when it is being stopped.
  13846. If not specified, the default is defined by the container runtime in use.
  13847. StopSignal can only be set for Pods with a non-empty .spec.os.name
  13848. type: string
  13849. type: object
  13850. livenessProbe:
  13851. description: |-
  13852. Periodic probe of container liveness.
  13853. Container will be restarted if the probe fails.
  13854. Cannot be updated.
  13855. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  13856. properties:
  13857. exec:
  13858. description: Exec specifies a command to execute
  13859. in the container.
  13860. properties:
  13861. command:
  13862. description: |-
  13863. Command is the command line to execute inside the container, the working directory for the
  13864. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  13865. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  13866. a shell, you need to explicitly call out to that shell.
  13867. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  13868. items:
  13869. type: string
  13870. type: array
  13871. x-kubernetes-list-type: atomic
  13872. type: object
  13873. failureThreshold:
  13874. description: |-
  13875. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  13876. Defaults to 3. Minimum value is 1.
  13877. format: int32
  13878. type: integer
  13879. grpc:
  13880. description: GRPC specifies a GRPC HealthCheckRequest.
  13881. properties:
  13882. port:
  13883. description: Port number of the gRPC service.
  13884. Number must be in the range 1 to 65535.
  13885. format: int32
  13886. type: integer
  13887. service:
  13888. default: ""
  13889. description: |-
  13890. Service is the name of the service to place in the gRPC HealthCheckRequest
  13891. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  13892. If this is not specified, the default behavior is defined by gRPC.
  13893. type: string
  13894. required:
  13895. - port
  13896. type: object
  13897. httpGet:
  13898. description: HTTPGet specifies an HTTP GET request
  13899. to perform.
  13900. properties:
  13901. host:
  13902. description: |-
  13903. Host name to connect to, defaults to the pod IP. You probably want to set
  13904. "Host" in httpHeaders instead.
  13905. type: string
  13906. httpHeaders:
  13907. description: Custom headers to set in the request.
  13908. HTTP allows repeated headers.
  13909. items:
  13910. description: HTTPHeader describes a custom
  13911. header to be used in HTTP probes
  13912. properties:
  13913. name:
  13914. description: |-
  13915. The header field name.
  13916. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  13917. type: string
  13918. value:
  13919. description: The header field value
  13920. type: string
  13921. required:
  13922. - name
  13923. - value
  13924. type: object
  13925. type: array
  13926. x-kubernetes-list-type: atomic
  13927. path:
  13928. description: Path to access on the HTTP server.
  13929. type: string
  13930. port:
  13931. anyOf:
  13932. - type: integer
  13933. - type: string
  13934. description: |-
  13935. Name or number of the port to access on the container.
  13936. Number must be in the range 1 to 65535.
  13937. Name must be an IANA_SVC_NAME.
  13938. x-kubernetes-int-or-string: true
  13939. scheme:
  13940. description: |-
  13941. Scheme to use for connecting to the host.
  13942. Defaults to HTTP.
  13943. type: string
  13944. required:
  13945. - port
  13946. type: object
  13947. initialDelaySeconds:
  13948. description: |-
  13949. Number of seconds after the container has started before liveness probes are initiated.
  13950. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  13951. format: int32
  13952. type: integer
  13953. periodSeconds:
  13954. description: |-
  13955. How often (in seconds) to perform the probe.
  13956. Default to 10 seconds. Minimum value is 1.
  13957. format: int32
  13958. type: integer
  13959. successThreshold:
  13960. description: |-
  13961. Minimum consecutive successes for the probe to be considered successful after having failed.
  13962. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  13963. format: int32
  13964. type: integer
  13965. tcpSocket:
  13966. description: TCPSocket specifies a connection to
  13967. a TCP port.
  13968. properties:
  13969. host:
  13970. description: 'Optional: Host name to connect
  13971. to, defaults to the pod IP.'
  13972. type: string
  13973. port:
  13974. anyOf:
  13975. - type: integer
  13976. - type: string
  13977. description: |-
  13978. Number or name of the port to access on the container.
  13979. Number must be in the range 1 to 65535.
  13980. Name must be an IANA_SVC_NAME.
  13981. x-kubernetes-int-or-string: true
  13982. required:
  13983. - port
  13984. type: object
  13985. terminationGracePeriodSeconds:
  13986. description: |-
  13987. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  13988. The grace period is the duration in seconds after the processes running in the pod are sent
  13989. a termination signal and the time when the processes are forcibly halted with a kill signal.
  13990. Set this value longer than the expected cleanup time for your process.
  13991. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  13992. value overrides the value provided by the pod spec.
  13993. Value must be non-negative integer. The value zero indicates stop immediately via
  13994. the kill signal (no opportunity to shut down).
  13995. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  13996. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  13997. format: int64
  13998. type: integer
  13999. timeoutSeconds:
  14000. description: |-
  14001. Number of seconds after which the probe times out.
  14002. Defaults to 1 second. Minimum value is 1.
  14003. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14004. format: int32
  14005. type: integer
  14006. type: object
  14007. name:
  14008. description: |-
  14009. Name of the container specified as a DNS_LABEL.
  14010. Each container in a pod must have a unique name (DNS_LABEL).
  14011. Cannot be updated.
  14012. type: string
  14013. ports:
  14014. description: |-
  14015. List of ports to expose from the container. Not specifying a port here
  14016. DOES NOT prevent that port from being exposed. Any port which is
  14017. listening on the default "0.0.0.0" address inside a container will be
  14018. accessible from the network.
  14019. Modifying this array with strategic merge patch may corrupt the data.
  14020. For more information See https://github.com/kubernetes/kubernetes/issues/108255.
  14021. Cannot be updated.
  14022. items:
  14023. description: ContainerPort represents a network port
  14024. in a single container.
  14025. properties:
  14026. containerPort:
  14027. description: |-
  14028. Number of port to expose on the pod's IP address.
  14029. This must be a valid port number, 0 < x < 65536.
  14030. format: int32
  14031. type: integer
  14032. hostIP:
  14033. description: What host IP to bind the external
  14034. port to.
  14035. type: string
  14036. hostPort:
  14037. description: |-
  14038. Number of port to expose on the host.
  14039. If specified, this must be a valid port number, 0 < x < 65536.
  14040. If HostNetwork is specified, this must match ContainerPort.
  14041. Most containers do not need this.
  14042. format: int32
  14043. type: integer
  14044. name:
  14045. description: |-
  14046. If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
  14047. named port in a pod must have a unique name. Name for the port that can be
  14048. referred to by services.
  14049. type: string
  14050. protocol:
  14051. default: TCP
  14052. description: |-
  14053. Protocol for port. Must be UDP, TCP, or SCTP.
  14054. Defaults to "TCP".
  14055. type: string
  14056. required:
  14057. - containerPort
  14058. type: object
  14059. type: array
  14060. x-kubernetes-list-map-keys:
  14061. - containerPort
  14062. - protocol
  14063. x-kubernetes-list-type: map
  14064. readinessProbe:
  14065. description: |-
  14066. Periodic probe of container service readiness.
  14067. Container will be removed from service endpoints if the probe fails.
  14068. Cannot be updated.
  14069. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14070. properties:
  14071. exec:
  14072. description: Exec specifies a command to execute
  14073. in the container.
  14074. properties:
  14075. command:
  14076. description: |-
  14077. Command is the command line to execute inside the container, the working directory for the
  14078. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  14079. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  14080. a shell, you need to explicitly call out to that shell.
  14081. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  14082. items:
  14083. type: string
  14084. type: array
  14085. x-kubernetes-list-type: atomic
  14086. type: object
  14087. failureThreshold:
  14088. description: |-
  14089. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  14090. Defaults to 3. Minimum value is 1.
  14091. format: int32
  14092. type: integer
  14093. grpc:
  14094. description: GRPC specifies a GRPC HealthCheckRequest.
  14095. properties:
  14096. port:
  14097. description: Port number of the gRPC service.
  14098. Number must be in the range 1 to 65535.
  14099. format: int32
  14100. type: integer
  14101. service:
  14102. default: ""
  14103. description: |-
  14104. Service is the name of the service to place in the gRPC HealthCheckRequest
  14105. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  14106. If this is not specified, the default behavior is defined by gRPC.
  14107. type: string
  14108. required:
  14109. - port
  14110. type: object
  14111. httpGet:
  14112. description: HTTPGet specifies an HTTP GET request
  14113. to perform.
  14114. properties:
  14115. host:
  14116. description: |-
  14117. Host name to connect to, defaults to the pod IP. You probably want to set
  14118. "Host" in httpHeaders instead.
  14119. type: string
  14120. httpHeaders:
  14121. description: Custom headers to set in the request.
  14122. HTTP allows repeated headers.
  14123. items:
  14124. description: HTTPHeader describes a custom
  14125. header to be used in HTTP probes
  14126. properties:
  14127. name:
  14128. description: |-
  14129. The header field name.
  14130. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  14131. type: string
  14132. value:
  14133. description: The header field value
  14134. type: string
  14135. required:
  14136. - name
  14137. - value
  14138. type: object
  14139. type: array
  14140. x-kubernetes-list-type: atomic
  14141. path:
  14142. description: Path to access on the HTTP server.
  14143. type: string
  14144. port:
  14145. anyOf:
  14146. - type: integer
  14147. - type: string
  14148. description: |-
  14149. Name or number of the port to access on the container.
  14150. Number must be in the range 1 to 65535.
  14151. Name must be an IANA_SVC_NAME.
  14152. x-kubernetes-int-or-string: true
  14153. scheme:
  14154. description: |-
  14155. Scheme to use for connecting to the host.
  14156. Defaults to HTTP.
  14157. type: string
  14158. required:
  14159. - port
  14160. type: object
  14161. initialDelaySeconds:
  14162. description: |-
  14163. Number of seconds after the container has started before liveness probes are initiated.
  14164. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14165. format: int32
  14166. type: integer
  14167. periodSeconds:
  14168. description: |-
  14169. How often (in seconds) to perform the probe.
  14170. Default to 10 seconds. Minimum value is 1.
  14171. format: int32
  14172. type: integer
  14173. successThreshold:
  14174. description: |-
  14175. Minimum consecutive successes for the probe to be considered successful after having failed.
  14176. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  14177. format: int32
  14178. type: integer
  14179. tcpSocket:
  14180. description: TCPSocket specifies a connection to
  14181. a TCP port.
  14182. properties:
  14183. host:
  14184. description: 'Optional: Host name to connect
  14185. to, defaults to the pod IP.'
  14186. type: string
  14187. port:
  14188. anyOf:
  14189. - type: integer
  14190. - type: string
  14191. description: |-
  14192. Number or name of the port to access on the container.
  14193. Number must be in the range 1 to 65535.
  14194. Name must be an IANA_SVC_NAME.
  14195. x-kubernetes-int-or-string: true
  14196. required:
  14197. - port
  14198. type: object
  14199. terminationGracePeriodSeconds:
  14200. description: |-
  14201. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  14202. The grace period is the duration in seconds after the processes running in the pod are sent
  14203. a termination signal and the time when the processes are forcibly halted with a kill signal.
  14204. Set this value longer than the expected cleanup time for your process.
  14205. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  14206. value overrides the value provided by the pod spec.
  14207. Value must be non-negative integer. The value zero indicates stop immediately via
  14208. the kill signal (no opportunity to shut down).
  14209. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  14210. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  14211. format: int64
  14212. type: integer
  14213. timeoutSeconds:
  14214. description: |-
  14215. Number of seconds after which the probe times out.
  14216. Defaults to 1 second. Minimum value is 1.
  14217. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14218. format: int32
  14219. type: integer
  14220. type: object
  14221. resizePolicy:
  14222. description: Resources resize policy for the container.
  14223. items:
  14224. description: ContainerResizePolicy represents resource
  14225. resize policy for the container.
  14226. properties:
  14227. resourceName:
  14228. description: |-
  14229. Name of the resource to which this resource resize policy applies.
  14230. Supported values: cpu, memory.
  14231. type: string
  14232. restartPolicy:
  14233. description: |-
  14234. Restart policy to apply when specified resource is resized.
  14235. If not specified, it defaults to NotRequired.
  14236. type: string
  14237. required:
  14238. - resourceName
  14239. - restartPolicy
  14240. type: object
  14241. type: array
  14242. x-kubernetes-list-type: atomic
  14243. resources:
  14244. description: |-
  14245. Compute Resources required by this container.
  14246. Cannot be updated.
  14247. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  14248. properties:
  14249. claims:
  14250. description: |-
  14251. Claims lists the names of resources, defined in spec.resourceClaims,
  14252. that are used by this container.
  14253. This field depends on the
  14254. DynamicResourceAllocation feature gate.
  14255. This field is immutable. It can only be set for containers.
  14256. items:
  14257. description: ResourceClaim references one entry
  14258. in PodSpec.ResourceClaims.
  14259. properties:
  14260. name:
  14261. description: |-
  14262. Name must match the name of one entry in pod.spec.resourceClaims of
  14263. the Pod where this field is used. It makes that resource available
  14264. inside a container.
  14265. type: string
  14266. request:
  14267. description: |-
  14268. Request is the name chosen for a request in the referenced claim.
  14269. If empty, everything from the claim is made available, otherwise
  14270. only the result of this request.
  14271. type: string
  14272. required:
  14273. - name
  14274. type: object
  14275. type: array
  14276. x-kubernetes-list-map-keys:
  14277. - name
  14278. x-kubernetes-list-type: map
  14279. limits:
  14280. additionalProperties:
  14281. anyOf:
  14282. - type: integer
  14283. - type: string
  14284. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14285. x-kubernetes-int-or-string: true
  14286. description: |-
  14287. Limits describes the maximum amount of compute resources allowed.
  14288. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  14289. type: object
  14290. requests:
  14291. additionalProperties:
  14292. anyOf:
  14293. - type: integer
  14294. - type: string
  14295. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14296. x-kubernetes-int-or-string: true
  14297. description: |-
  14298. Requests describes the minimum amount of compute resources required.
  14299. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  14300. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  14301. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  14302. type: object
  14303. type: object
  14304. restartPolicy:
  14305. description: |-
  14306. RestartPolicy defines the restart behavior of individual containers in a pod.
  14307. This overrides the pod-level restart policy. When this field is not specified,
  14308. the restart behavior is defined by the Pod's restart policy and the container type.
  14309. Additionally, setting the RestartPolicy as "Always" for the init container will
  14310. have the following effect:
  14311. this init container will be continually restarted on
  14312. exit until all regular containers have terminated. Once all regular
  14313. containers have completed, all init containers with restartPolicy "Always"
  14314. will be shut down. This lifecycle differs from normal init containers and
  14315. is often referred to as a "sidecar" container. Although this init
  14316. container still starts in the init container sequence, it does not wait
  14317. for the container to complete before proceeding to the next init
  14318. container. Instead, the next init container starts immediately after this
  14319. init container is started, or after any startupProbe has successfully
  14320. completed.
  14321. type: string
  14322. restartPolicyRules:
  14323. description: |-
  14324. Represents a list of rules to be checked to determine if the
  14325. container should be restarted on exit. The rules are evaluated in
  14326. order. Once a rule matches a container exit condition, the remaining
  14327. rules are ignored. If no rule matches the container exit condition,
  14328. the Container-level restart policy determines the whether the container
  14329. is restarted or not. Constraints on the rules:
  14330. - At most 20 rules are allowed.
  14331. - Rules can have the same action.
  14332. - Identical rules are not forbidden in validations.
  14333. When rules are specified, container MUST set RestartPolicy explicitly
  14334. even it if matches the Pod's RestartPolicy.
  14335. items:
  14336. description: ContainerRestartRule describes how a
  14337. container exit is handled.
  14338. properties:
  14339. action:
  14340. description: |-
  14341. Specifies the action taken on a container exit if the requirements
  14342. are satisfied. The only possible value is "Restart" to restart the
  14343. container.
  14344. type: string
  14345. exitCodes:
  14346. description: Represents the exit codes to check
  14347. on container exits.
  14348. properties:
  14349. operator:
  14350. description: |-
  14351. Represents the relationship between the container exit code(s) and the
  14352. specified values. Possible values are:
  14353. - In: the requirement is satisfied if the container exit code is in the
  14354. set of specified values.
  14355. - NotIn: the requirement is satisfied if the container exit code is
  14356. not in the set of specified values.
  14357. type: string
  14358. values:
  14359. description: |-
  14360. Specifies the set of values to check for container exit codes.
  14361. At most 255 elements are allowed.
  14362. items:
  14363. format: int32
  14364. type: integer
  14365. type: array
  14366. x-kubernetes-list-type: set
  14367. required:
  14368. - operator
  14369. type: object
  14370. required:
  14371. - action
  14372. type: object
  14373. type: array
  14374. x-kubernetes-list-type: atomic
  14375. securityContext:
  14376. description: |-
  14377. SecurityContext defines the security options the container should be run with.
  14378. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
  14379. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  14380. properties:
  14381. allowPrivilegeEscalation:
  14382. description: |-
  14383. AllowPrivilegeEscalation controls whether a process can gain more
  14384. privileges than its parent process. This bool directly controls if
  14385. the no_new_privs flag will be set on the container process.
  14386. AllowPrivilegeEscalation is true always when the container is:
  14387. 1) run as Privileged
  14388. 2) has CAP_SYS_ADMIN
  14389. Note that this field cannot be set when spec.os.name is windows.
  14390. type: boolean
  14391. appArmorProfile:
  14392. description: |-
  14393. appArmorProfile is the AppArmor options to use by this container. If set, this profile
  14394. overrides the pod's appArmorProfile.
  14395. Note that this field cannot be set when spec.os.name is windows.
  14396. properties:
  14397. localhostProfile:
  14398. description: |-
  14399. localhostProfile indicates a profile loaded on the node that should be used.
  14400. The profile must be preconfigured on the node to work.
  14401. Must match the loaded name of the profile.
  14402. Must be set if and only if type is "Localhost".
  14403. type: string
  14404. type:
  14405. description: |-
  14406. type indicates which kind of AppArmor profile will be applied.
  14407. Valid options are:
  14408. Localhost - a profile pre-loaded on the node.
  14409. RuntimeDefault - the container runtime's default profile.
  14410. Unconfined - no AppArmor enforcement.
  14411. type: string
  14412. required:
  14413. - type
  14414. type: object
  14415. capabilities:
  14416. description: |-
  14417. The capabilities to add/drop when running containers.
  14418. Defaults to the default set of capabilities granted by the container runtime.
  14419. Note that this field cannot be set when spec.os.name is windows.
  14420. properties:
  14421. add:
  14422. description: Added capabilities
  14423. items:
  14424. description: Capability represent POSIX capabilities
  14425. type
  14426. type: string
  14427. type: array
  14428. x-kubernetes-list-type: atomic
  14429. drop:
  14430. description: Removed capabilities
  14431. items:
  14432. description: Capability represent POSIX capabilities
  14433. type
  14434. type: string
  14435. type: array
  14436. x-kubernetes-list-type: atomic
  14437. type: object
  14438. privileged:
  14439. description: |-
  14440. Run container in privileged mode.
  14441. Processes in privileged containers are essentially equivalent to root on the host.
  14442. Defaults to false.
  14443. Note that this field cannot be set when spec.os.name is windows.
  14444. type: boolean
  14445. procMount:
  14446. description: |-
  14447. procMount denotes the type of proc mount to use for the containers.
  14448. The default value is Default which uses the container runtime defaults for
  14449. readonly paths and masked paths.
  14450. This requires the ProcMountType feature flag to be enabled.
  14451. Note that this field cannot be set when spec.os.name is windows.
  14452. type: string
  14453. readOnlyRootFilesystem:
  14454. description: |-
  14455. Whether this container has a read-only root filesystem.
  14456. Default is false.
  14457. Note that this field cannot be set when spec.os.name is windows.
  14458. type: boolean
  14459. runAsGroup:
  14460. description: |-
  14461. The GID to run the entrypoint of the container process.
  14462. Uses runtime default if unset.
  14463. May also be set in PodSecurityContext. If set in both SecurityContext and
  14464. PodSecurityContext, the value specified in SecurityContext takes precedence.
  14465. Note that this field cannot be set when spec.os.name is windows.
  14466. format: int64
  14467. type: integer
  14468. runAsNonRoot:
  14469. description: |-
  14470. Indicates that the container must run as a non-root user.
  14471. If true, the Kubelet will validate the image at runtime to ensure that it
  14472. does not run as UID 0 (root) and fail to start the container if it does.
  14473. If unset or false, no such validation will be performed.
  14474. May also be set in PodSecurityContext. If set in both SecurityContext and
  14475. PodSecurityContext, the value specified in SecurityContext takes precedence.
  14476. type: boolean
  14477. runAsUser:
  14478. description: |-
  14479. The UID to run the entrypoint of the container process.
  14480. Defaults to user specified in image metadata if unspecified.
  14481. May also be set in PodSecurityContext. If set in both SecurityContext and
  14482. PodSecurityContext, the value specified in SecurityContext takes precedence.
  14483. Note that this field cannot be set when spec.os.name is windows.
  14484. format: int64
  14485. type: integer
  14486. seLinuxOptions:
  14487. description: |-
  14488. The SELinux context to be applied to the container.
  14489. If unspecified, the container runtime will allocate a random SELinux context for each
  14490. container. May also be set in PodSecurityContext. If set in both SecurityContext and
  14491. PodSecurityContext, the value specified in SecurityContext takes precedence.
  14492. Note that this field cannot be set when spec.os.name is windows.
  14493. properties:
  14494. level:
  14495. description: Level is SELinux level label that
  14496. applies to the container.
  14497. type: string
  14498. role:
  14499. description: Role is a SELinux role label that
  14500. applies to the container.
  14501. type: string
  14502. type:
  14503. description: Type is a SELinux type label that
  14504. applies to the container.
  14505. type: string
  14506. user:
  14507. description: User is a SELinux user label that
  14508. applies to the container.
  14509. type: string
  14510. type: object
  14511. seccompProfile:
  14512. description: |-
  14513. The seccomp options to use by this container. If seccomp options are
  14514. provided at both the pod & container level, the container options
  14515. override the pod options.
  14516. Note that this field cannot be set when spec.os.name is windows.
  14517. properties:
  14518. localhostProfile:
  14519. description: |-
  14520. localhostProfile indicates a profile defined in a file on the node should be used.
  14521. The profile must be preconfigured on the node to work.
  14522. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  14523. Must be set if type is "Localhost". Must NOT be set for any other type.
  14524. type: string
  14525. type:
  14526. description: |-
  14527. type indicates which kind of seccomp profile will be applied.
  14528. Valid options are:
  14529. Localhost - a profile defined in a file on the node should be used.
  14530. RuntimeDefault - the container runtime default profile should be used.
  14531. Unconfined - no profile should be applied.
  14532. type: string
  14533. required:
  14534. - type
  14535. type: object
  14536. windowsOptions:
  14537. description: |-
  14538. The Windows specific settings applied to all containers.
  14539. If unspecified, the options from the PodSecurityContext will be used.
  14540. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  14541. Note that this field cannot be set when spec.os.name is linux.
  14542. properties:
  14543. gmsaCredentialSpec:
  14544. description: |-
  14545. GMSACredentialSpec is where the GMSA admission webhook
  14546. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  14547. GMSA credential spec named by the GMSACredentialSpecName field.
  14548. type: string
  14549. gmsaCredentialSpecName:
  14550. description: GMSACredentialSpecName is the name
  14551. of the GMSA credential spec to use.
  14552. type: string
  14553. hostProcess:
  14554. description: |-
  14555. HostProcess determines if a container should be run as a 'Host Process' container.
  14556. All of a Pod's containers must have the same effective HostProcess value
  14557. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  14558. In addition, if HostProcess is true then HostNetwork must also be set to true.
  14559. type: boolean
  14560. runAsUserName:
  14561. description: |-
  14562. The UserName in Windows to run the entrypoint of the container process.
  14563. Defaults to the user specified in image metadata if unspecified.
  14564. May also be set in PodSecurityContext. If set in both SecurityContext and
  14565. PodSecurityContext, the value specified in SecurityContext takes precedence.
  14566. type: string
  14567. type: object
  14568. type: object
  14569. startupProbe:
  14570. description: |-
  14571. StartupProbe indicates that the Pod has successfully initialized.
  14572. If specified, no other probes are executed until this completes successfully.
  14573. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
  14574. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
  14575. when it might take a long time to load data or warm a cache, than during steady-state operation.
  14576. This cannot be updated.
  14577. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14578. properties:
  14579. exec:
  14580. description: Exec specifies a command to execute
  14581. in the container.
  14582. properties:
  14583. command:
  14584. description: |-
  14585. Command is the command line to execute inside the container, the working directory for the
  14586. command is root ('/') in the container's filesystem. The command is simply exec'd, it is
  14587. not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
  14588. a shell, you need to explicitly call out to that shell.
  14589. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  14590. items:
  14591. type: string
  14592. type: array
  14593. x-kubernetes-list-type: atomic
  14594. type: object
  14595. failureThreshold:
  14596. description: |-
  14597. Minimum consecutive failures for the probe to be considered failed after having succeeded.
  14598. Defaults to 3. Minimum value is 1.
  14599. format: int32
  14600. type: integer
  14601. grpc:
  14602. description: GRPC specifies a GRPC HealthCheckRequest.
  14603. properties:
  14604. port:
  14605. description: Port number of the gRPC service.
  14606. Number must be in the range 1 to 65535.
  14607. format: int32
  14608. type: integer
  14609. service:
  14610. default: ""
  14611. description: |-
  14612. Service is the name of the service to place in the gRPC HealthCheckRequest
  14613. (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
  14614. If this is not specified, the default behavior is defined by gRPC.
  14615. type: string
  14616. required:
  14617. - port
  14618. type: object
  14619. httpGet:
  14620. description: HTTPGet specifies an HTTP GET request
  14621. to perform.
  14622. properties:
  14623. host:
  14624. description: |-
  14625. Host name to connect to, defaults to the pod IP. You probably want to set
  14626. "Host" in httpHeaders instead.
  14627. type: string
  14628. httpHeaders:
  14629. description: Custom headers to set in the request.
  14630. HTTP allows repeated headers.
  14631. items:
  14632. description: HTTPHeader describes a custom
  14633. header to be used in HTTP probes
  14634. properties:
  14635. name:
  14636. description: |-
  14637. The header field name.
  14638. This will be canonicalized upon output, so case-variant names will be understood as the same header.
  14639. type: string
  14640. value:
  14641. description: The header field value
  14642. type: string
  14643. required:
  14644. - name
  14645. - value
  14646. type: object
  14647. type: array
  14648. x-kubernetes-list-type: atomic
  14649. path:
  14650. description: Path to access on the HTTP server.
  14651. type: string
  14652. port:
  14653. anyOf:
  14654. - type: integer
  14655. - type: string
  14656. description: |-
  14657. Name or number of the port to access on the container.
  14658. Number must be in the range 1 to 65535.
  14659. Name must be an IANA_SVC_NAME.
  14660. x-kubernetes-int-or-string: true
  14661. scheme:
  14662. description: |-
  14663. Scheme to use for connecting to the host.
  14664. Defaults to HTTP.
  14665. type: string
  14666. required:
  14667. - port
  14668. type: object
  14669. initialDelaySeconds:
  14670. description: |-
  14671. Number of seconds after the container has started before liveness probes are initiated.
  14672. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14673. format: int32
  14674. type: integer
  14675. periodSeconds:
  14676. description: |-
  14677. How often (in seconds) to perform the probe.
  14678. Default to 10 seconds. Minimum value is 1.
  14679. format: int32
  14680. type: integer
  14681. successThreshold:
  14682. description: |-
  14683. Minimum consecutive successes for the probe to be considered successful after having failed.
  14684. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  14685. format: int32
  14686. type: integer
  14687. tcpSocket:
  14688. description: TCPSocket specifies a connection to
  14689. a TCP port.
  14690. properties:
  14691. host:
  14692. description: 'Optional: Host name to connect
  14693. to, defaults to the pod IP.'
  14694. type: string
  14695. port:
  14696. anyOf:
  14697. - type: integer
  14698. - type: string
  14699. description: |-
  14700. Number or name of the port to access on the container.
  14701. Number must be in the range 1 to 65535.
  14702. Name must be an IANA_SVC_NAME.
  14703. x-kubernetes-int-or-string: true
  14704. required:
  14705. - port
  14706. type: object
  14707. terminationGracePeriodSeconds:
  14708. description: |-
  14709. Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
  14710. The grace period is the duration in seconds after the processes running in the pod are sent
  14711. a termination signal and the time when the processes are forcibly halted with a kill signal.
  14712. Set this value longer than the expected cleanup time for your process.
  14713. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
  14714. value overrides the value provided by the pod spec.
  14715. Value must be non-negative integer. The value zero indicates stop immediately via
  14716. the kill signal (no opportunity to shut down).
  14717. This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
  14718. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
  14719. format: int64
  14720. type: integer
  14721. timeoutSeconds:
  14722. description: |-
  14723. Number of seconds after which the probe times out.
  14724. Defaults to 1 second. Minimum value is 1.
  14725. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  14726. format: int32
  14727. type: integer
  14728. type: object
  14729. stdin:
  14730. description: |-
  14731. Whether this container should allocate a buffer for stdin in the container runtime. If this
  14732. is not set, reads from stdin in the container will always result in EOF.
  14733. Default is false.
  14734. type: boolean
  14735. stdinOnce:
  14736. description: |-
  14737. Whether the container runtime should close the stdin channel after it has been opened by
  14738. a single attach. When stdin is true the stdin stream will remain open across multiple attach
  14739. sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
  14740. first client attaches to stdin, and then remains open and accepts data until the client disconnects,
  14741. at which time stdin is closed and remains closed until the container is restarted. If this
  14742. flag is false, a container processes that reads from stdin will never receive an EOF.
  14743. Default is false
  14744. type: boolean
  14745. terminationMessagePath:
  14746. description: |-
  14747. Optional: Path at which the file to which the container's termination message
  14748. will be written is mounted into the container's filesystem.
  14749. Message written is intended to be brief final status, such as an assertion failure message.
  14750. Will be truncated by the node if greater than 4096 bytes. The total message length across
  14751. all containers will be limited to 12kb.
  14752. Defaults to /dev/termination-log.
  14753. Cannot be updated.
  14754. type: string
  14755. terminationMessagePolicy:
  14756. description: |-
  14757. Indicate how the termination message should be populated. File will use the contents of
  14758. terminationMessagePath to populate the container status message on both success and failure.
  14759. FallbackToLogsOnError will use the last chunk of container log output if the termination
  14760. message file is empty and the container exited with an error.
  14761. The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
  14762. Defaults to File.
  14763. Cannot be updated.
  14764. type: string
  14765. tty:
  14766. description: |-
  14767. Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
  14768. Default is false.
  14769. type: boolean
  14770. volumeDevices:
  14771. description: volumeDevices is the list of block devices
  14772. to be used by the container.
  14773. items:
  14774. description: volumeDevice describes a mapping of a
  14775. raw block device within a container.
  14776. properties:
  14777. devicePath:
  14778. description: devicePath is the path inside of
  14779. the container that the device will be mapped
  14780. to.
  14781. type: string
  14782. name:
  14783. description: name must match the name of a persistentVolumeClaim
  14784. in the pod
  14785. type: string
  14786. required:
  14787. - devicePath
  14788. - name
  14789. type: object
  14790. type: array
  14791. x-kubernetes-list-map-keys:
  14792. - devicePath
  14793. x-kubernetes-list-type: map
  14794. volumeMounts:
  14795. description: |-
  14796. Pod volumes to mount into the container's filesystem.
  14797. Cannot be updated.
  14798. items:
  14799. description: VolumeMount describes a mounting of a
  14800. Volume within a container.
  14801. properties:
  14802. mountPath:
  14803. description: |-
  14804. Path within the container at which the volume should be mounted. Must
  14805. not contain ':'.
  14806. type: string
  14807. mountPropagation:
  14808. description: |-
  14809. mountPropagation determines how mounts are propagated from the host
  14810. to container and the other way around.
  14811. When not set, MountPropagationNone is used.
  14812. This field is beta in 1.10.
  14813. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
  14814. (which defaults to None).
  14815. type: string
  14816. name:
  14817. description: This must match the Name of a Volume.
  14818. type: string
  14819. readOnly:
  14820. description: |-
  14821. Mounted read-only if true, read-write otherwise (false or unspecified).
  14822. Defaults to false.
  14823. type: boolean
  14824. recursiveReadOnly:
  14825. description: |-
  14826. RecursiveReadOnly specifies whether read-only mounts should be handled
  14827. recursively.
  14828. If ReadOnly is false, this field has no meaning and must be unspecified.
  14829. If ReadOnly is true, and this field is set to Disabled, the mount is not made
  14830. recursively read-only. If this field is set to IfPossible, the mount is made
  14831. recursively read-only, if it is supported by the container runtime. If this
  14832. field is set to Enabled, the mount is made recursively read-only if it is
  14833. supported by the container runtime, otherwise the pod will not be started and
  14834. an error will be generated to indicate the reason.
  14835. If this field is set to IfPossible or Enabled, MountPropagation must be set to
  14836. None (or be unspecified, which defaults to None).
  14837. If this field is not specified, it is treated as an equivalent of Disabled.
  14838. type: string
  14839. subPath:
  14840. description: |-
  14841. Path within the volume from which the container's volume should be mounted.
  14842. Defaults to "" (volume's root).
  14843. type: string
  14844. subPathExpr:
  14845. description: |-
  14846. Expanded path within the volume from which the container's volume should be mounted.
  14847. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
  14848. Defaults to "" (volume's root).
  14849. SubPathExpr and SubPath are mutually exclusive.
  14850. type: string
  14851. required:
  14852. - mountPath
  14853. - name
  14854. type: object
  14855. type: array
  14856. x-kubernetes-list-map-keys:
  14857. - mountPath
  14858. x-kubernetes-list-type: map
  14859. workingDir:
  14860. description: |-
  14861. Container's working directory.
  14862. If not specified, the container runtime's default will be used, which
  14863. might be configured in the container image.
  14864. Cannot be updated.
  14865. type: string
  14866. required:
  14867. - name
  14868. type: object
  14869. type: array
  14870. x-kubernetes-list-map-keys:
  14871. - name
  14872. x-kubernetes-list-type: map
  14873. nodeName:
  14874. description: |-
  14875. NodeName indicates in which node this pod is scheduled.
  14876. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName.
  14877. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod.
  14878. This field should not be used to express a desire for the pod to be scheduled on a specific node.
  14879. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename
  14880. type: string
  14881. nodeSelector:
  14882. additionalProperties:
  14883. type: string
  14884. description: |-
  14885. NodeSelector is a selector which must be true for the pod to fit on a node.
  14886. Selector which must match a node's labels for the pod to be scheduled on that node.
  14887. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  14888. type: object
  14889. x-kubernetes-map-type: atomic
  14890. os:
  14891. description: |-
  14892. Specifies the OS of the containers in the pod.
  14893. Some pod and container fields are restricted if this is set.
  14894. If the OS field is set to linux, the following fields must be unset:
  14895. -securityContext.windowsOptions
  14896. If the OS field is set to windows, following fields must be unset:
  14897. - spec.hostPID
  14898. - spec.hostIPC
  14899. - spec.hostUsers
  14900. - spec.resources
  14901. - spec.securityContext.appArmorProfile
  14902. - spec.securityContext.seLinuxOptions
  14903. - spec.securityContext.seccompProfile
  14904. - spec.securityContext.fsGroup
  14905. - spec.securityContext.fsGroupChangePolicy
  14906. - spec.securityContext.sysctls
  14907. - spec.shareProcessNamespace
  14908. - spec.securityContext.runAsUser
  14909. - spec.securityContext.runAsGroup
  14910. - spec.securityContext.supplementalGroups
  14911. - spec.securityContext.supplementalGroupsPolicy
  14912. - spec.containers[*].securityContext.appArmorProfile
  14913. - spec.containers[*].securityContext.seLinuxOptions
  14914. - spec.containers[*].securityContext.seccompProfile
  14915. - spec.containers[*].securityContext.capabilities
  14916. - spec.containers[*].securityContext.readOnlyRootFilesystem
  14917. - spec.containers[*].securityContext.privileged
  14918. - spec.containers[*].securityContext.allowPrivilegeEscalation
  14919. - spec.containers[*].securityContext.procMount
  14920. - spec.containers[*].securityContext.runAsUser
  14921. - spec.containers[*].securityContext.runAsGroup
  14922. properties:
  14923. name:
  14924. description: |-
  14925. Name is the name of the operating system. The currently supported values are linux and windows.
  14926. Additional value may be defined in future and can be one of:
  14927. https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
  14928. Clients should expect to handle additional values and treat unrecognized values in this field as os: null
  14929. type: string
  14930. required:
  14931. - name
  14932. type: object
  14933. overhead:
  14934. additionalProperties:
  14935. anyOf:
  14936. - type: integer
  14937. - type: string
  14938. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  14939. x-kubernetes-int-or-string: true
  14940. description: |-
  14941. Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.
  14942. This field will be autopopulated at admission time by the RuntimeClass admission controller. If
  14943. the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.
  14944. The RuntimeClass admission controller will reject Pod create requests which have the overhead already
  14945. set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value
  14946. defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.
  14947. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
  14948. type: object
  14949. preemptionPolicy:
  14950. description: |-
  14951. PreemptionPolicy is the Policy for preempting pods with lower priority.
  14952. One of Never, PreemptLowerPriority.
  14953. Defaults to PreemptLowerPriority if unset.
  14954. type: string
  14955. priority:
  14956. description: |-
  14957. The priority value. Various system components use this field to find the
  14958. priority of the pod. When Priority Admission Controller is enabled, it
  14959. prevents users from setting this field. The admission controller populates
  14960. this field from PriorityClassName.
  14961. The higher the value, the higher the priority.
  14962. format: int32
  14963. type: integer
  14964. priorityClassName:
  14965. description: |-
  14966. If specified, indicates the pod's priority. "system-node-critical" and
  14967. "system-cluster-critical" are two special keywords which indicate the
  14968. highest priorities with the former being the highest priority. Any other
  14969. name must be defined by creating a PriorityClass object with that name.
  14970. If not specified, the pod priority will be default or zero if there is no
  14971. default.
  14972. type: string
  14973. readinessGates:
  14974. description: |-
  14975. If specified, all readiness gates will be evaluated for pod readiness.
  14976. A pod is ready when all its containers are ready AND
  14977. all conditions specified in the readiness gates have status equal to "True"
  14978. More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
  14979. items:
  14980. description: PodReadinessGate contains the reference to
  14981. a pod condition
  14982. properties:
  14983. conditionType:
  14984. description: ConditionType refers to a condition in
  14985. the pod's condition list with matching type.
  14986. type: string
  14987. required:
  14988. - conditionType
  14989. type: object
  14990. type: array
  14991. x-kubernetes-list-type: atomic
  14992. resourceClaims:
  14993. description: |-
  14994. ResourceClaims defines which ResourceClaims must be allocated
  14995. and reserved before the Pod is allowed to start. The resources
  14996. will be made available to those containers which consume them
  14997. by name.
  14998. This is an alpha field and requires enabling the
  14999. DynamicResourceAllocation feature gate.
  15000. This field is immutable.
  15001. items:
  15002. description: |-
  15003. PodResourceClaim references exactly one ResourceClaim, either directly
  15004. or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim
  15005. for the pod.
  15006. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod.
  15007. Containers that need access to the ResourceClaim reference it with this name.
  15008. properties:
  15009. name:
  15010. description: |-
  15011. Name uniquely identifies this resource claim inside the pod.
  15012. This must be a DNS_LABEL.
  15013. type: string
  15014. resourceClaimName:
  15015. description: |-
  15016. ResourceClaimName is the name of a ResourceClaim object in the same
  15017. namespace as this pod.
  15018. Exactly one of ResourceClaimName and ResourceClaimTemplateName must
  15019. be set.
  15020. type: string
  15021. resourceClaimTemplateName:
  15022. description: |-
  15023. ResourceClaimTemplateName is the name of a ResourceClaimTemplate
  15024. object in the same namespace as this pod.
  15025. The template will be used to create a new ResourceClaim, which will
  15026. be bound to this pod. When this pod is deleted, the ResourceClaim
  15027. will also be deleted. The pod name and resource name, along with a
  15028. generated component, will be used to form a unique name for the
  15029. ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.
  15030. This field is immutable and no changes will be made to the
  15031. corresponding ResourceClaim by the control plane after creating the
  15032. ResourceClaim.
  15033. Exactly one of ResourceClaimName and ResourceClaimTemplateName must
  15034. be set.
  15035. type: string
  15036. required:
  15037. - name
  15038. type: object
  15039. type: array
  15040. x-kubernetes-list-map-keys:
  15041. - name
  15042. x-kubernetes-list-type: map
  15043. resources:
  15044. description: |-
  15045. Resources is the total amount of CPU and Memory resources required by all
  15046. containers in the pod. It supports specifying Requests and Limits for
  15047. "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported.
  15048. This field enables fine-grained control over resource allocation for the
  15049. entire pod, allowing resource sharing among containers in a pod.
  15050. This is an alpha field and requires enabling the PodLevelResources feature
  15051. gate.
  15052. properties:
  15053. claims:
  15054. description: |-
  15055. Claims lists the names of resources, defined in spec.resourceClaims,
  15056. that are used by this container.
  15057. This field depends on the
  15058. DynamicResourceAllocation feature gate.
  15059. This field is immutable. It can only be set for containers.
  15060. items:
  15061. description: ResourceClaim references one entry in PodSpec.ResourceClaims.
  15062. properties:
  15063. name:
  15064. description: |-
  15065. Name must match the name of one entry in pod.spec.resourceClaims of
  15066. the Pod where this field is used. It makes that resource available
  15067. inside a container.
  15068. type: string
  15069. request:
  15070. description: |-
  15071. Request is the name chosen for a request in the referenced claim.
  15072. If empty, everything from the claim is made available, otherwise
  15073. only the result of this request.
  15074. type: string
  15075. required:
  15076. - name
  15077. type: object
  15078. type: array
  15079. x-kubernetes-list-map-keys:
  15080. - name
  15081. x-kubernetes-list-type: map
  15082. limits:
  15083. additionalProperties:
  15084. anyOf:
  15085. - type: integer
  15086. - type: string
  15087. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  15088. x-kubernetes-int-or-string: true
  15089. description: |-
  15090. Limits describes the maximum amount of compute resources allowed.
  15091. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  15092. type: object
  15093. requests:
  15094. additionalProperties:
  15095. anyOf:
  15096. - type: integer
  15097. - type: string
  15098. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  15099. x-kubernetes-int-or-string: true
  15100. description: |-
  15101. Requests describes the minimum amount of compute resources required.
  15102. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  15103. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  15104. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  15105. type: object
  15106. type: object
  15107. restartPolicy:
  15108. description: |-
  15109. Restart policy for all containers within the pod.
  15110. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.
  15111. Default to Always.
  15112. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
  15113. type: string
  15114. runtimeClassName:
  15115. description: |-
  15116. RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
  15117. to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.
  15118. If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
  15119. empty definition that uses the default runtime handler.
  15120. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
  15121. type: string
  15122. schedulerName:
  15123. description: |-
  15124. If specified, the pod will be dispatched by specified scheduler.
  15125. If not specified, the pod will be dispatched by default scheduler.
  15126. type: string
  15127. schedulingGates:
  15128. description: |-
  15129. SchedulingGates is an opaque list of values that if specified will block scheduling the pod.
  15130. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the
  15131. scheduler will not attempt to schedule the pod.
  15132. SchedulingGates can only be set at pod creation time, and be removed only afterwards.
  15133. items:
  15134. description: PodSchedulingGate is associated to a Pod to
  15135. guard its scheduling.
  15136. properties:
  15137. name:
  15138. description: |-
  15139. Name of the scheduling gate.
  15140. Each scheduling gate must have a unique name field.
  15141. type: string
  15142. required:
  15143. - name
  15144. type: object
  15145. type: array
  15146. x-kubernetes-list-map-keys:
  15147. - name
  15148. x-kubernetes-list-type: map
  15149. securityContext:
  15150. description: |-
  15151. SecurityContext holds pod-level security attributes and common container settings.
  15152. Optional: Defaults to empty. See type description for default values of each field.
  15153. properties:
  15154. appArmorProfile:
  15155. description: |-
  15156. appArmorProfile is the AppArmor options to use by the containers in this pod.
  15157. Note that this field cannot be set when spec.os.name is windows.
  15158. properties:
  15159. localhostProfile:
  15160. description: |-
  15161. localhostProfile indicates a profile loaded on the node that should be used.
  15162. The profile must be preconfigured on the node to work.
  15163. Must match the loaded name of the profile.
  15164. Must be set if and only if type is "Localhost".
  15165. type: string
  15166. type:
  15167. description: |-
  15168. type indicates which kind of AppArmor profile will be applied.
  15169. Valid options are:
  15170. Localhost - a profile pre-loaded on the node.
  15171. RuntimeDefault - the container runtime's default profile.
  15172. Unconfined - no AppArmor enforcement.
  15173. type: string
  15174. required:
  15175. - type
  15176. type: object
  15177. fsGroup:
  15178. description: |-
  15179. A special supplemental group that applies to all containers in a pod.
  15180. Some volume types allow the Kubelet to change the ownership of that volume
  15181. to be owned by the pod:
  15182. 1. The owning GID will be the FSGroup
  15183. 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
  15184. 3. The permission bits are OR'd with rw-rw----
  15185. If unset, the Kubelet will not modify the ownership and permissions of any volume.
  15186. Note that this field cannot be set when spec.os.name is windows.
  15187. format: int64
  15188. type: integer
  15189. fsGroupChangePolicy:
  15190. description: |-
  15191. fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
  15192. before being exposed inside Pod. This field will only apply to
  15193. volume types which support fsGroup based ownership(and permissions).
  15194. It will have no effect on ephemeral volume types such as: secret, configmaps
  15195. and emptydir.
  15196. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
  15197. Note that this field cannot be set when spec.os.name is windows.
  15198. type: string
  15199. runAsGroup:
  15200. description: |-
  15201. The GID to run the entrypoint of the container process.
  15202. Uses runtime default if unset.
  15203. May also be set in SecurityContext. If set in both SecurityContext and
  15204. PodSecurityContext, the value specified in SecurityContext takes precedence
  15205. for that container.
  15206. Note that this field cannot be set when spec.os.name is windows.
  15207. format: int64
  15208. type: integer
  15209. runAsNonRoot:
  15210. description: |-
  15211. Indicates that the container must run as a non-root user.
  15212. If true, the Kubelet will validate the image at runtime to ensure that it
  15213. does not run as UID 0 (root) and fail to start the container if it does.
  15214. If unset or false, no such validation will be performed.
  15215. May also be set in SecurityContext. If set in both SecurityContext and
  15216. PodSecurityContext, the value specified in SecurityContext takes precedence.
  15217. type: boolean
  15218. runAsUser:
  15219. description: |-
  15220. The UID to run the entrypoint of the container process.
  15221. Defaults to user specified in image metadata if unspecified.
  15222. May also be set in SecurityContext. If set in both SecurityContext and
  15223. PodSecurityContext, the value specified in SecurityContext takes precedence
  15224. for that container.
  15225. Note that this field cannot be set when spec.os.name is windows.
  15226. format: int64
  15227. type: integer
  15228. seLinuxChangePolicy:
  15229. description: |-
  15230. seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
  15231. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
  15232. Valid values are "MountOption" and "Recursive".
  15233. "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
  15234. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
  15235. "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
  15236. This requires all Pods that share the same volume to use the same SELinux label.
  15237. It is not possible to share the same volume among privileged and unprivileged Pods.
  15238. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
  15239. whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
  15240. CSIDriver instance. Other volumes are always re-labelled recursively.
  15241. "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
  15242. If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
  15243. If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
  15244. and "Recursive" for all other volumes.
  15245. This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
  15246. All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
  15247. Note that this field cannot be set when spec.os.name is windows.
  15248. type: string
  15249. seLinuxOptions:
  15250. description: |-
  15251. The SELinux context to be applied to all containers.
  15252. If unspecified, the container runtime will allocate a random SELinux context for each
  15253. container. May also be set in SecurityContext. If set in
  15254. both SecurityContext and PodSecurityContext, the value specified in SecurityContext
  15255. takes precedence for that container.
  15256. Note that this field cannot be set when spec.os.name is windows.
  15257. properties:
  15258. level:
  15259. description: Level is SELinux level label that applies
  15260. to the container.
  15261. type: string
  15262. role:
  15263. description: Role is a SELinux role label that applies
  15264. to the container.
  15265. type: string
  15266. type:
  15267. description: Type is a SELinux type label that applies
  15268. to the container.
  15269. type: string
  15270. user:
  15271. description: User is a SELinux user label that applies
  15272. to the container.
  15273. type: string
  15274. type: object
  15275. seccompProfile:
  15276. description: |-
  15277. The seccomp options to use by the containers in this pod.
  15278. Note that this field cannot be set when spec.os.name is windows.
  15279. properties:
  15280. localhostProfile:
  15281. description: |-
  15282. localhostProfile indicates a profile defined in a file on the node should be used.
  15283. The profile must be preconfigured on the node to work.
  15284. Must be a descending path, relative to the kubelet's configured seccomp profile location.
  15285. Must be set if type is "Localhost". Must NOT be set for any other type.
  15286. type: string
  15287. type:
  15288. description: |-
  15289. type indicates which kind of seccomp profile will be applied.
  15290. Valid options are:
  15291. Localhost - a profile defined in a file on the node should be used.
  15292. RuntimeDefault - the container runtime default profile should be used.
  15293. Unconfined - no profile should be applied.
  15294. type: string
  15295. required:
  15296. - type
  15297. type: object
  15298. supplementalGroups:
  15299. description: |-
  15300. A list of groups applied to the first process run in each container, in
  15301. addition to the container's primary GID and fsGroup (if specified). If
  15302. the SupplementalGroupsPolicy feature is enabled, the
  15303. supplementalGroupsPolicy field determines whether these are in addition
  15304. to or instead of any group memberships defined in the container image.
  15305. If unspecified, no additional groups are added, though group memberships
  15306. defined in the container image may still be used, depending on the
  15307. supplementalGroupsPolicy field.
  15308. Note that this field cannot be set when spec.os.name is windows.
  15309. items:
  15310. format: int64
  15311. type: integer
  15312. type: array
  15313. x-kubernetes-list-type: atomic
  15314. supplementalGroupsPolicy:
  15315. description: |-
  15316. Defines how supplemental groups of the first container processes are calculated.
  15317. Valid values are "Merge" and "Strict". If not specified, "Merge" is used.
  15318. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled
  15319. and the container runtime must implement support for this feature.
  15320. Note that this field cannot be set when spec.os.name is windows.
  15321. type: string
  15322. sysctls:
  15323. description: |-
  15324. Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
  15325. sysctls (by the container runtime) might fail to launch.
  15326. Note that this field cannot be set when spec.os.name is windows.
  15327. items:
  15328. description: Sysctl defines a kernel parameter to be
  15329. set
  15330. properties:
  15331. name:
  15332. description: Name of a property to set
  15333. type: string
  15334. value:
  15335. description: Value of a property to set
  15336. type: string
  15337. required:
  15338. - name
  15339. - value
  15340. type: object
  15341. type: array
  15342. x-kubernetes-list-type: atomic
  15343. windowsOptions:
  15344. description: |-
  15345. The Windows specific settings applied to all containers.
  15346. If unspecified, the options within a container's SecurityContext will be used.
  15347. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  15348. Note that this field cannot be set when spec.os.name is linux.
  15349. properties:
  15350. gmsaCredentialSpec:
  15351. description: |-
  15352. GMSACredentialSpec is where the GMSA admission webhook
  15353. (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
  15354. GMSA credential spec named by the GMSACredentialSpecName field.
  15355. type: string
  15356. gmsaCredentialSpecName:
  15357. description: GMSACredentialSpecName is the name of
  15358. the GMSA credential spec to use.
  15359. type: string
  15360. hostProcess:
  15361. description: |-
  15362. HostProcess determines if a container should be run as a 'Host Process' container.
  15363. All of a Pod's containers must have the same effective HostProcess value
  15364. (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
  15365. In addition, if HostProcess is true then HostNetwork must also be set to true.
  15366. type: boolean
  15367. runAsUserName:
  15368. description: |-
  15369. The UserName in Windows to run the entrypoint of the container process.
  15370. Defaults to the user specified in image metadata if unspecified.
  15371. May also be set in PodSecurityContext. If set in both SecurityContext and
  15372. PodSecurityContext, the value specified in SecurityContext takes precedence.
  15373. type: string
  15374. type: object
  15375. type: object
  15376. serviceAccount:
  15377. description: |-
  15378. DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.
  15379. Deprecated: Use serviceAccountName instead.
  15380. type: string
  15381. serviceAccountName:
  15382. description: |-
  15383. ServiceAccountName is the name of the ServiceAccount to use to run this pod.
  15384. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  15385. type: string
  15386. setHostnameAsFQDN:
  15387. description: |-
  15388. If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
  15389. In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
  15390. In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
  15391. If a pod does not have FQDN, this has no effect.
  15392. Default to false.
  15393. type: boolean
  15394. shareProcessNamespace:
  15395. description: |-
  15396. Share a single process namespace between all of the containers in a pod.
  15397. When this is set containers will be able to view and signal processes from other containers
  15398. in the same pod, and the first process in each container will not be assigned PID 1.
  15399. HostPID and ShareProcessNamespace cannot both be set.
  15400. Optional: Default to false.
  15401. type: boolean
  15402. subdomain:
  15403. description: |-
  15404. If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
  15405. If not specified, the pod will not have a domainname at all.
  15406. type: string
  15407. terminationGracePeriodSeconds:
  15408. description: |-
  15409. Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
  15410. Value must be non-negative integer. The value zero indicates stop immediately via
  15411. the kill signal (no opportunity to shut down).
  15412. If this value is nil, the default grace period will be used instead.
  15413. The grace period is the duration in seconds after the processes running in the pod are sent
  15414. a termination signal and the time when the processes are forcibly halted with a kill signal.
  15415. Set this value longer than the expected cleanup time for your process.
  15416. Defaults to 30 seconds.
  15417. format: int64
  15418. type: integer
  15419. tolerations:
  15420. description: If specified, the pod's tolerations.
  15421. items:
  15422. description: |-
  15423. The pod this Toleration is attached to tolerates any taint that matches
  15424. the triple <key,value,effect> using the matching operator <operator>.
  15425. properties:
  15426. effect:
  15427. description: |-
  15428. Effect indicates the taint effect to match. Empty means match all taint effects.
  15429. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  15430. type: string
  15431. key:
  15432. description: |-
  15433. Key is the taint key that the toleration applies to. Empty means match all taint keys.
  15434. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  15435. type: string
  15436. operator:
  15437. description: |-
  15438. Operator represents a key's relationship to the value.
  15439. Valid operators are Exists and Equal. Defaults to Equal.
  15440. Exists is equivalent to wildcard for value, so that a pod can
  15441. tolerate all taints of a particular category.
  15442. type: string
  15443. tolerationSeconds:
  15444. description: |-
  15445. TolerationSeconds represents the period of time the toleration (which must be
  15446. of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
  15447. it is not set, which means tolerate the taint forever (do not evict). Zero and
  15448. negative values will be treated as 0 (evict immediately) by the system.
  15449. format: int64
  15450. type: integer
  15451. value:
  15452. description: |-
  15453. Value is the taint value the toleration matches to.
  15454. If the operator is Exists, the value should be empty, otherwise just a regular string.
  15455. type: string
  15456. type: object
  15457. type: array
  15458. x-kubernetes-list-type: atomic
  15459. topologySpreadConstraints:
  15460. description: |-
  15461. TopologySpreadConstraints describes how a group of pods ought to spread across topology
  15462. domains. Scheduler will schedule pods in a way which abides by the constraints.
  15463. All topologySpreadConstraints are ANDed.
  15464. items:
  15465. description: TopologySpreadConstraint specifies how to spread
  15466. matching pods among the given topology.
  15467. properties:
  15468. labelSelector:
  15469. description: |-
  15470. LabelSelector is used to find matching pods.
  15471. Pods that match this label selector are counted to determine the number of pods
  15472. in their corresponding topology domain.
  15473. properties:
  15474. matchExpressions:
  15475. description: matchExpressions is a list of label
  15476. selector requirements. The requirements are ANDed.
  15477. items:
  15478. description: |-
  15479. A label selector requirement is a selector that contains values, a key, and an operator that
  15480. relates the key and values.
  15481. properties:
  15482. key:
  15483. description: key is the label key that the
  15484. selector applies to.
  15485. type: string
  15486. operator:
  15487. description: |-
  15488. operator represents a key's relationship to a set of values.
  15489. Valid operators are In, NotIn, Exists and DoesNotExist.
  15490. type: string
  15491. values:
  15492. description: |-
  15493. values is an array of string values. If the operator is In or NotIn,
  15494. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  15495. the values array must be empty. This array is replaced during a strategic
  15496. merge patch.
  15497. items:
  15498. type: string
  15499. type: array
  15500. x-kubernetes-list-type: atomic
  15501. required:
  15502. - key
  15503. - operator
  15504. type: object
  15505. type: array
  15506. x-kubernetes-list-type: atomic
  15507. matchLabels:
  15508. additionalProperties:
  15509. type: string
  15510. description: |-
  15511. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  15512. map is equivalent to an element of matchExpressions, whose key field is "key", the
  15513. operator is "In", and the values array contains only "value". The requirements are ANDed.
  15514. type: object
  15515. type: object
  15516. x-kubernetes-map-type: atomic
  15517. matchLabelKeys:
  15518. description: |-
  15519. MatchLabelKeys is a set of pod label keys to select the pods over which
  15520. spreading will be calculated. The keys are used to lookup values from the
  15521. incoming pod labels, those key-value labels are ANDed with labelSelector
  15522. to select the group of existing pods over which spreading will be calculated
  15523. for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.
  15524. MatchLabelKeys cannot be set when LabelSelector isn't set.
  15525. Keys that don't exist in the incoming pod labels will
  15526. be ignored. A null or empty list means only match against labelSelector.
  15527. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
  15528. items:
  15529. type: string
  15530. type: array
  15531. x-kubernetes-list-type: atomic
  15532. maxSkew:
  15533. description: |-
  15534. MaxSkew describes the degree to which pods may be unevenly distributed.
  15535. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference
  15536. between the number of matching pods in the target topology and the global minimum.
  15537. The global minimum is the minimum number of matching pods in an eligible domain
  15538. or zero if the number of eligible domains is less than MinDomains.
  15539. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  15540. labelSelector spread as 2/2/1:
  15541. In this case, the global minimum is 1.
  15542. | zone1 | zone2 | zone3 |
  15543. | P P | P P | P |
  15544. - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;
  15545. scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)
  15546. violate MaxSkew(1).
  15547. - if MaxSkew is 2, incoming pod can be scheduled onto any zone.
  15548. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence
  15549. to topologies that satisfy it.
  15550. It's a required field. Default value is 1 and 0 is not allowed.
  15551. format: int32
  15552. type: integer
  15553. minDomains:
  15554. description: |-
  15555. MinDomains indicates a minimum number of eligible domains.
  15556. When the number of eligible domains with matching topology keys is less than minDomains,
  15557. Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed.
  15558. And when the number of eligible domains with matching topology keys equals or greater than minDomains,
  15559. this value has no effect on scheduling.
  15560. As a result, when the number of eligible domains is less than minDomains,
  15561. scheduler won't schedule more than maxSkew Pods to those domains.
  15562. If value is nil, the constraint behaves as if MinDomains is equal to 1.
  15563. Valid values are integers greater than 0.
  15564. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.
  15565. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same
  15566. labelSelector spread as 2/2/2:
  15567. | zone1 | zone2 | zone3 |
  15568. | P P | P P | P P |
  15569. The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0.
  15570. In this situation, new pod with the same labelSelector cannot be scheduled,
  15571. because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,
  15572. it will violate MaxSkew.
  15573. format: int32
  15574. type: integer
  15575. nodeAffinityPolicy:
  15576. description: |-
  15577. NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
  15578. when calculating pod topology spread skew. Options are:
  15579. - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  15580. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.
  15581. If this value is nil, the behavior is equivalent to the Honor policy.
  15582. type: string
  15583. nodeTaintsPolicy:
  15584. description: |-
  15585. NodeTaintsPolicy indicates how we will treat node taints when calculating
  15586. pod topology spread skew. Options are:
  15587. - Honor: nodes without taints, along with tainted nodes for which the incoming pod
  15588. has a toleration, are included.
  15589. - Ignore: node taints are ignored. All nodes are included.
  15590. If this value is nil, the behavior is equivalent to the Ignore policy.
  15591. type: string
  15592. topologyKey:
  15593. description: |-
  15594. TopologyKey is the key of node labels. Nodes that have a label with this key
  15595. and identical values are considered to be in the same topology.
  15596. We consider each <key, value> as a "bucket", and try to put balanced number
  15597. of pods into each bucket.
  15598. We define a domain as a particular instance of a topology.
  15599. Also, we define an eligible domain as a domain whose nodes meet the requirements of
  15600. nodeAffinityPolicy and nodeTaintsPolicy.
  15601. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology.
  15602. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology.
  15603. It's a required field.
  15604. type: string
  15605. whenUnsatisfiable:
  15606. description: |-
  15607. WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy
  15608. the spread constraint.
  15609. - DoNotSchedule (default) tells the scheduler not to schedule it.
  15610. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
  15611. but giving higher precedence to topologies that would help reduce the
  15612. skew.
  15613. A constraint is considered "Unsatisfiable" for an incoming pod
  15614. if and only if every possible node assignment for that pod would violate
  15615. "MaxSkew" on some topology.
  15616. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same
  15617. labelSelector spread as 3/1/1:
  15618. | zone1 | zone2 | zone3 |
  15619. | P P P | P | P |
  15620. If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled
  15621. to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies
  15622. MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler
  15623. won't make it *more* imbalanced.
  15624. It's a required field.
  15625. type: string
  15626. required:
  15627. - maxSkew
  15628. - topologyKey
  15629. - whenUnsatisfiable
  15630. type: object
  15631. type: array
  15632. x-kubernetes-list-map-keys:
  15633. - topologyKey
  15634. - whenUnsatisfiable
  15635. x-kubernetes-list-type: map
  15636. volumes:
  15637. description: |-
  15638. List of volumes that can be mounted by containers belonging to the pod.
  15639. More info: https://kubernetes.io/docs/concepts/storage/volumes
  15640. items:
  15641. description: Volume represents a named volume in a pod that
  15642. may be accessed by any container in the pod.
  15643. properties:
  15644. awsElasticBlockStore:
  15645. description: |-
  15646. awsElasticBlockStore represents an AWS Disk resource that is attached to a
  15647. kubelet's host machine and then exposed to the pod.
  15648. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
  15649. awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
  15650. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  15651. properties:
  15652. fsType:
  15653. description: |-
  15654. fsType is the filesystem type of the volume that you want to mount.
  15655. Tip: Ensure that the filesystem type is supported by the host operating system.
  15656. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  15657. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  15658. type: string
  15659. partition:
  15660. description: |-
  15661. partition is the partition in the volume that you want to mount.
  15662. If omitted, the default is to mount by volume name.
  15663. Examples: For volume /dev/sda1, you specify the partition as "1".
  15664. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  15665. format: int32
  15666. type: integer
  15667. readOnly:
  15668. description: |-
  15669. readOnly value true will force the readOnly setting in VolumeMounts.
  15670. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  15671. type: boolean
  15672. volumeID:
  15673. description: |-
  15674. volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).
  15675. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  15676. type: string
  15677. required:
  15678. - volumeID
  15679. type: object
  15680. azureDisk:
  15681. description: |-
  15682. azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
  15683. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
  15684. are redirected to the disk.csi.azure.com CSI driver.
  15685. properties:
  15686. cachingMode:
  15687. description: 'cachingMode is the Host Caching mode:
  15688. None, Read Only, Read Write.'
  15689. type: string
  15690. diskName:
  15691. description: diskName is the Name of the data disk
  15692. in the blob storage
  15693. type: string
  15694. diskURI:
  15695. description: diskURI is the URI of data disk in
  15696. the blob storage
  15697. type: string
  15698. fsType:
  15699. default: ext4
  15700. description: |-
  15701. fsType is Filesystem type to mount.
  15702. Must be a filesystem type supported by the host operating system.
  15703. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  15704. type: string
  15705. kind:
  15706. description: 'kind expected values are Shared: multiple
  15707. blob disks per storage account Dedicated: single
  15708. blob disk per storage account Managed: azure
  15709. managed data disk (only in managed availability
  15710. set). defaults to shared'
  15711. type: string
  15712. readOnly:
  15713. default: false
  15714. description: |-
  15715. readOnly Defaults to false (read/write). ReadOnly here will force
  15716. the ReadOnly setting in VolumeMounts.
  15717. type: boolean
  15718. required:
  15719. - diskName
  15720. - diskURI
  15721. type: object
  15722. azureFile:
  15723. description: |-
  15724. azureFile represents an Azure File Service mount on the host and bind mount to the pod.
  15725. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
  15726. are redirected to the file.csi.azure.com CSI driver.
  15727. properties:
  15728. readOnly:
  15729. description: |-
  15730. readOnly defaults to false (read/write). ReadOnly here will force
  15731. the ReadOnly setting in VolumeMounts.
  15732. type: boolean
  15733. secretName:
  15734. description: secretName is the name of secret that
  15735. contains Azure Storage Account Name and Key
  15736. type: string
  15737. shareName:
  15738. description: shareName is the azure share Name
  15739. type: string
  15740. required:
  15741. - secretName
  15742. - shareName
  15743. type: object
  15744. cephfs:
  15745. description: |-
  15746. cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
  15747. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
  15748. properties:
  15749. monitors:
  15750. description: |-
  15751. monitors is Required: Monitors is a collection of Ceph monitors
  15752. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  15753. items:
  15754. type: string
  15755. type: array
  15756. x-kubernetes-list-type: atomic
  15757. path:
  15758. description: 'path is Optional: Used as the mounted
  15759. root, rather than the full Ceph tree, default
  15760. is /'
  15761. type: string
  15762. readOnly:
  15763. description: |-
  15764. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  15765. the ReadOnly setting in VolumeMounts.
  15766. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  15767. type: boolean
  15768. secretFile:
  15769. description: |-
  15770. secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
  15771. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  15772. type: string
  15773. secretRef:
  15774. description: |-
  15775. secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.
  15776. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  15777. properties:
  15778. name:
  15779. default: ""
  15780. description: |-
  15781. Name of the referent.
  15782. This field is effectively required, but due to backwards compatibility is
  15783. allowed to be empty. Instances of this type with an empty value here are
  15784. almost certainly wrong.
  15785. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  15786. type: string
  15787. type: object
  15788. x-kubernetes-map-type: atomic
  15789. user:
  15790. description: |-
  15791. user is optional: User is the rados user name, default is admin
  15792. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  15793. type: string
  15794. required:
  15795. - monitors
  15796. type: object
  15797. cinder:
  15798. description: |-
  15799. cinder represents a cinder volume attached and mounted on kubelets host machine.
  15800. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
  15801. are redirected to the cinder.csi.openstack.org CSI driver.
  15802. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  15803. properties:
  15804. fsType:
  15805. description: |-
  15806. fsType is the filesystem type to mount.
  15807. Must be a filesystem type supported by the host operating system.
  15808. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  15809. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  15810. type: string
  15811. readOnly:
  15812. description: |-
  15813. readOnly defaults to false (read/write). ReadOnly here will force
  15814. the ReadOnly setting in VolumeMounts.
  15815. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  15816. type: boolean
  15817. secretRef:
  15818. description: |-
  15819. secretRef is optional: points to a secret object containing parameters used to connect
  15820. to OpenStack.
  15821. properties:
  15822. name:
  15823. default: ""
  15824. description: |-
  15825. Name of the referent.
  15826. This field is effectively required, but due to backwards compatibility is
  15827. allowed to be empty. Instances of this type with an empty value here are
  15828. almost certainly wrong.
  15829. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  15830. type: string
  15831. type: object
  15832. x-kubernetes-map-type: atomic
  15833. volumeID:
  15834. description: |-
  15835. volumeID used to identify the volume in cinder.
  15836. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  15837. type: string
  15838. required:
  15839. - volumeID
  15840. type: object
  15841. configMap:
  15842. description: configMap represents a configMap that should
  15843. populate this volume
  15844. properties:
  15845. defaultMode:
  15846. description: |-
  15847. defaultMode is optional: mode bits used to set permissions on created files by default.
  15848. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  15849. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  15850. Defaults to 0644.
  15851. Directories within the path are not affected by this setting.
  15852. This might be in conflict with other options that affect the file
  15853. mode, like fsGroup, and the result can be other mode bits set.
  15854. format: int32
  15855. type: integer
  15856. items:
  15857. description: |-
  15858. items if unspecified, each key-value pair in the Data field of the referenced
  15859. ConfigMap will be projected into the volume as a file whose name is the
  15860. key and content is the value. If specified, the listed keys will be
  15861. projected into the specified paths, and unlisted keys will not be
  15862. present. If a key is specified which is not present in the ConfigMap,
  15863. the volume setup will error unless it is marked optional. Paths must be
  15864. relative and may not contain the '..' path or start with '..'.
  15865. items:
  15866. description: Maps a string key to a path within
  15867. a volume.
  15868. properties:
  15869. key:
  15870. description: key is the key to project.
  15871. type: string
  15872. mode:
  15873. description: |-
  15874. mode is Optional: mode bits used to set permissions on this file.
  15875. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  15876. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  15877. If not specified, the volume defaultMode will be used.
  15878. This might be in conflict with other options that affect the file
  15879. mode, like fsGroup, and the result can be other mode bits set.
  15880. format: int32
  15881. type: integer
  15882. path:
  15883. description: |-
  15884. path is the relative path of the file to map the key to.
  15885. May not be an absolute path.
  15886. May not contain the path element '..'.
  15887. May not start with the string '..'.
  15888. type: string
  15889. required:
  15890. - key
  15891. - path
  15892. type: object
  15893. type: array
  15894. x-kubernetes-list-type: atomic
  15895. name:
  15896. default: ""
  15897. description: |-
  15898. Name of the referent.
  15899. This field is effectively required, but due to backwards compatibility is
  15900. allowed to be empty. Instances of this type with an empty value here are
  15901. almost certainly wrong.
  15902. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  15903. type: string
  15904. optional:
  15905. description: optional specify whether the ConfigMap
  15906. or its keys must be defined
  15907. type: boolean
  15908. type: object
  15909. x-kubernetes-map-type: atomic
  15910. csi:
  15911. description: csi (Container Storage Interface) represents
  15912. ephemeral storage that is handled by certain external
  15913. CSI drivers.
  15914. properties:
  15915. driver:
  15916. description: |-
  15917. driver is the name of the CSI driver that handles this volume.
  15918. Consult with your admin for the correct name as registered in the cluster.
  15919. type: string
  15920. fsType:
  15921. description: |-
  15922. fsType to mount. Ex. "ext4", "xfs", "ntfs".
  15923. If not provided, the empty value is passed to the associated CSI driver
  15924. which will determine the default filesystem to apply.
  15925. type: string
  15926. nodePublishSecretRef:
  15927. description: |-
  15928. nodePublishSecretRef is a reference to the secret object containing
  15929. sensitive information to pass to the CSI driver to complete the CSI
  15930. NodePublishVolume and NodeUnpublishVolume calls.
  15931. This field is optional, and may be empty if no secret is required. If the
  15932. secret object contains more than one secret, all secret references are passed.
  15933. properties:
  15934. name:
  15935. default: ""
  15936. description: |-
  15937. Name of the referent.
  15938. This field is effectively required, but due to backwards compatibility is
  15939. allowed to be empty. Instances of this type with an empty value here are
  15940. almost certainly wrong.
  15941. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  15942. type: string
  15943. type: object
  15944. x-kubernetes-map-type: atomic
  15945. readOnly:
  15946. description: |-
  15947. readOnly specifies a read-only configuration for the volume.
  15948. Defaults to false (read/write).
  15949. type: boolean
  15950. volumeAttributes:
  15951. additionalProperties:
  15952. type: string
  15953. description: |-
  15954. volumeAttributes stores driver-specific properties that are passed to the CSI
  15955. driver. Consult your driver's documentation for supported values.
  15956. type: object
  15957. required:
  15958. - driver
  15959. type: object
  15960. downwardAPI:
  15961. description: downwardAPI represents downward API about
  15962. the pod that should populate this volume
  15963. properties:
  15964. defaultMode:
  15965. description: |-
  15966. Optional: mode bits to use on created files by default. Must be a
  15967. Optional: mode bits used to set permissions on created files by default.
  15968. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  15969. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  15970. Defaults to 0644.
  15971. Directories within the path are not affected by this setting.
  15972. This might be in conflict with other options that affect the file
  15973. mode, like fsGroup, and the result can be other mode bits set.
  15974. format: int32
  15975. type: integer
  15976. items:
  15977. description: Items is a list of downward API volume
  15978. file
  15979. items:
  15980. description: DownwardAPIVolumeFile represents
  15981. information to create the file containing the
  15982. pod field
  15983. properties:
  15984. fieldRef:
  15985. description: 'Required: Selects a field of
  15986. the pod: only annotations, labels, name,
  15987. namespace and uid are supported.'
  15988. properties:
  15989. apiVersion:
  15990. description: Version of the schema the
  15991. FieldPath is written in terms of, defaults
  15992. to "v1".
  15993. type: string
  15994. fieldPath:
  15995. description: Path of the field to select
  15996. in the specified API version.
  15997. type: string
  15998. required:
  15999. - fieldPath
  16000. type: object
  16001. x-kubernetes-map-type: atomic
  16002. mode:
  16003. description: |-
  16004. Optional: mode bits used to set permissions on this file, must be an octal value
  16005. between 0000 and 0777 or a decimal value between 0 and 511.
  16006. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16007. If not specified, the volume defaultMode will be used.
  16008. This might be in conflict with other options that affect the file
  16009. mode, like fsGroup, and the result can be other mode bits set.
  16010. format: int32
  16011. type: integer
  16012. path:
  16013. description: 'Required: Path is the relative
  16014. path name of the file to be created. Must
  16015. not be absolute or contain the ''..'' path.
  16016. Must be utf-8 encoded. The first item of
  16017. the relative path must not start with ''..'''
  16018. type: string
  16019. resourceFieldRef:
  16020. description: |-
  16021. Selects a resource of the container: only resources limits and requests
  16022. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  16023. properties:
  16024. containerName:
  16025. description: 'Container name: required
  16026. for volumes, optional for env vars'
  16027. type: string
  16028. divisor:
  16029. anyOf:
  16030. - type: integer
  16031. - type: string
  16032. description: Specifies the output format
  16033. of the exposed resources, defaults to
  16034. "1"
  16035. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16036. x-kubernetes-int-or-string: true
  16037. resource:
  16038. description: 'Required: resource to select'
  16039. type: string
  16040. required:
  16041. - resource
  16042. type: object
  16043. x-kubernetes-map-type: atomic
  16044. required:
  16045. - path
  16046. type: object
  16047. type: array
  16048. x-kubernetes-list-type: atomic
  16049. type: object
  16050. emptyDir:
  16051. description: |-
  16052. emptyDir represents a temporary directory that shares a pod's lifetime.
  16053. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  16054. properties:
  16055. medium:
  16056. description: |-
  16057. medium represents what type of storage medium should back this directory.
  16058. The default is "" which means to use the node's default medium.
  16059. Must be an empty string (default) or Memory.
  16060. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  16061. type: string
  16062. sizeLimit:
  16063. anyOf:
  16064. - type: integer
  16065. - type: string
  16066. description: |-
  16067. sizeLimit is the total amount of local storage required for this EmptyDir volume.
  16068. The size limit is also applicable for memory medium.
  16069. The maximum usage on memory medium EmptyDir would be the minimum value between
  16070. the SizeLimit specified here and the sum of memory limits of all containers in a pod.
  16071. The default is nil which means that the limit is undefined.
  16072. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  16073. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16074. x-kubernetes-int-or-string: true
  16075. type: object
  16076. ephemeral:
  16077. description: |-
  16078. ephemeral represents a volume that is handled by a cluster storage driver.
  16079. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,
  16080. and deleted when the pod is removed.
  16081. Use this if:
  16082. a) the volume is only needed while the pod runs,
  16083. b) features of normal volumes like restoring from snapshot or capacity
  16084. tracking are needed,
  16085. c) the storage driver is specified through a storage class, and
  16086. d) the storage driver supports dynamic volume provisioning through
  16087. a PersistentVolumeClaim (see EphemeralVolumeSource for more
  16088. information on the connection between this volume type
  16089. and PersistentVolumeClaim).
  16090. Use PersistentVolumeClaim or one of the vendor-specific
  16091. APIs for volumes that persist for longer than the lifecycle
  16092. of an individual pod.
  16093. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
  16094. be used that way - see the documentation of the driver for
  16095. more information.
  16096. A pod can use both types of ephemeral volumes and
  16097. persistent volumes at the same time.
  16098. properties:
  16099. volumeClaimTemplate:
  16100. description: |-
  16101. Will be used to create a stand-alone PVC to provision the volume.
  16102. The pod in which this EphemeralVolumeSource is embedded will be the
  16103. owner of the PVC, i.e. the PVC will be deleted together with the
  16104. pod. The name of the PVC will be `<pod name>-<volume name>` where
  16105. `<volume name>` is the name from the `PodSpec.Volumes` array
  16106. entry. Pod validation will reject the pod if the concatenated name
  16107. is not valid for a PVC (for example, too long).
  16108. An existing PVC with that name that is not owned by the pod
  16109. will *not* be used for the pod to avoid using an unrelated
  16110. volume by mistake. Starting the pod is then blocked until
  16111. the unrelated PVC is removed. If such a pre-created PVC is
  16112. meant to be used by the pod, the PVC has to updated with an
  16113. owner reference to the pod once the pod exists. Normally
  16114. this should not be necessary, but it may be useful when
  16115. manually reconstructing a broken cluster.
  16116. This field is read-only and no changes will be made by Kubernetes
  16117. to the PVC after it has been created.
  16118. Required, must not be nil.
  16119. properties:
  16120. metadata:
  16121. description: |-
  16122. May contain labels and annotations that will be copied into the PVC
  16123. when creating it. No other fields are allowed and will be rejected during
  16124. validation.
  16125. type: object
  16126. spec:
  16127. description: |-
  16128. The specification for the PersistentVolumeClaim. The entire content is
  16129. copied unchanged into the PVC that gets created from this
  16130. template. The same fields as in a PersistentVolumeClaim
  16131. are also valid here.
  16132. properties:
  16133. accessModes:
  16134. description: |-
  16135. accessModes contains the desired access modes the volume should have.
  16136. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  16137. items:
  16138. type: string
  16139. type: array
  16140. x-kubernetes-list-type: atomic
  16141. dataSource:
  16142. description: |-
  16143. dataSource field can be used to specify either:
  16144. * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  16145. * An existing PVC (PersistentVolumeClaim)
  16146. If the provisioner or an external controller can support the specified data source,
  16147. it will create a new volume based on the contents of the specified data source.
  16148. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
  16149. and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
  16150. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
  16151. properties:
  16152. apiGroup:
  16153. description: |-
  16154. APIGroup is the group for the resource being referenced.
  16155. If APIGroup is not specified, the specified Kind must be in the core API group.
  16156. For any other third-party types, APIGroup is required.
  16157. type: string
  16158. kind:
  16159. description: Kind is the type of resource
  16160. being referenced
  16161. type: string
  16162. name:
  16163. description: Name is the name of resource
  16164. being referenced
  16165. type: string
  16166. required:
  16167. - kind
  16168. - name
  16169. type: object
  16170. x-kubernetes-map-type: atomic
  16171. dataSourceRef:
  16172. description: |-
  16173. dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
  16174. volume is desired. This may be any object from a non-empty API group (non
  16175. core object) or a PersistentVolumeClaim object.
  16176. When this field is specified, volume binding will only succeed if the type of
  16177. the specified object matches some installed volume populator or dynamic
  16178. provisioner.
  16179. This field will replace the functionality of the dataSource field and as such
  16180. if both fields are non-empty, they must have the same value. For backwards
  16181. compatibility, when namespace isn't specified in dataSourceRef,
  16182. both fields (dataSource and dataSourceRef) will be set to the same
  16183. value automatically if one of them is empty and the other is non-empty.
  16184. When namespace is specified in dataSourceRef,
  16185. dataSource isn't set to the same value and must be empty.
  16186. There are three important differences between dataSource and dataSourceRef:
  16187. * While dataSource only allows two specific types of objects, dataSourceRef
  16188. allows any non-core object, as well as PersistentVolumeClaim objects.
  16189. * While dataSource ignores disallowed values (dropping them), dataSourceRef
  16190. preserves all values, and generates an error if a disallowed value is
  16191. specified.
  16192. * While dataSource only allows local objects, dataSourceRef allows objects
  16193. in any namespaces.
  16194. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
  16195. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  16196. properties:
  16197. apiGroup:
  16198. description: |-
  16199. APIGroup is the group for the resource being referenced.
  16200. If APIGroup is not specified, the specified Kind must be in the core API group.
  16201. For any other third-party types, APIGroup is required.
  16202. type: string
  16203. kind:
  16204. description: Kind is the type of resource
  16205. being referenced
  16206. type: string
  16207. name:
  16208. description: Name is the name of resource
  16209. being referenced
  16210. type: string
  16211. namespace:
  16212. description: |-
  16213. Namespace is the namespace of resource being referenced
  16214. 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.
  16215. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
  16216. type: string
  16217. required:
  16218. - kind
  16219. - name
  16220. type: object
  16221. resources:
  16222. description: |-
  16223. resources represents the minimum resources the volume should have.
  16224. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
  16225. that are lower than previous value but must still be higher than capacity recorded in the
  16226. status field of the claim.
  16227. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
  16228. properties:
  16229. limits:
  16230. additionalProperties:
  16231. anyOf:
  16232. - type: integer
  16233. - type: string
  16234. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16235. x-kubernetes-int-or-string: true
  16236. description: |-
  16237. Limits describes the maximum amount of compute resources allowed.
  16238. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  16239. type: object
  16240. requests:
  16241. additionalProperties:
  16242. anyOf:
  16243. - type: integer
  16244. - type: string
  16245. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16246. x-kubernetes-int-or-string: true
  16247. description: |-
  16248. Requests describes the minimum amount of compute resources required.
  16249. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
  16250. otherwise to an implementation-defined value. Requests cannot exceed Limits.
  16251. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
  16252. type: object
  16253. type: object
  16254. selector:
  16255. description: selector is a label query over
  16256. volumes to consider for binding.
  16257. properties:
  16258. matchExpressions:
  16259. description: matchExpressions is a list
  16260. of label selector requirements. The
  16261. requirements are ANDed.
  16262. items:
  16263. description: |-
  16264. A label selector requirement is a selector that contains values, a key, and an operator that
  16265. relates the key and values.
  16266. properties:
  16267. key:
  16268. description: key is the label
  16269. key that the selector applies
  16270. to.
  16271. type: string
  16272. operator:
  16273. description: |-
  16274. operator represents a key's relationship to a set of values.
  16275. Valid operators are In, NotIn, Exists and DoesNotExist.
  16276. type: string
  16277. values:
  16278. description: |-
  16279. values is an array of string values. If the operator is In or NotIn,
  16280. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  16281. the values array must be empty. This array is replaced during a strategic
  16282. merge patch.
  16283. items:
  16284. type: string
  16285. type: array
  16286. x-kubernetes-list-type: atomic
  16287. required:
  16288. - key
  16289. - operator
  16290. type: object
  16291. type: array
  16292. x-kubernetes-list-type: atomic
  16293. matchLabels:
  16294. additionalProperties:
  16295. type: string
  16296. description: |-
  16297. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  16298. map is equivalent to an element of matchExpressions, whose key field is "key", the
  16299. operator is "In", and the values array contains only "value". The requirements are ANDed.
  16300. type: object
  16301. type: object
  16302. x-kubernetes-map-type: atomic
  16303. storageClassName:
  16304. description: |-
  16305. storageClassName is the name of the StorageClass required by the claim.
  16306. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  16307. type: string
  16308. volumeAttributesClassName:
  16309. description: |-
  16310. volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
  16311. If specified, the CSI driver will create or update the volume with the attributes defined
  16312. in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
  16313. it can be changed after the claim is created. An empty string or nil value indicates that no
  16314. VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state,
  16315. this field can be reset to its previous value (including nil) to cancel the modification.
  16316. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
  16317. set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
  16318. exists.
  16319. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
  16320. type: string
  16321. volumeMode:
  16322. description: |-
  16323. volumeMode defines what type of volume is required by the claim.
  16324. Value of Filesystem is implied when not included in claim spec.
  16325. type: string
  16326. volumeName:
  16327. description: volumeName is the binding reference
  16328. to the PersistentVolume backing this claim.
  16329. type: string
  16330. type: object
  16331. required:
  16332. - spec
  16333. type: object
  16334. type: object
  16335. fc:
  16336. description: fc represents a Fibre Channel resource
  16337. that is attached to a kubelet's host machine and then
  16338. exposed to the pod.
  16339. properties:
  16340. fsType:
  16341. description: |-
  16342. fsType is the filesystem type to mount.
  16343. Must be a filesystem type supported by the host operating system.
  16344. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16345. type: string
  16346. lun:
  16347. description: 'lun is Optional: FC target lun number'
  16348. format: int32
  16349. type: integer
  16350. readOnly:
  16351. description: |-
  16352. readOnly is Optional: Defaults to false (read/write). ReadOnly here will force
  16353. the ReadOnly setting in VolumeMounts.
  16354. type: boolean
  16355. targetWWNs:
  16356. description: 'targetWWNs is Optional: FC target
  16357. worldwide names (WWNs)'
  16358. items:
  16359. type: string
  16360. type: array
  16361. x-kubernetes-list-type: atomic
  16362. wwids:
  16363. description: |-
  16364. wwids Optional: FC volume world wide identifiers (wwids)
  16365. Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  16366. items:
  16367. type: string
  16368. type: array
  16369. x-kubernetes-list-type: atomic
  16370. type: object
  16371. flexVolume:
  16372. description: |-
  16373. flexVolume represents a generic volume resource that is
  16374. provisioned/attached using an exec based plugin.
  16375. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
  16376. properties:
  16377. driver:
  16378. description: driver is the name of the driver to
  16379. use for this volume.
  16380. type: string
  16381. fsType:
  16382. description: |-
  16383. fsType is the filesystem type to mount.
  16384. Must be a filesystem type supported by the host operating system.
  16385. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
  16386. type: string
  16387. options:
  16388. additionalProperties:
  16389. type: string
  16390. description: 'options is Optional: this field holds
  16391. extra command options if any.'
  16392. type: object
  16393. readOnly:
  16394. description: |-
  16395. readOnly is Optional: defaults to false (read/write). ReadOnly here will force
  16396. the ReadOnly setting in VolumeMounts.
  16397. type: boolean
  16398. secretRef:
  16399. description: |-
  16400. secretRef is Optional: secretRef is reference to the secret object containing
  16401. sensitive information to pass to the plugin scripts. This may be
  16402. empty if no secret object is specified. If the secret object
  16403. contains more than one secret, all secrets are passed to the plugin
  16404. scripts.
  16405. properties:
  16406. name:
  16407. default: ""
  16408. description: |-
  16409. Name of the referent.
  16410. This field is effectively required, but due to backwards compatibility is
  16411. allowed to be empty. Instances of this type with an empty value here are
  16412. almost certainly wrong.
  16413. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16414. type: string
  16415. type: object
  16416. x-kubernetes-map-type: atomic
  16417. required:
  16418. - driver
  16419. type: object
  16420. flocker:
  16421. description: |-
  16422. flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
  16423. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
  16424. properties:
  16425. datasetName:
  16426. description: |-
  16427. datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
  16428. should be considered as deprecated
  16429. type: string
  16430. datasetUUID:
  16431. description: datasetUUID is the UUID of the dataset.
  16432. This is unique identifier of a Flocker dataset
  16433. type: string
  16434. type: object
  16435. gcePersistentDisk:
  16436. description: |-
  16437. gcePersistentDisk represents a GCE Disk resource that is attached to a
  16438. kubelet's host machine and then exposed to the pod.
  16439. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
  16440. gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
  16441. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  16442. properties:
  16443. fsType:
  16444. description: |-
  16445. fsType is filesystem type of the volume that you want to mount.
  16446. Tip: Ensure that the filesystem type is supported by the host operating system.
  16447. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16448. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  16449. type: string
  16450. partition:
  16451. description: |-
  16452. partition is the partition in the volume that you want to mount.
  16453. If omitted, the default is to mount by volume name.
  16454. Examples: For volume /dev/sda1, you specify the partition as "1".
  16455. Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
  16456. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  16457. format: int32
  16458. type: integer
  16459. pdName:
  16460. description: |-
  16461. pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.
  16462. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  16463. type: string
  16464. readOnly:
  16465. description: |-
  16466. readOnly here will force the ReadOnly setting in VolumeMounts.
  16467. Defaults to false.
  16468. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  16469. type: boolean
  16470. required:
  16471. - pdName
  16472. type: object
  16473. gitRepo:
  16474. description: |-
  16475. gitRepo represents a git repository at a particular revision.
  16476. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
  16477. EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
  16478. into the Pod's container.
  16479. properties:
  16480. directory:
  16481. description: |-
  16482. directory is the target directory name.
  16483. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the
  16484. git repository. Otherwise, if specified, the volume will contain the git repository in
  16485. the subdirectory with the given name.
  16486. type: string
  16487. repository:
  16488. description: repository is the URL
  16489. type: string
  16490. revision:
  16491. description: revision is the commit hash for the
  16492. specified revision.
  16493. type: string
  16494. required:
  16495. - repository
  16496. type: object
  16497. glusterfs:
  16498. description: |-
  16499. glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
  16500. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
  16501. properties:
  16502. endpoints:
  16503. description: endpoints is the endpoint name that
  16504. details Glusterfs topology.
  16505. type: string
  16506. path:
  16507. description: |-
  16508. path is the Glusterfs volume path.
  16509. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  16510. type: string
  16511. readOnly:
  16512. description: |-
  16513. readOnly here will force the Glusterfs volume to be mounted with read-only permissions.
  16514. Defaults to false.
  16515. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  16516. type: boolean
  16517. required:
  16518. - endpoints
  16519. - path
  16520. type: object
  16521. hostPath:
  16522. description: |-
  16523. hostPath represents a pre-existing file or directory on the host
  16524. machine that is directly exposed to the container. This is generally
  16525. used for system agents or other privileged things that are allowed
  16526. to see the host machine. Most containers will NOT need this.
  16527. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  16528. properties:
  16529. path:
  16530. description: |-
  16531. path of the directory on the host.
  16532. If the path is a symlink, it will follow the link to the real path.
  16533. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  16534. type: string
  16535. type:
  16536. description: |-
  16537. type for HostPath Volume
  16538. Defaults to ""
  16539. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  16540. type: string
  16541. required:
  16542. - path
  16543. type: object
  16544. image:
  16545. description: |-
  16546. image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.
  16547. The volume is resolved at pod startup depending on which PullPolicy value is provided:
  16548. - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  16549. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  16550. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  16551. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
  16552. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
  16553. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
  16554. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
  16555. The volume will be mounted read-only (ro) and non-executable files (noexec).
  16556. Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.
  16557. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
  16558. properties:
  16559. pullPolicy:
  16560. description: |-
  16561. Policy for pulling OCI objects. Possible values are:
  16562. Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  16563. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  16564. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.
  16565. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
  16566. type: string
  16567. reference:
  16568. description: |-
  16569. Required: Image or artifact reference to be used.
  16570. Behaves in the same way as pod.spec.containers[*].image.
  16571. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.
  16572. More info: https://kubernetes.io/docs/concepts/containers/images
  16573. This field is optional to allow higher level config management to default or override
  16574. container images in workload controllers like Deployments and StatefulSets.
  16575. type: string
  16576. type: object
  16577. iscsi:
  16578. description: |-
  16579. iscsi represents an ISCSI Disk resource that is attached to a
  16580. kubelet's host machine and then exposed to the pod.
  16581. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
  16582. properties:
  16583. chapAuthDiscovery:
  16584. description: chapAuthDiscovery defines whether support
  16585. iSCSI Discovery CHAP authentication
  16586. type: boolean
  16587. chapAuthSession:
  16588. description: chapAuthSession defines whether support
  16589. iSCSI Session CHAP authentication
  16590. type: boolean
  16591. fsType:
  16592. description: |-
  16593. fsType is the filesystem type of the volume that you want to mount.
  16594. Tip: Ensure that the filesystem type is supported by the host operating system.
  16595. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16596. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  16597. type: string
  16598. initiatorName:
  16599. description: |-
  16600. initiatorName is the custom iSCSI Initiator Name.
  16601. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
  16602. <target portal>:<volume name> will be created for the connection.
  16603. type: string
  16604. iqn:
  16605. description: iqn is the target iSCSI Qualified Name.
  16606. type: string
  16607. iscsiInterface:
  16608. default: default
  16609. description: |-
  16610. iscsiInterface is the interface Name that uses an iSCSI transport.
  16611. Defaults to 'default' (tcp).
  16612. type: string
  16613. lun:
  16614. description: lun represents iSCSI Target Lun number.
  16615. format: int32
  16616. type: integer
  16617. portals:
  16618. description: |-
  16619. portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
  16620. is other than default (typically TCP ports 860 and 3260).
  16621. items:
  16622. type: string
  16623. type: array
  16624. x-kubernetes-list-type: atomic
  16625. readOnly:
  16626. description: |-
  16627. readOnly here will force the ReadOnly setting in VolumeMounts.
  16628. Defaults to false.
  16629. type: boolean
  16630. secretRef:
  16631. description: secretRef is the CHAP Secret for iSCSI
  16632. target and initiator authentication
  16633. properties:
  16634. name:
  16635. default: ""
  16636. description: |-
  16637. Name of the referent.
  16638. This field is effectively required, but due to backwards compatibility is
  16639. allowed to be empty. Instances of this type with an empty value here are
  16640. almost certainly wrong.
  16641. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16642. type: string
  16643. type: object
  16644. x-kubernetes-map-type: atomic
  16645. targetPortal:
  16646. description: |-
  16647. targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
  16648. is other than default (typically TCP ports 860 and 3260).
  16649. type: string
  16650. required:
  16651. - iqn
  16652. - lun
  16653. - targetPortal
  16654. type: object
  16655. name:
  16656. description: |-
  16657. name of the volume.
  16658. Must be a DNS_LABEL and unique within the pod.
  16659. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16660. type: string
  16661. nfs:
  16662. description: |-
  16663. nfs represents an NFS mount on the host that shares a pod's lifetime
  16664. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  16665. properties:
  16666. path:
  16667. description: |-
  16668. path that is exported by the NFS server.
  16669. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  16670. type: string
  16671. readOnly:
  16672. description: |-
  16673. readOnly here will force the NFS export to be mounted with read-only permissions.
  16674. Defaults to false.
  16675. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  16676. type: boolean
  16677. server:
  16678. description: |-
  16679. server is the hostname or IP address of the NFS server.
  16680. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  16681. type: string
  16682. required:
  16683. - path
  16684. - server
  16685. type: object
  16686. persistentVolumeClaim:
  16687. description: |-
  16688. persistentVolumeClaimVolumeSource represents a reference to a
  16689. PersistentVolumeClaim in the same namespace.
  16690. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  16691. properties:
  16692. claimName:
  16693. description: |-
  16694. claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
  16695. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  16696. type: string
  16697. readOnly:
  16698. description: |-
  16699. readOnly Will force the ReadOnly setting in VolumeMounts.
  16700. Default false.
  16701. type: boolean
  16702. required:
  16703. - claimName
  16704. type: object
  16705. photonPersistentDisk:
  16706. description: |-
  16707. photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
  16708. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
  16709. properties:
  16710. fsType:
  16711. description: |-
  16712. fsType is the filesystem type to mount.
  16713. Must be a filesystem type supported by the host operating system.
  16714. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  16715. type: string
  16716. pdID:
  16717. description: pdID is the ID that identifies Photon
  16718. Controller persistent disk
  16719. type: string
  16720. required:
  16721. - pdID
  16722. type: object
  16723. portworxVolume:
  16724. description: |-
  16725. portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
  16726. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
  16727. are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
  16728. is on.
  16729. properties:
  16730. fsType:
  16731. description: |-
  16732. fSType represents the filesystem type to mount
  16733. Must be a filesystem type supported by the host operating system.
  16734. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
  16735. type: string
  16736. readOnly:
  16737. description: |-
  16738. readOnly defaults to false (read/write). ReadOnly here will force
  16739. the ReadOnly setting in VolumeMounts.
  16740. type: boolean
  16741. volumeID:
  16742. description: volumeID uniquely identifies a Portworx
  16743. volume
  16744. type: string
  16745. required:
  16746. - volumeID
  16747. type: object
  16748. projected:
  16749. description: projected items for all in one resources
  16750. secrets, configmaps, and downward API
  16751. properties:
  16752. defaultMode:
  16753. description: |-
  16754. defaultMode are the mode bits used to set permissions on created files by default.
  16755. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  16756. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16757. Directories within the path are not affected by this setting.
  16758. This might be in conflict with other options that affect the file
  16759. mode, like fsGroup, and the result can be other mode bits set.
  16760. format: int32
  16761. type: integer
  16762. sources:
  16763. description: |-
  16764. sources is the list of volume projections. Each entry in this list
  16765. handles one source.
  16766. items:
  16767. description: |-
  16768. Projection that may be projected along with other supported volume types.
  16769. Exactly one of these fields must be set.
  16770. properties:
  16771. clusterTrustBundle:
  16772. description: |-
  16773. ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field
  16774. of ClusterTrustBundle objects in an auto-updating file.
  16775. Alpha, gated by the ClusterTrustBundleProjection feature gate.
  16776. ClusterTrustBundle objects can either be selected by name, or by the
  16777. combination of signer name and a label selector.
  16778. Kubelet performs aggressive normalization of the PEM contents written
  16779. into the pod filesystem. Esoteric PEM features such as inter-block
  16780. comments and block headers are stripped. Certificates are deduplicated.
  16781. The ordering of certificates within the file is arbitrary, and Kubelet
  16782. may change the order over time.
  16783. properties:
  16784. labelSelector:
  16785. description: |-
  16786. Select all ClusterTrustBundles that match this label selector. Only has
  16787. effect if signerName is set. Mutually-exclusive with name. If unset,
  16788. interpreted as "match nothing". If set but empty, interpreted as "match
  16789. everything".
  16790. properties:
  16791. matchExpressions:
  16792. description: matchExpressions is a
  16793. list of label selector requirements.
  16794. The requirements are ANDed.
  16795. items:
  16796. description: |-
  16797. A label selector requirement is a selector that contains values, a key, and an operator that
  16798. relates the key and values.
  16799. properties:
  16800. key:
  16801. description: key is the label
  16802. key that the selector applies
  16803. to.
  16804. type: string
  16805. operator:
  16806. description: |-
  16807. operator represents a key's relationship to a set of values.
  16808. Valid operators are In, NotIn, Exists and DoesNotExist.
  16809. type: string
  16810. values:
  16811. description: |-
  16812. values is an array of string values. If the operator is In or NotIn,
  16813. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  16814. the values array must be empty. This array is replaced during a strategic
  16815. merge patch.
  16816. items:
  16817. type: string
  16818. type: array
  16819. x-kubernetes-list-type: atomic
  16820. required:
  16821. - key
  16822. - operator
  16823. type: object
  16824. type: array
  16825. x-kubernetes-list-type: atomic
  16826. matchLabels:
  16827. additionalProperties:
  16828. type: string
  16829. description: |-
  16830. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  16831. map is equivalent to an element of matchExpressions, whose key field is "key", the
  16832. operator is "In", and the values array contains only "value". The requirements are ANDed.
  16833. type: object
  16834. type: object
  16835. x-kubernetes-map-type: atomic
  16836. name:
  16837. description: |-
  16838. Select a single ClusterTrustBundle by object name. Mutually-exclusive
  16839. with signerName and labelSelector.
  16840. type: string
  16841. optional:
  16842. description: |-
  16843. If true, don't block pod startup if the referenced ClusterTrustBundle(s)
  16844. aren't available. If using name, then the named ClusterTrustBundle is
  16845. allowed not to exist. If using signerName, then the combination of
  16846. signerName and labelSelector is allowed to match zero
  16847. ClusterTrustBundles.
  16848. type: boolean
  16849. path:
  16850. description: Relative path from the volume
  16851. root to write the bundle.
  16852. type: string
  16853. signerName:
  16854. description: |-
  16855. Select all ClusterTrustBundles that match this signer name.
  16856. Mutually-exclusive with name. The contents of all selected
  16857. ClusterTrustBundles will be unified and deduplicated.
  16858. type: string
  16859. required:
  16860. - path
  16861. type: object
  16862. configMap:
  16863. description: configMap information about the
  16864. configMap data to project
  16865. properties:
  16866. items:
  16867. description: |-
  16868. items if unspecified, each key-value pair in the Data field of the referenced
  16869. ConfigMap will be projected into the volume as a file whose name is the
  16870. key and content is the value. If specified, the listed keys will be
  16871. projected into the specified paths, and unlisted keys will not be
  16872. present. If a key is specified which is not present in the ConfigMap,
  16873. the volume setup will error unless it is marked optional. Paths must be
  16874. relative and may not contain the '..' path or start with '..'.
  16875. items:
  16876. description: Maps a string key to a
  16877. path within a volume.
  16878. properties:
  16879. key:
  16880. description: key is the key to project.
  16881. type: string
  16882. mode:
  16883. description: |-
  16884. mode is Optional: mode bits used to set permissions on this file.
  16885. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  16886. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16887. If not specified, the volume defaultMode will be used.
  16888. This might be in conflict with other options that affect the file
  16889. mode, like fsGroup, and the result can be other mode bits set.
  16890. format: int32
  16891. type: integer
  16892. path:
  16893. description: |-
  16894. path is the relative path of the file to map the key to.
  16895. May not be an absolute path.
  16896. May not contain the path element '..'.
  16897. May not start with the string '..'.
  16898. type: string
  16899. required:
  16900. - key
  16901. - path
  16902. type: object
  16903. type: array
  16904. x-kubernetes-list-type: atomic
  16905. name:
  16906. default: ""
  16907. description: |-
  16908. Name of the referent.
  16909. This field is effectively required, but due to backwards compatibility is
  16910. allowed to be empty. Instances of this type with an empty value here are
  16911. almost certainly wrong.
  16912. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  16913. type: string
  16914. optional:
  16915. description: optional specify whether
  16916. the ConfigMap or its keys must be defined
  16917. type: boolean
  16918. type: object
  16919. x-kubernetes-map-type: atomic
  16920. downwardAPI:
  16921. description: downwardAPI information about
  16922. the downwardAPI data to project
  16923. properties:
  16924. items:
  16925. description: Items is a list of DownwardAPIVolume
  16926. file
  16927. items:
  16928. description: DownwardAPIVolumeFile represents
  16929. information to create the file containing
  16930. the pod field
  16931. properties:
  16932. fieldRef:
  16933. description: 'Required: Selects
  16934. a field of the pod: only annotations,
  16935. labels, name, namespace and uid
  16936. are supported.'
  16937. properties:
  16938. apiVersion:
  16939. description: Version of the
  16940. schema the FieldPath is written
  16941. in terms of, defaults to "v1".
  16942. type: string
  16943. fieldPath:
  16944. description: Path of the field
  16945. to select in the specified
  16946. API version.
  16947. type: string
  16948. required:
  16949. - fieldPath
  16950. type: object
  16951. x-kubernetes-map-type: atomic
  16952. mode:
  16953. description: |-
  16954. Optional: mode bits used to set permissions on this file, must be an octal value
  16955. between 0000 and 0777 or a decimal value between 0 and 511.
  16956. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  16957. If not specified, the volume defaultMode will be used.
  16958. This might be in conflict with other options that affect the file
  16959. mode, like fsGroup, and the result can be other mode bits set.
  16960. format: int32
  16961. type: integer
  16962. path:
  16963. description: 'Required: Path is the
  16964. relative path name of the file
  16965. to be created. Must not be absolute
  16966. or contain the ''..'' path. Must
  16967. be utf-8 encoded. The first item
  16968. of the relative path must not
  16969. start with ''..'''
  16970. type: string
  16971. resourceFieldRef:
  16972. description: |-
  16973. Selects a resource of the container: only resources limits and requests
  16974. (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
  16975. properties:
  16976. containerName:
  16977. description: 'Container name:
  16978. required for volumes, optional
  16979. for env vars'
  16980. type: string
  16981. divisor:
  16982. anyOf:
  16983. - type: integer
  16984. - type: string
  16985. description: Specifies the output
  16986. format of the exposed resources,
  16987. defaults to "1"
  16988. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  16989. x-kubernetes-int-or-string: true
  16990. resource:
  16991. description: 'Required: resource
  16992. to select'
  16993. type: string
  16994. required:
  16995. - resource
  16996. type: object
  16997. x-kubernetes-map-type: atomic
  16998. required:
  16999. - path
  17000. type: object
  17001. type: array
  17002. x-kubernetes-list-type: atomic
  17003. type: object
  17004. podCertificate:
  17005. description: |-
  17006. Projects an auto-rotating credential bundle (private key and certificate
  17007. chain) that the pod can use either as a TLS client or server.
  17008. Kubelet generates a private key and uses it to send a
  17009. PodCertificateRequest to the named signer. Once the signer approves the
  17010. request and issues a certificate chain, Kubelet writes the key and
  17011. certificate chain to the pod filesystem. The pod does not start until
  17012. certificates have been issued for each podCertificate projected volume
  17013. source in its spec.
  17014. Kubelet will begin trying to rotate the certificate at the time indicated
  17015. by the signer using the PodCertificateRequest.Status.BeginRefreshAt
  17016. timestamp.
  17017. Kubelet can write a single file, indicated by the credentialBundlePath
  17018. field, or separate files, indicated by the keyPath and
  17019. certificateChainPath fields.
  17020. The credential bundle is a single file in PEM format. The first PEM
  17021. entry is the private key (in PKCS#8 format), and the remaining PEM
  17022. entries are the certificate chain issued by the signer (typically,
  17023. signers will return their certificate chain in leaf-to-root order).
  17024. Prefer using the credential bundle format, since your application code
  17025. can read it atomically. If you use keyPath and certificateChainPath,
  17026. your application must make two separate file reads. If these coincide
  17027. with a certificate rotation, it is possible that the private key and leaf
  17028. certificate you read may not correspond to each other. Your application
  17029. will need to check for this condition, and re-read until they are
  17030. consistent.
  17031. The named signer controls chooses the format of the certificate it
  17032. issues; consult the signer implementation's documentation to learn how to
  17033. use the certificates it issues.
  17034. properties:
  17035. certificateChainPath:
  17036. description: |-
  17037. Write the certificate chain at this path in the projected volume.
  17038. Most applications should use credentialBundlePath. When using keyPath
  17039. and certificateChainPath, your application needs to check that the key
  17040. and leaf certificate are consistent, because it is possible to read the
  17041. files mid-rotation.
  17042. type: string
  17043. credentialBundlePath:
  17044. description: |-
  17045. Write the credential bundle at this path in the projected volume.
  17046. The credential bundle is a single file that contains multiple PEM blocks.
  17047. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private
  17048. key.
  17049. The remaining blocks are CERTIFICATE blocks, containing the issued
  17050. certificate chain from the signer (leaf and any intermediates).
  17051. Using credentialBundlePath lets your Pod's application code make a single
  17052. atomic read that retrieves a consistent key and certificate chain. If you
  17053. project them to separate files, your application code will need to
  17054. additionally check that the leaf certificate was issued to the key.
  17055. type: string
  17056. keyPath:
  17057. description: |-
  17058. Write the key at this path in the projected volume.
  17059. Most applications should use credentialBundlePath. When using keyPath
  17060. and certificateChainPath, your application needs to check that the key
  17061. and leaf certificate are consistent, because it is possible to read the
  17062. files mid-rotation.
  17063. type: string
  17064. keyType:
  17065. description: |-
  17066. The type of keypair Kubelet will generate for the pod.
  17067. Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384",
  17068. "ECDSAP521", and "ED25519".
  17069. type: string
  17070. maxExpirationSeconds:
  17071. description: |-
  17072. maxExpirationSeconds is the maximum lifetime permitted for the
  17073. certificate.
  17074. Kubelet copies this value verbatim into the PodCertificateRequests it
  17075. generates for this projection.
  17076. If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver
  17077. will reject values shorter than 3600 (1 hour). The maximum allowable
  17078. value is 7862400 (91 days).
  17079. The signer implementation is then free to issue a certificate with any
  17080. lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600
  17081. seconds (1 hour). This constraint is enforced by kube-apiserver.
  17082. `kubernetes.io` signers will never issue certificates with a lifetime
  17083. longer than 24 hours.
  17084. format: int32
  17085. type: integer
  17086. signerName:
  17087. description: Kubelet's generated CSRs
  17088. will be addressed to this signer.
  17089. type: string
  17090. required:
  17091. - keyType
  17092. - signerName
  17093. type: object
  17094. secret:
  17095. description: secret information about the
  17096. secret data to project
  17097. properties:
  17098. items:
  17099. description: |-
  17100. items if unspecified, each key-value pair in the Data field of the referenced
  17101. Secret will be projected into the volume as a file whose name is the
  17102. key and content is the value. If specified, the listed keys will be
  17103. projected into the specified paths, and unlisted keys will not be
  17104. present. If a key is specified which is not present in the Secret,
  17105. the volume setup will error unless it is marked optional. Paths must be
  17106. relative and may not contain the '..' path or start with '..'.
  17107. items:
  17108. description: Maps a string key to a
  17109. path within a volume.
  17110. properties:
  17111. key:
  17112. description: key is the key to project.
  17113. type: string
  17114. mode:
  17115. description: |-
  17116. mode is Optional: mode bits used to set permissions on this file.
  17117. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  17118. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17119. If not specified, the volume defaultMode will be used.
  17120. This might be in conflict with other options that affect the file
  17121. mode, like fsGroup, and the result can be other mode bits set.
  17122. format: int32
  17123. type: integer
  17124. path:
  17125. description: |-
  17126. path is the relative path of the file to map the key to.
  17127. May not be an absolute path.
  17128. May not contain the path element '..'.
  17129. May not start with the string '..'.
  17130. type: string
  17131. required:
  17132. - key
  17133. - path
  17134. type: object
  17135. type: array
  17136. x-kubernetes-list-type: atomic
  17137. name:
  17138. default: ""
  17139. description: |-
  17140. Name of the referent.
  17141. This field is effectively required, but due to backwards compatibility is
  17142. allowed to be empty. Instances of this type with an empty value here are
  17143. almost certainly wrong.
  17144. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17145. type: string
  17146. optional:
  17147. description: optional field specify whether
  17148. the Secret or its key must be defined
  17149. type: boolean
  17150. type: object
  17151. x-kubernetes-map-type: atomic
  17152. serviceAccountToken:
  17153. description: serviceAccountToken is information
  17154. about the serviceAccountToken data to project
  17155. properties:
  17156. audience:
  17157. description: |-
  17158. audience is the intended audience of the token. A recipient of a token
  17159. must identify itself with an identifier specified in the audience of the
  17160. token, and otherwise should reject the token. The audience defaults to the
  17161. identifier of the apiserver.
  17162. type: string
  17163. expirationSeconds:
  17164. description: |-
  17165. expirationSeconds is the requested duration of validity of the service
  17166. account token. As the token approaches expiration, the kubelet volume
  17167. plugin will proactively rotate the service account token. The kubelet will
  17168. start trying to rotate the token if the token is older than 80 percent of
  17169. its time to live or if the token is older than 24 hours.Defaults to 1 hour
  17170. and must be at least 10 minutes.
  17171. format: int64
  17172. type: integer
  17173. path:
  17174. description: |-
  17175. path is the path relative to the mount point of the file to project the
  17176. token into.
  17177. type: string
  17178. required:
  17179. - path
  17180. type: object
  17181. type: object
  17182. type: array
  17183. x-kubernetes-list-type: atomic
  17184. type: object
  17185. quobyte:
  17186. description: |-
  17187. quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
  17188. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
  17189. properties:
  17190. group:
  17191. description: |-
  17192. group to map volume access to
  17193. Default is no group
  17194. type: string
  17195. readOnly:
  17196. description: |-
  17197. readOnly here will force the Quobyte volume to be mounted with read-only permissions.
  17198. Defaults to false.
  17199. type: boolean
  17200. registry:
  17201. description: |-
  17202. registry represents a single or multiple Quobyte Registry services
  17203. specified as a string as host:port pair (multiple entries are separated with commas)
  17204. which acts as the central registry for volumes
  17205. type: string
  17206. tenant:
  17207. description: |-
  17208. tenant owning the given Quobyte volume in the Backend
  17209. Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  17210. type: string
  17211. user:
  17212. description: |-
  17213. user to map volume access to
  17214. Defaults to serivceaccount user
  17215. type: string
  17216. volume:
  17217. description: volume is a string that references
  17218. an already created Quobyte volume by name.
  17219. type: string
  17220. required:
  17221. - registry
  17222. - volume
  17223. type: object
  17224. rbd:
  17225. description: |-
  17226. rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
  17227. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
  17228. properties:
  17229. fsType:
  17230. description: |-
  17231. fsType is the filesystem type of the volume that you want to mount.
  17232. Tip: Ensure that the filesystem type is supported by the host operating system.
  17233. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17234. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  17235. type: string
  17236. image:
  17237. description: |-
  17238. image is the rados image name.
  17239. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17240. type: string
  17241. keyring:
  17242. default: /etc/ceph/keyring
  17243. description: |-
  17244. keyring is the path to key ring for RBDUser.
  17245. Default is /etc/ceph/keyring.
  17246. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17247. type: string
  17248. monitors:
  17249. description: |-
  17250. monitors is a collection of Ceph monitors.
  17251. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17252. items:
  17253. type: string
  17254. type: array
  17255. x-kubernetes-list-type: atomic
  17256. pool:
  17257. default: rbd
  17258. description: |-
  17259. pool is the rados pool name.
  17260. Default is rbd.
  17261. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17262. type: string
  17263. readOnly:
  17264. description: |-
  17265. readOnly here will force the ReadOnly setting in VolumeMounts.
  17266. Defaults to false.
  17267. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17268. type: boolean
  17269. secretRef:
  17270. description: |-
  17271. secretRef is name of the authentication secret for RBDUser. If provided
  17272. overrides keyring.
  17273. Default is nil.
  17274. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17275. properties:
  17276. name:
  17277. default: ""
  17278. description: |-
  17279. Name of the referent.
  17280. This field is effectively required, but due to backwards compatibility is
  17281. allowed to be empty. Instances of this type with an empty value here are
  17282. almost certainly wrong.
  17283. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17284. type: string
  17285. type: object
  17286. x-kubernetes-map-type: atomic
  17287. user:
  17288. default: admin
  17289. description: |-
  17290. user is the rados user name.
  17291. Default is admin.
  17292. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  17293. type: string
  17294. required:
  17295. - image
  17296. - monitors
  17297. type: object
  17298. scaleIO:
  17299. description: |-
  17300. scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
  17301. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
  17302. properties:
  17303. fsType:
  17304. default: xfs
  17305. description: |-
  17306. fsType is the filesystem type to mount.
  17307. Must be a filesystem type supported by the host operating system.
  17308. Ex. "ext4", "xfs", "ntfs".
  17309. Default is "xfs".
  17310. type: string
  17311. gateway:
  17312. description: gateway is the host address of the
  17313. ScaleIO API Gateway.
  17314. type: string
  17315. protectionDomain:
  17316. description: protectionDomain is the name of the
  17317. ScaleIO Protection Domain for the configured storage.
  17318. type: string
  17319. readOnly:
  17320. description: |-
  17321. readOnly Defaults to false (read/write). ReadOnly here will force
  17322. the ReadOnly setting in VolumeMounts.
  17323. type: boolean
  17324. secretRef:
  17325. description: |-
  17326. secretRef references to the secret for ScaleIO user and other
  17327. sensitive information. If this is not provided, Login operation will fail.
  17328. properties:
  17329. name:
  17330. default: ""
  17331. description: |-
  17332. Name of the referent.
  17333. This field is effectively required, but due to backwards compatibility is
  17334. allowed to be empty. Instances of this type with an empty value here are
  17335. almost certainly wrong.
  17336. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17337. type: string
  17338. type: object
  17339. x-kubernetes-map-type: atomic
  17340. sslEnabled:
  17341. description: sslEnabled Flag enable/disable SSL
  17342. communication with Gateway, default false
  17343. type: boolean
  17344. storageMode:
  17345. default: ThinProvisioned
  17346. description: |-
  17347. storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
  17348. Default is ThinProvisioned.
  17349. type: string
  17350. storagePool:
  17351. description: storagePool is the ScaleIO Storage
  17352. Pool associated with the protection domain.
  17353. type: string
  17354. system:
  17355. description: system is the name of the storage system
  17356. as configured in ScaleIO.
  17357. type: string
  17358. volumeName:
  17359. description: |-
  17360. volumeName is the name of a volume already created in the ScaleIO system
  17361. that is associated with this volume source.
  17362. type: string
  17363. required:
  17364. - gateway
  17365. - secretRef
  17366. - system
  17367. type: object
  17368. secret:
  17369. description: |-
  17370. secret represents a secret that should populate this volume.
  17371. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  17372. properties:
  17373. defaultMode:
  17374. description: |-
  17375. defaultMode is Optional: mode bits used to set permissions on created files by default.
  17376. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  17377. YAML accepts both octal and decimal values, JSON requires decimal values
  17378. for mode bits. Defaults to 0644.
  17379. Directories within the path are not affected by this setting.
  17380. This might be in conflict with other options that affect the file
  17381. mode, like fsGroup, and the result can be other mode bits set.
  17382. format: int32
  17383. type: integer
  17384. items:
  17385. description: |-
  17386. items If unspecified, each key-value pair in the Data field of the referenced
  17387. Secret will be projected into the volume as a file whose name is the
  17388. key and content is the value. If specified, the listed keys will be
  17389. projected into the specified paths, and unlisted keys will not be
  17390. present. If a key is specified which is not present in the Secret,
  17391. the volume setup will error unless it is marked optional. Paths must be
  17392. relative and may not contain the '..' path or start with '..'.
  17393. items:
  17394. description: Maps a string key to a path within
  17395. a volume.
  17396. properties:
  17397. key:
  17398. description: key is the key to project.
  17399. type: string
  17400. mode:
  17401. description: |-
  17402. mode is Optional: mode bits used to set permissions on this file.
  17403. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.
  17404. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.
  17405. If not specified, the volume defaultMode will be used.
  17406. This might be in conflict with other options that affect the file
  17407. mode, like fsGroup, and the result can be other mode bits set.
  17408. format: int32
  17409. type: integer
  17410. path:
  17411. description: |-
  17412. path is the relative path of the file to map the key to.
  17413. May not be an absolute path.
  17414. May not contain the path element '..'.
  17415. May not start with the string '..'.
  17416. type: string
  17417. required:
  17418. - key
  17419. - path
  17420. type: object
  17421. type: array
  17422. x-kubernetes-list-type: atomic
  17423. optional:
  17424. description: optional field specify whether the
  17425. Secret or its keys must be defined
  17426. type: boolean
  17427. secretName:
  17428. description: |-
  17429. secretName is the name of the secret in the pod's namespace to use.
  17430. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  17431. type: string
  17432. type: object
  17433. storageos:
  17434. description: |-
  17435. storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
  17436. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
  17437. properties:
  17438. fsType:
  17439. description: |-
  17440. fsType is the filesystem type to mount.
  17441. Must be a filesystem type supported by the host operating system.
  17442. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17443. type: string
  17444. readOnly:
  17445. description: |-
  17446. readOnly defaults to false (read/write). ReadOnly here will force
  17447. the ReadOnly setting in VolumeMounts.
  17448. type: boolean
  17449. secretRef:
  17450. description: |-
  17451. secretRef specifies the secret to use for obtaining the StorageOS API
  17452. credentials. If not specified, default values will be attempted.
  17453. properties:
  17454. name:
  17455. default: ""
  17456. description: |-
  17457. Name of the referent.
  17458. This field is effectively required, but due to backwards compatibility is
  17459. allowed to be empty. Instances of this type with an empty value here are
  17460. almost certainly wrong.
  17461. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17462. type: string
  17463. type: object
  17464. x-kubernetes-map-type: atomic
  17465. volumeName:
  17466. description: |-
  17467. volumeName is the human-readable name of the StorageOS volume. Volume
  17468. names are only unique within a namespace.
  17469. type: string
  17470. volumeNamespace:
  17471. description: |-
  17472. volumeNamespace specifies the scope of the volume within StorageOS. If no
  17473. namespace is specified then the Pod's namespace will be used. This allows the
  17474. Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
  17475. Set VolumeName to any name to override the default behaviour.
  17476. Set to "default" if you are not using namespaces within StorageOS.
  17477. Namespaces that do not pre-exist within StorageOS will be created.
  17478. type: string
  17479. type: object
  17480. vsphereVolume:
  17481. description: |-
  17482. vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
  17483. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
  17484. are redirected to the csi.vsphere.vmware.com CSI driver.
  17485. properties:
  17486. fsType:
  17487. description: |-
  17488. fsType is filesystem type to mount.
  17489. Must be a filesystem type supported by the host operating system.
  17490. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
  17491. type: string
  17492. storagePolicyID:
  17493. description: storagePolicyID is the storage Policy
  17494. Based Management (SPBM) profile ID associated
  17495. with the StoragePolicyName.
  17496. type: string
  17497. storagePolicyName:
  17498. description: storagePolicyName is the storage Policy
  17499. Based Management (SPBM) profile name.
  17500. type: string
  17501. volumePath:
  17502. description: volumePath is the path that identifies
  17503. vSphere volume vmdk
  17504. type: string
  17505. required:
  17506. - volumePath
  17507. type: object
  17508. required:
  17509. - name
  17510. type: object
  17511. type: array
  17512. x-kubernetes-list-map-keys:
  17513. - name
  17514. x-kubernetes-list-type: map
  17515. required:
  17516. - containers
  17517. type: object
  17518. type: object
  17519. type:
  17520. default: rw
  17521. description: 'Type of service to forward traffic to. Default: `rw`.'
  17522. enum:
  17523. - rw
  17524. - ro
  17525. - r
  17526. type: string
  17527. required:
  17528. - cluster
  17529. - pgbouncer
  17530. type: object
  17531. status:
  17532. description: |-
  17533. Most recently observed status of the Pooler. This data may not be up to
  17534. date. Populated by the system. Read-only.
  17535. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  17536. properties:
  17537. instances:
  17538. description: The number of pods trying to be scheduled
  17539. format: int32
  17540. type: integer
  17541. secrets:
  17542. description: The resource version of the config object
  17543. properties:
  17544. clientCA:
  17545. description: The client CA secret version
  17546. properties:
  17547. name:
  17548. description: The name of the secret
  17549. type: string
  17550. version:
  17551. description: The ResourceVersion of the secret
  17552. type: string
  17553. type: object
  17554. clientTLS:
  17555. description: The client TLS secret version
  17556. properties:
  17557. name:
  17558. description: The name of the secret
  17559. type: string
  17560. version:
  17561. description: The ResourceVersion of the secret
  17562. type: string
  17563. type: object
  17564. pgBouncerSecrets:
  17565. description: The version of the secrets used by PgBouncer
  17566. properties:
  17567. authQuery:
  17568. description: The auth query secret version
  17569. properties:
  17570. name:
  17571. description: The name of the secret
  17572. type: string
  17573. version:
  17574. description: The ResourceVersion of the secret
  17575. type: string
  17576. type: object
  17577. type: object
  17578. serverCA:
  17579. description: The server CA secret version
  17580. properties:
  17581. name:
  17582. description: The name of the secret
  17583. type: string
  17584. version:
  17585. description: The ResourceVersion of the secret
  17586. type: string
  17587. type: object
  17588. serverTLS:
  17589. description: The server TLS secret version
  17590. properties:
  17591. name:
  17592. description: The name of the secret
  17593. type: string
  17594. version:
  17595. description: The ResourceVersion of the secret
  17596. type: string
  17597. type: object
  17598. type: object
  17599. type: object
  17600. required:
  17601. - metadata
  17602. - spec
  17603. type: object
  17604. served: true
  17605. storage: true
  17606. subresources:
  17607. scale:
  17608. specReplicasPath: .spec.instances
  17609. statusReplicasPath: .status.instances
  17610. status: {}
  17611. ---
  17612. apiVersion: apiextensions.k8s.io/v1
  17613. kind: CustomResourceDefinition
  17614. metadata:
  17615. annotations:
  17616. controller-gen.kubebuilder.io/version: v0.19.0
  17617. name: publications.postgresql.cnpg.io
  17618. spec:
  17619. group: postgresql.cnpg.io
  17620. names:
  17621. kind: Publication
  17622. listKind: PublicationList
  17623. plural: publications
  17624. singular: publication
  17625. scope: Namespaced
  17626. versions:
  17627. - additionalPrinterColumns:
  17628. - jsonPath: .metadata.creationTimestamp
  17629. name: Age
  17630. type: date
  17631. - jsonPath: .spec.cluster.name
  17632. name: Cluster
  17633. type: string
  17634. - jsonPath: .spec.name
  17635. name: PG Name
  17636. type: string
  17637. - jsonPath: .status.applied
  17638. name: Applied
  17639. type: boolean
  17640. - description: Latest reconciliation message
  17641. jsonPath: .status.message
  17642. name: Message
  17643. type: string
  17644. name: v1
  17645. schema:
  17646. openAPIV3Schema:
  17647. description: Publication is the Schema for the publications API
  17648. properties:
  17649. apiVersion:
  17650. description: |-
  17651. APIVersion defines the versioned schema of this representation of an object.
  17652. Servers should convert recognized schemas to the latest internal value, and
  17653. may reject unrecognized values.
  17654. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  17655. type: string
  17656. kind:
  17657. description: |-
  17658. Kind is a string value representing the REST resource this object represents.
  17659. Servers may infer this from the endpoint the client submits requests to.
  17660. Cannot be updated.
  17661. In CamelCase.
  17662. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  17663. type: string
  17664. metadata:
  17665. type: object
  17666. spec:
  17667. description: PublicationSpec defines the desired state of Publication
  17668. properties:
  17669. cluster:
  17670. description: The name of the PostgreSQL cluster that identifies the
  17671. "publisher"
  17672. properties:
  17673. name:
  17674. default: ""
  17675. description: |-
  17676. Name of the referent.
  17677. This field is effectively required, but due to backwards compatibility is
  17678. allowed to be empty. Instances of this type with an empty value here are
  17679. almost certainly wrong.
  17680. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  17681. type: string
  17682. type: object
  17683. x-kubernetes-map-type: atomic
  17684. dbname:
  17685. description: |-
  17686. The name of the database where the publication will be installed in
  17687. the "publisher" cluster
  17688. type: string
  17689. x-kubernetes-validations:
  17690. - message: dbname is immutable
  17691. rule: self == oldSelf
  17692. name:
  17693. description: The name of the publication inside PostgreSQL
  17694. type: string
  17695. x-kubernetes-validations:
  17696. - message: name is immutable
  17697. rule: self == oldSelf
  17698. parameters:
  17699. additionalProperties:
  17700. type: string
  17701. description: |-
  17702. Publication parameters part of the `WITH` clause as expected by
  17703. PostgreSQL `CREATE PUBLICATION` command
  17704. type: object
  17705. publicationReclaimPolicy:
  17706. default: retain
  17707. description: The policy for end-of-life maintenance of this publication
  17708. enum:
  17709. - delete
  17710. - retain
  17711. type: string
  17712. target:
  17713. description: Target of the publication as expected by PostgreSQL `CREATE
  17714. PUBLICATION` command
  17715. properties:
  17716. allTables:
  17717. description: |-
  17718. Marks the publication as one that replicates changes for all tables
  17719. in the database, including tables created in the future.
  17720. Corresponding to `FOR ALL TABLES` in PostgreSQL.
  17721. type: boolean
  17722. x-kubernetes-validations:
  17723. - message: allTables is immutable
  17724. rule: self == oldSelf
  17725. objects:
  17726. description: Just the following schema objects
  17727. items:
  17728. description: PublicationTargetObject is an object to publish
  17729. properties:
  17730. table:
  17731. description: |-
  17732. Specifies a list of tables to add to the publication. Corresponding
  17733. to `FOR TABLE` in PostgreSQL.
  17734. properties:
  17735. columns:
  17736. description: The columns to publish
  17737. items:
  17738. type: string
  17739. type: array
  17740. name:
  17741. description: The table name
  17742. type: string
  17743. only:
  17744. description: Whether to limit to the table only or include
  17745. all its descendants
  17746. type: boolean
  17747. schema:
  17748. description: The schema name
  17749. type: string
  17750. required:
  17751. - name
  17752. type: object
  17753. tablesInSchema:
  17754. description: |-
  17755. Marks the publication as one that replicates changes for all tables
  17756. in the specified list of schemas, including tables created in the
  17757. future. Corresponding to `FOR TABLES IN SCHEMA` in PostgreSQL.
  17758. type: string
  17759. type: object
  17760. x-kubernetes-validations:
  17761. - message: tablesInSchema and table are mutually exclusive
  17762. rule: (has(self.tablesInSchema) && !has(self.table)) || (!has(self.tablesInSchema)
  17763. && has(self.table))
  17764. maxItems: 100000
  17765. type: array
  17766. x-kubernetes-validations:
  17767. - message: specifying a column list when the publication also
  17768. publishes tablesInSchema is not supported
  17769. rule: '!(self.exists(o, has(o.table) && has(o.table.columns))
  17770. && self.exists(o, has(o.tablesInSchema)))'
  17771. type: object
  17772. x-kubernetes-validations:
  17773. - message: allTables and objects are mutually exclusive
  17774. rule: (has(self.allTables) && !has(self.objects)) || (!has(self.allTables)
  17775. && has(self.objects))
  17776. required:
  17777. - cluster
  17778. - dbname
  17779. - name
  17780. - target
  17781. type: object
  17782. status:
  17783. description: PublicationStatus defines the observed state of Publication
  17784. properties:
  17785. applied:
  17786. description: Applied is true if the publication was reconciled correctly
  17787. type: boolean
  17788. message:
  17789. description: Message is the reconciliation output message
  17790. type: string
  17791. observedGeneration:
  17792. description: |-
  17793. A sequence number representing the latest
  17794. desired state that was synchronized
  17795. format: int64
  17796. type: integer
  17797. type: object
  17798. required:
  17799. - metadata
  17800. - spec
  17801. type: object
  17802. served: true
  17803. storage: true
  17804. subresources:
  17805. status: {}
  17806. ---
  17807. apiVersion: apiextensions.k8s.io/v1
  17808. kind: CustomResourceDefinition
  17809. metadata:
  17810. annotations:
  17811. controller-gen.kubebuilder.io/version: v0.19.0
  17812. name: scheduledbackups.postgresql.cnpg.io
  17813. spec:
  17814. group: postgresql.cnpg.io
  17815. names:
  17816. kind: ScheduledBackup
  17817. listKind: ScheduledBackupList
  17818. plural: scheduledbackups
  17819. singular: scheduledbackup
  17820. scope: Namespaced
  17821. versions:
  17822. - additionalPrinterColumns:
  17823. - jsonPath: .metadata.creationTimestamp
  17824. name: Age
  17825. type: date
  17826. - jsonPath: .spec.cluster.name
  17827. name: Cluster
  17828. type: string
  17829. - jsonPath: .status.lastScheduleTime
  17830. name: Last Backup
  17831. type: date
  17832. name: v1
  17833. schema:
  17834. openAPIV3Schema:
  17835. description: ScheduledBackup is the Schema for the scheduledbackups API
  17836. properties:
  17837. apiVersion:
  17838. description: |-
  17839. APIVersion defines the versioned schema of this representation of an object.
  17840. Servers should convert recognized schemas to the latest internal value, and
  17841. may reject unrecognized values.
  17842. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  17843. type: string
  17844. kind:
  17845. description: |-
  17846. Kind is a string value representing the REST resource this object represents.
  17847. Servers may infer this from the endpoint the client submits requests to.
  17848. Cannot be updated.
  17849. In CamelCase.
  17850. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  17851. type: string
  17852. metadata:
  17853. type: object
  17854. spec:
  17855. description: |-
  17856. Specification of the desired behavior of the ScheduledBackup.
  17857. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  17858. properties:
  17859. backupOwnerReference:
  17860. default: none
  17861. description: |-
  17862. Indicates which ownerReference should be put inside the created backup resources.<br />
  17863. - none: no owner reference for created backup objects (same behavior as before the field was introduced)<br />
  17864. - self: sets the Scheduled backup object as owner of the backup<br />
  17865. - cluster: set the cluster as owner of the backup<br />
  17866. enum:
  17867. - none
  17868. - self
  17869. - cluster
  17870. type: string
  17871. cluster:
  17872. description: The cluster to backup
  17873. properties:
  17874. name:
  17875. description: Name of the referent.
  17876. type: string
  17877. required:
  17878. - name
  17879. type: object
  17880. immediate:
  17881. description: If the first backup has to be immediately start after
  17882. creation or not
  17883. type: boolean
  17884. method:
  17885. default: barmanObjectStore
  17886. description: |-
  17887. The backup method to be used, possible options are `barmanObjectStore`,
  17888. `volumeSnapshot` or `plugin`. Defaults to: `barmanObjectStore`.
  17889. enum:
  17890. - barmanObjectStore
  17891. - volumeSnapshot
  17892. - plugin
  17893. type: string
  17894. online:
  17895. description: |-
  17896. Whether the default type of backup with volume snapshots is
  17897. online/hot (`true`, default) or offline/cold (`false`)
  17898. Overrides the default setting specified in the cluster field '.spec.backup.volumeSnapshot.online'
  17899. type: boolean
  17900. onlineConfiguration:
  17901. description: |-
  17902. Configuration parameters to control the online/hot backup with volume snapshots
  17903. Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza
  17904. properties:
  17905. immediateCheckpoint:
  17906. description: |-
  17907. Control whether the I/O workload for the backup initial checkpoint will
  17908. be limited, according to the `checkpoint_completion_target` setting on
  17909. the PostgreSQL server. If set to true, an immediate checkpoint will be
  17910. used, meaning PostgreSQL will complete the checkpoint as soon as
  17911. possible. `false` by default.
  17912. type: boolean
  17913. waitForArchive:
  17914. default: true
  17915. description: |-
  17916. If false, the function will return immediately after the backup is completed,
  17917. without waiting for WAL to be archived.
  17918. This behavior is only useful with backup software that independently monitors WAL archiving.
  17919. Otherwise, WAL required to make the backup consistent might be missing and make the backup useless.
  17920. By default, or when this parameter is true, pg_backup_stop will wait for WAL to be archived when archiving is
  17921. enabled.
  17922. On a standby, this means that it will wait only when archive_mode = always.
  17923. If write activity on the primary is low, it may be useful to run pg_switch_wal on the primary in order to trigger
  17924. an immediate segment switch.
  17925. type: boolean
  17926. type: object
  17927. pluginConfiguration:
  17928. description: Configuration parameters passed to the plugin managing
  17929. this backup
  17930. properties:
  17931. name:
  17932. description: Name is the name of the plugin managing this backup
  17933. type: string
  17934. parameters:
  17935. additionalProperties:
  17936. type: string
  17937. description: |-
  17938. Parameters are the configuration parameters passed to the backup
  17939. plugin for this backup
  17940. type: object
  17941. required:
  17942. - name
  17943. type: object
  17944. schedule:
  17945. description: |-
  17946. The schedule does not follow the same format used in Kubernetes CronJobs
  17947. as it includes an additional seconds specifier,
  17948. see https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format
  17949. type: string
  17950. suspend:
  17951. description: If this backup is suspended or not
  17952. type: boolean
  17953. target:
  17954. description: |-
  17955. The policy to decide which instance should perform this backup. If empty,
  17956. it defaults to `cluster.spec.backup.target`.
  17957. Available options are empty string, `primary` and `prefer-standby`.
  17958. `primary` to have backups run always on primary instances,
  17959. `prefer-standby` to have backups run preferably on the most updated
  17960. standby, if available.
  17961. enum:
  17962. - primary
  17963. - prefer-standby
  17964. type: string
  17965. required:
  17966. - cluster
  17967. - schedule
  17968. type: object
  17969. status:
  17970. description: |-
  17971. Most recently observed status of the ScheduledBackup. This data may not be up
  17972. to date. Populated by the system. Read-only.
  17973. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  17974. properties:
  17975. lastCheckTime:
  17976. description: The latest time the schedule
  17977. format: date-time
  17978. type: string
  17979. lastScheduleTime:
  17980. description: Information when was the last time that backup was successfully
  17981. scheduled.
  17982. format: date-time
  17983. type: string
  17984. nextScheduleTime:
  17985. description: Next time we will run a backup
  17986. format: date-time
  17987. type: string
  17988. type: object
  17989. required:
  17990. - metadata
  17991. - spec
  17992. type: object
  17993. served: true
  17994. storage: true
  17995. subresources:
  17996. status: {}
  17997. ---
  17998. apiVersion: apiextensions.k8s.io/v1
  17999. kind: CustomResourceDefinition
  18000. metadata:
  18001. annotations:
  18002. controller-gen.kubebuilder.io/version: v0.19.0
  18003. name: subscriptions.postgresql.cnpg.io
  18004. spec:
  18005. group: postgresql.cnpg.io
  18006. names:
  18007. kind: Subscription
  18008. listKind: SubscriptionList
  18009. plural: subscriptions
  18010. singular: subscription
  18011. scope: Namespaced
  18012. versions:
  18013. - additionalPrinterColumns:
  18014. - jsonPath: .metadata.creationTimestamp
  18015. name: Age
  18016. type: date
  18017. - jsonPath: .spec.cluster.name
  18018. name: Cluster
  18019. type: string
  18020. - jsonPath: .spec.name
  18021. name: PG Name
  18022. type: string
  18023. - jsonPath: .status.applied
  18024. name: Applied
  18025. type: boolean
  18026. - description: Latest reconciliation message
  18027. jsonPath: .status.message
  18028. name: Message
  18029. type: string
  18030. name: v1
  18031. schema:
  18032. openAPIV3Schema:
  18033. description: Subscription is the Schema for the subscriptions API
  18034. properties:
  18035. apiVersion:
  18036. description: |-
  18037. APIVersion defines the versioned schema of this representation of an object.
  18038. Servers should convert recognized schemas to the latest internal value, and
  18039. may reject unrecognized values.
  18040. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  18041. type: string
  18042. kind:
  18043. description: |-
  18044. Kind is a string value representing the REST resource this object represents.
  18045. Servers may infer this from the endpoint the client submits requests to.
  18046. Cannot be updated.
  18047. In CamelCase.
  18048. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  18049. type: string
  18050. metadata:
  18051. type: object
  18052. spec:
  18053. description: SubscriptionSpec defines the desired state of Subscription
  18054. properties:
  18055. cluster:
  18056. description: The name of the PostgreSQL cluster that identifies the
  18057. "subscriber"
  18058. properties:
  18059. name:
  18060. default: ""
  18061. description: |-
  18062. Name of the referent.
  18063. This field is effectively required, but due to backwards compatibility is
  18064. allowed to be empty. Instances of this type with an empty value here are
  18065. almost certainly wrong.
  18066. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  18067. type: string
  18068. type: object
  18069. x-kubernetes-map-type: atomic
  18070. dbname:
  18071. description: |-
  18072. The name of the database where the publication will be installed in
  18073. the "subscriber" cluster
  18074. type: string
  18075. x-kubernetes-validations:
  18076. - message: dbname is immutable
  18077. rule: self == oldSelf
  18078. externalClusterName:
  18079. description: The name of the external cluster with the publication
  18080. ("publisher")
  18081. type: string
  18082. name:
  18083. description: The name of the subscription inside PostgreSQL
  18084. type: string
  18085. x-kubernetes-validations:
  18086. - message: name is immutable
  18087. rule: self == oldSelf
  18088. parameters:
  18089. additionalProperties:
  18090. type: string
  18091. description: |-
  18092. Subscription parameters included in the `WITH` clause of the PostgreSQL
  18093. `CREATE SUBSCRIPTION` command. Most parameters cannot be changed
  18094. after the subscription is created and will be ignored if modified
  18095. later, except for a limited set documented at:
  18096. https://www.postgresql.org/docs/current/sql-altersubscription.html#SQL-ALTERSUBSCRIPTION-PARAMS-SET
  18097. type: object
  18098. publicationDBName:
  18099. description: |-
  18100. The name of the database containing the publication on the external
  18101. cluster. Defaults to the one in the external cluster definition.
  18102. type: string
  18103. publicationName:
  18104. description: |-
  18105. The name of the publication inside the PostgreSQL database in the
  18106. "publisher"
  18107. type: string
  18108. subscriptionReclaimPolicy:
  18109. default: retain
  18110. description: The policy for end-of-life maintenance of this subscription
  18111. enum:
  18112. - delete
  18113. - retain
  18114. type: string
  18115. required:
  18116. - cluster
  18117. - dbname
  18118. - externalClusterName
  18119. - name
  18120. - publicationName
  18121. type: object
  18122. status:
  18123. description: SubscriptionStatus defines the observed state of Subscription
  18124. properties:
  18125. applied:
  18126. description: Applied is true if the subscription was reconciled correctly
  18127. type: boolean
  18128. message:
  18129. description: Message is the reconciliation output message
  18130. type: string
  18131. observedGeneration:
  18132. description: |-
  18133. A sequence number representing the latest
  18134. desired state that was synchronized
  18135. format: int64
  18136. type: integer
  18137. type: object
  18138. required:
  18139. - metadata
  18140. - spec
  18141. type: object
  18142. served: true
  18143. storage: true
  18144. subresources:
  18145. status: {}
  18146. ---
  18147. apiVersion: v1
  18148. kind: ServiceAccount
  18149. metadata:
  18150. name: cnpg-manager
  18151. namespace: cnpg-system
  18152. ---
  18153. apiVersion: rbac.authorization.k8s.io/v1
  18154. kind: ClusterRole
  18155. metadata:
  18156. labels:
  18157. app.kubernetes.io/managed-by: kustomize
  18158. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18159. name: cnpg-database-editor-role
  18160. rules:
  18161. - apiGroups:
  18162. - postgresql.cnpg.io
  18163. resources:
  18164. - databases
  18165. verbs:
  18166. - create
  18167. - delete
  18168. - get
  18169. - list
  18170. - patch
  18171. - update
  18172. - watch
  18173. - apiGroups:
  18174. - postgresql.cnpg.io
  18175. resources:
  18176. - databases/status
  18177. verbs:
  18178. - get
  18179. ---
  18180. apiVersion: rbac.authorization.k8s.io/v1
  18181. kind: ClusterRole
  18182. metadata:
  18183. labels:
  18184. app.kubernetes.io/managed-by: kustomize
  18185. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18186. name: cnpg-database-viewer-role
  18187. rules:
  18188. - apiGroups:
  18189. - postgresql.cnpg.io
  18190. resources:
  18191. - databases
  18192. verbs:
  18193. - get
  18194. - list
  18195. - watch
  18196. - apiGroups:
  18197. - postgresql.cnpg.io
  18198. resources:
  18199. - databases/status
  18200. verbs:
  18201. - get
  18202. ---
  18203. apiVersion: rbac.authorization.k8s.io/v1
  18204. kind: ClusterRole
  18205. metadata:
  18206. name: cnpg-manager
  18207. rules:
  18208. - apiGroups:
  18209. - ""
  18210. resources:
  18211. - configmaps
  18212. - secrets
  18213. - services
  18214. verbs:
  18215. - create
  18216. - delete
  18217. - get
  18218. - list
  18219. - patch
  18220. - update
  18221. - watch
  18222. - apiGroups:
  18223. - ""
  18224. resources:
  18225. - configmaps/status
  18226. - secrets/status
  18227. verbs:
  18228. - get
  18229. - patch
  18230. - update
  18231. - apiGroups:
  18232. - ""
  18233. resources:
  18234. - events
  18235. verbs:
  18236. - create
  18237. - patch
  18238. - apiGroups:
  18239. - ""
  18240. resources:
  18241. - nodes
  18242. verbs:
  18243. - get
  18244. - list
  18245. - watch
  18246. - apiGroups:
  18247. - ""
  18248. resources:
  18249. - persistentvolumeclaims
  18250. - pods
  18251. - pods/exec
  18252. verbs:
  18253. - create
  18254. - delete
  18255. - get
  18256. - list
  18257. - patch
  18258. - watch
  18259. - apiGroups:
  18260. - ""
  18261. resources:
  18262. - pods/status
  18263. verbs:
  18264. - get
  18265. - apiGroups:
  18266. - ""
  18267. resources:
  18268. - serviceaccounts
  18269. verbs:
  18270. - create
  18271. - get
  18272. - list
  18273. - patch
  18274. - update
  18275. - watch
  18276. - apiGroups:
  18277. - admissionregistration.k8s.io
  18278. resources:
  18279. - mutatingwebhookconfigurations
  18280. - validatingwebhookconfigurations
  18281. verbs:
  18282. - get
  18283. - patch
  18284. - apiGroups:
  18285. - apps
  18286. resources:
  18287. - deployments
  18288. verbs:
  18289. - create
  18290. - delete
  18291. - get
  18292. - list
  18293. - patch
  18294. - update
  18295. - watch
  18296. - apiGroups:
  18297. - batch
  18298. resources:
  18299. - jobs
  18300. verbs:
  18301. - create
  18302. - delete
  18303. - get
  18304. - list
  18305. - patch
  18306. - watch
  18307. - apiGroups:
  18308. - coordination.k8s.io
  18309. resources:
  18310. - leases
  18311. verbs:
  18312. - create
  18313. - get
  18314. - update
  18315. - apiGroups:
  18316. - monitoring.coreos.com
  18317. resources:
  18318. - podmonitors
  18319. verbs:
  18320. - create
  18321. - delete
  18322. - get
  18323. - list
  18324. - patch
  18325. - watch
  18326. - apiGroups:
  18327. - policy
  18328. resources:
  18329. - poddisruptionbudgets
  18330. verbs:
  18331. - create
  18332. - delete
  18333. - get
  18334. - list
  18335. - patch
  18336. - update
  18337. - watch
  18338. - apiGroups:
  18339. - postgresql.cnpg.io
  18340. resources:
  18341. - backups
  18342. - clusters
  18343. - databases
  18344. - poolers
  18345. - publications
  18346. - scheduledbackups
  18347. - subscriptions
  18348. verbs:
  18349. - create
  18350. - delete
  18351. - get
  18352. - list
  18353. - patch
  18354. - update
  18355. - watch
  18356. - apiGroups:
  18357. - postgresql.cnpg.io
  18358. resources:
  18359. - backups/status
  18360. - databases/status
  18361. - publications/status
  18362. - scheduledbackups/status
  18363. - subscriptions/status
  18364. verbs:
  18365. - get
  18366. - patch
  18367. - update
  18368. - apiGroups:
  18369. - postgresql.cnpg.io
  18370. resources:
  18371. - clusterimagecatalogs
  18372. - imagecatalogs
  18373. verbs:
  18374. - get
  18375. - list
  18376. - watch
  18377. - apiGroups:
  18378. - postgresql.cnpg.io
  18379. resources:
  18380. - clusters/finalizers
  18381. - poolers/finalizers
  18382. verbs:
  18383. - update
  18384. - apiGroups:
  18385. - postgresql.cnpg.io
  18386. resources:
  18387. - clusters/status
  18388. - failoverquorums/status
  18389. - poolers/status
  18390. verbs:
  18391. - get
  18392. - patch
  18393. - update
  18394. - watch
  18395. - apiGroups:
  18396. - postgresql.cnpg.io
  18397. resources:
  18398. - failoverquorums
  18399. verbs:
  18400. - create
  18401. - delete
  18402. - get
  18403. - list
  18404. - watch
  18405. - apiGroups:
  18406. - rbac.authorization.k8s.io
  18407. resources:
  18408. - rolebindings
  18409. - roles
  18410. verbs:
  18411. - create
  18412. - get
  18413. - list
  18414. - patch
  18415. - update
  18416. - watch
  18417. - apiGroups:
  18418. - snapshot.storage.k8s.io
  18419. resources:
  18420. - volumesnapshots
  18421. verbs:
  18422. - create
  18423. - get
  18424. - list
  18425. - patch
  18426. - watch
  18427. ---
  18428. apiVersion: rbac.authorization.k8s.io/v1
  18429. kind: ClusterRole
  18430. metadata:
  18431. labels:
  18432. app.kubernetes.io/managed-by: kustomize
  18433. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18434. name: cnpg-publication-editor-role
  18435. rules:
  18436. - apiGroups:
  18437. - postgresql.cnpg.io
  18438. resources:
  18439. - publications
  18440. verbs:
  18441. - create
  18442. - delete
  18443. - get
  18444. - list
  18445. - patch
  18446. - update
  18447. - watch
  18448. - apiGroups:
  18449. - postgresql.cnpg.io
  18450. resources:
  18451. - publications/status
  18452. verbs:
  18453. - get
  18454. ---
  18455. apiVersion: rbac.authorization.k8s.io/v1
  18456. kind: ClusterRole
  18457. metadata:
  18458. labels:
  18459. app.kubernetes.io/managed-by: kustomize
  18460. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18461. name: cnpg-publication-viewer-role
  18462. rules:
  18463. - apiGroups:
  18464. - postgresql.cnpg.io
  18465. resources:
  18466. - publications
  18467. verbs:
  18468. - get
  18469. - list
  18470. - watch
  18471. - apiGroups:
  18472. - postgresql.cnpg.io
  18473. resources:
  18474. - publications/status
  18475. verbs:
  18476. - get
  18477. ---
  18478. apiVersion: rbac.authorization.k8s.io/v1
  18479. kind: ClusterRole
  18480. metadata:
  18481. labels:
  18482. app.kubernetes.io/managed-by: kustomize
  18483. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18484. name: cnpg-subscription-editor-role
  18485. rules:
  18486. - apiGroups:
  18487. - postgresql.cnpg.io
  18488. resources:
  18489. - subscriptions
  18490. verbs:
  18491. - create
  18492. - delete
  18493. - get
  18494. - list
  18495. - patch
  18496. - update
  18497. - watch
  18498. - apiGroups:
  18499. - postgresql.cnpg.io
  18500. resources:
  18501. - subscriptions/status
  18502. verbs:
  18503. - get
  18504. ---
  18505. apiVersion: rbac.authorization.k8s.io/v1
  18506. kind: ClusterRole
  18507. metadata:
  18508. labels:
  18509. app.kubernetes.io/managed-by: kustomize
  18510. app.kubernetes.io/name: cloudnative-pg-kubebuilderv4
  18511. name: cnpg-subscription-viewer-role
  18512. rules:
  18513. - apiGroups:
  18514. - postgresql.cnpg.io
  18515. resources:
  18516. - subscriptions
  18517. verbs:
  18518. - get
  18519. - list
  18520. - watch
  18521. - apiGroups:
  18522. - postgresql.cnpg.io
  18523. resources:
  18524. - subscriptions/status
  18525. verbs:
  18526. - get
  18527. ---
  18528. apiVersion: rbac.authorization.k8s.io/v1
  18529. kind: ClusterRoleBinding
  18530. metadata:
  18531. name: cnpg-manager-rolebinding
  18532. roleRef:
  18533. apiGroup: rbac.authorization.k8s.io
  18534. kind: ClusterRole
  18535. name: cnpg-manager
  18536. subjects:
  18537. - kind: ServiceAccount
  18538. name: cnpg-manager
  18539. namespace: cnpg-system
  18540. ---
  18541. apiVersion: v1
  18542. data:
  18543. queries: |
  18544. backends:
  18545. query: |
  18546. SELECT sa.datname
  18547. , sa.usename
  18548. , sa.application_name
  18549. , states.state
  18550. , COALESCE(sa.count, 0) AS total
  18551. , COALESCE(sa.max_tx_secs, 0) AS max_tx_duration_seconds
  18552. FROM ( VALUES ('active')
  18553. , ('idle')
  18554. , ('idle in transaction')
  18555. , ('idle in transaction (aborted)')
  18556. , ('fastpath function call')
  18557. , ('disabled')
  18558. ) AS states(state)
  18559. LEFT JOIN (
  18560. SELECT datname
  18561. , state
  18562. , usename
  18563. , COALESCE(application_name, '') AS application_name
  18564. , COUNT(*)
  18565. , COALESCE(EXTRACT (EPOCH FROM (max(now() - xact_start))), 0) AS max_tx_secs
  18566. FROM pg_catalog.pg_stat_activity
  18567. GROUP BY datname, state, usename, application_name
  18568. ) sa ON states.state = sa.state
  18569. WHERE sa.usename IS NOT NULL
  18570. metrics:
  18571. - datname:
  18572. usage: "LABEL"
  18573. description: "Name of the database"
  18574. - usename:
  18575. usage: "LABEL"
  18576. description: "Name of the user"
  18577. - application_name:
  18578. usage: "LABEL"
  18579. description: "Name of the application"
  18580. - state:
  18581. usage: "LABEL"
  18582. description: "State of the backend"
  18583. - total:
  18584. usage: "GAUGE"
  18585. description: "Number of backends"
  18586. - max_tx_duration_seconds:
  18587. usage: "GAUGE"
  18588. description: "Maximum duration of a transaction in seconds"
  18589. backends_waiting:
  18590. query: |
  18591. SELECT count(*) AS total
  18592. FROM pg_catalog.pg_locks blocked_locks
  18593. JOIN pg_catalog.pg_locks blocking_locks
  18594. ON blocking_locks.locktype = blocked_locks.locktype
  18595. AND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.database
  18596. AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
  18597. AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
  18598. AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
  18599. AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
  18600. AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
  18601. AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
  18602. AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
  18603. AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
  18604. AND blocking_locks.pid != blocked_locks.pid
  18605. JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
  18606. WHERE NOT blocked_locks.granted
  18607. metrics:
  18608. - total:
  18609. usage: "GAUGE"
  18610. description: "Total number of backends that are currently waiting on other queries"
  18611. pg_database:
  18612. query: |
  18613. SELECT datname
  18614. , pg_catalog.pg_database_size(datname) AS size_bytes
  18615. , pg_catalog.age(datfrozenxid) AS xid_age
  18616. , pg_catalog.mxid_age(datminmxid) AS mxid_age
  18617. FROM pg_catalog.pg_database
  18618. WHERE datallowconn
  18619. metrics:
  18620. - datname:
  18621. usage: "LABEL"
  18622. description: "Name of the database"
  18623. - size_bytes:
  18624. usage: "GAUGE"
  18625. description: "Disk space used by the database"
  18626. - xid_age:
  18627. usage: "GAUGE"
  18628. description: "Number of transactions from the frozen XID to the current one"
  18629. - mxid_age:
  18630. usage: "GAUGE"
  18631. description: "Number of multiple transactions (Multixact) from the frozen XID to the current one"
  18632. pg_postmaster:
  18633. query: |
  18634. SELECT EXTRACT(EPOCH FROM pg_postmaster_start_time) AS start_time
  18635. FROM pg_catalog.pg_postmaster_start_time()
  18636. metrics:
  18637. - start_time:
  18638. usage: "GAUGE"
  18639. description: "Time at which postgres started (based on epoch)"
  18640. pg_replication:
  18641. query: "SELECT CASE WHEN (
  18642. NOT pg_catalog.pg_is_in_recovery()
  18643. OR pg_catalog.pg_last_wal_receive_lsn() = pg_catalog.pg_last_wal_replay_lsn())
  18644. THEN 0
  18645. ELSE GREATEST (0,
  18646. EXTRACT(EPOCH FROM (now() - pg_catalog.pg_last_xact_replay_timestamp())))
  18647. END AS lag,
  18648. pg_catalog.pg_is_in_recovery() AS in_recovery,
  18649. EXISTS (TABLE pg_stat_wal_receiver) AS is_wal_receiver_up,
  18650. (SELECT count(*) FROM pg_catalog.pg_stat_replication) AS streaming_replicas"
  18651. metrics:
  18652. - lag:
  18653. usage: "GAUGE"
  18654. description: "Replication lag behind primary in seconds"
  18655. - in_recovery:
  18656. usage: "GAUGE"
  18657. description: "Whether the instance is in recovery"
  18658. - is_wal_receiver_up:
  18659. usage: "GAUGE"
  18660. description: "Whether the instance wal_receiver is up"
  18661. - streaming_replicas:
  18662. usage: "GAUGE"
  18663. description: "Number of streaming replicas connected to the instance"
  18664. pg_replication_slots:
  18665. query: |
  18666. SELECT slot_name,
  18667. slot_type,
  18668. database,
  18669. active,
  18670. (CASE pg_catalog.pg_is_in_recovery()
  18671. WHEN TRUE THEN pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_last_wal_receive_lsn(), restart_lsn)
  18672. ELSE pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), restart_lsn)
  18673. END) as pg_wal_lsn_diff
  18674. FROM pg_catalog.pg_replication_slots
  18675. WHERE NOT temporary
  18676. metrics:
  18677. - slot_name:
  18678. usage: "LABEL"
  18679. description: "Name of the replication slot"
  18680. - slot_type:
  18681. usage: "LABEL"
  18682. description: "Type of the replication slot"
  18683. - database:
  18684. usage: "LABEL"
  18685. description: "Name of the database"
  18686. - active:
  18687. usage: "GAUGE"
  18688. description: "Flag indicating whether the slot is active"
  18689. - pg_wal_lsn_diff:
  18690. usage: "GAUGE"
  18691. description: "Replication lag in bytes"
  18692. pg_stat_archiver:
  18693. query: |
  18694. SELECT archived_count
  18695. , failed_count
  18696. , COALESCE(EXTRACT(EPOCH FROM (now() - last_archived_time)), -1) AS seconds_since_last_archival
  18697. , COALESCE(EXTRACT(EPOCH FROM (now() - last_failed_time)), -1) AS seconds_since_last_failure
  18698. , COALESCE(EXTRACT(EPOCH FROM last_archived_time), -1) AS last_archived_time
  18699. , COALESCE(EXTRACT(EPOCH FROM last_failed_time), -1) AS last_failed_time
  18700. , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_archived_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_archived_wal_start_lsn
  18701. , COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_failed_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_failed_wal_start_lsn
  18702. , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
  18703. FROM pg_catalog.pg_stat_archiver
  18704. metrics:
  18705. - archived_count:
  18706. usage: "COUNTER"
  18707. description: "Number of WAL files that have been successfully archived"
  18708. - failed_count:
  18709. usage: "COUNTER"
  18710. description: "Number of failed attempts for archiving WAL files"
  18711. - seconds_since_last_archival:
  18712. usage: "GAUGE"
  18713. description: "Seconds since the last successful archival operation"
  18714. - seconds_since_last_failure:
  18715. usage: "GAUGE"
  18716. description: "Seconds since the last failed archival operation"
  18717. - last_archived_time:
  18718. usage: "GAUGE"
  18719. description: "Epoch of the last time WAL archiving succeeded"
  18720. - last_failed_time:
  18721. usage: "GAUGE"
  18722. description: "Epoch of the last time WAL archiving failed"
  18723. - last_archived_wal_start_lsn:
  18724. usage: "GAUGE"
  18725. description: "Archived WAL start LSN"
  18726. - last_failed_wal_start_lsn:
  18727. usage: "GAUGE"
  18728. description: "Last failed WAL LSN"
  18729. - stats_reset_time:
  18730. usage: "GAUGE"
  18731. description: "Time at which these statistics were last reset"
  18732. pg_stat_bgwriter:
  18733. runonserver: "<17.0.0"
  18734. query: |
  18735. SELECT checkpoints_timed
  18736. , checkpoints_req
  18737. , checkpoint_write_time
  18738. , checkpoint_sync_time
  18739. , buffers_checkpoint
  18740. , buffers_clean
  18741. , maxwritten_clean
  18742. , buffers_backend
  18743. , buffers_backend_fsync
  18744. , buffers_alloc
  18745. FROM pg_catalog.pg_stat_bgwriter
  18746. metrics:
  18747. - checkpoints_timed:
  18748. usage: "COUNTER"
  18749. description: "Number of scheduled checkpoints that have been performed"
  18750. - checkpoints_req:
  18751. usage: "COUNTER"
  18752. description: "Number of requested checkpoints that have been performed"
  18753. - checkpoint_write_time:
  18754. usage: "COUNTER"
  18755. description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds"
  18756. - checkpoint_sync_time:
  18757. usage: "COUNTER"
  18758. description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds"
  18759. - buffers_checkpoint:
  18760. usage: "COUNTER"
  18761. description: "Number of buffers written during checkpoints"
  18762. - buffers_clean:
  18763. usage: "COUNTER"
  18764. description: "Number of buffers written by the background writer"
  18765. - maxwritten_clean:
  18766. usage: "COUNTER"
  18767. description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
  18768. - buffers_backend:
  18769. usage: "COUNTER"
  18770. description: "Number of buffers written directly by a backend"
  18771. - buffers_backend_fsync:
  18772. usage: "COUNTER"
  18773. description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)"
  18774. - buffers_alloc:
  18775. usage: "COUNTER"
  18776. description: "Number of buffers allocated"
  18777. pg_stat_bgwriter_17:
  18778. runonserver: ">=17.0.0"
  18779. name: pg_stat_bgwriter
  18780. query: |
  18781. SELECT buffers_clean
  18782. , maxwritten_clean
  18783. , buffers_alloc
  18784. , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
  18785. FROM pg_catalog.pg_stat_bgwriter
  18786. metrics:
  18787. - buffers_clean:
  18788. usage: "COUNTER"
  18789. description: "Number of buffers written by the background writer"
  18790. - maxwritten_clean:
  18791. usage: "COUNTER"
  18792. description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
  18793. - buffers_alloc:
  18794. usage: "COUNTER"
  18795. description: "Number of buffers allocated"
  18796. - stats_reset_time:
  18797. usage: "GAUGE"
  18798. description: "Time at which these statistics were last reset"
  18799. pg_stat_checkpointer:
  18800. runonserver: ">=17.0.0"
  18801. query: |
  18802. SELECT num_timed AS checkpoints_timed
  18803. , num_requested AS checkpoints_req
  18804. , restartpoints_timed
  18805. , restartpoints_req
  18806. , restartpoints_done
  18807. , write_time
  18808. , sync_time
  18809. , buffers_written
  18810. , EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
  18811. FROM pg_catalog.pg_stat_checkpointer
  18812. metrics:
  18813. - checkpoints_timed:
  18814. usage: "COUNTER"
  18815. description: "Number of scheduled checkpoints that have been performed"
  18816. - checkpoints_req:
  18817. usage: "COUNTER"
  18818. description: "Number of requested checkpoints that have been performed"
  18819. - restartpoints_timed:
  18820. usage: "COUNTER"
  18821. description: "Number of scheduled restartpoints due to timeout or after a failed attempt to perform it"
  18822. - restartpoints_req:
  18823. usage: "COUNTER"
  18824. description: "Number of requested restartpoints that have been performed"
  18825. - restartpoints_done:
  18826. usage: "COUNTER"
  18827. description: "Number of restartpoints that have been performed"
  18828. - write_time:
  18829. usage: "COUNTER"
  18830. description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are written to disk, in milliseconds"
  18831. - sync_time:
  18832. usage: "COUNTER"
  18833. description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are synchronized to disk, in milliseconds"
  18834. - buffers_written:
  18835. usage: "COUNTER"
  18836. description: "Number of buffers written during checkpoints and restartpoints"
  18837. - stats_reset_time:
  18838. usage: "GAUGE"
  18839. description: "Time at which these statistics were last reset"
  18840. pg_stat_database:
  18841. query: |
  18842. SELECT datname
  18843. , xact_commit
  18844. , xact_rollback
  18845. , blks_read
  18846. , blks_hit
  18847. , tup_returned
  18848. , tup_fetched
  18849. , tup_inserted
  18850. , tup_updated
  18851. , tup_deleted
  18852. , conflicts
  18853. , temp_files
  18854. , temp_bytes
  18855. , deadlocks
  18856. , blk_read_time
  18857. , blk_write_time
  18858. FROM pg_catalog.pg_stat_database
  18859. metrics:
  18860. - datname:
  18861. usage: "LABEL"
  18862. description: "Name of this database"
  18863. - xact_commit:
  18864. usage: "COUNTER"
  18865. description: "Number of transactions in this database that have been committed"
  18866. - xact_rollback:
  18867. usage: "COUNTER"
  18868. description: "Number of transactions in this database that have been rolled back"
  18869. - blks_read:
  18870. usage: "COUNTER"
  18871. description: "Number of disk blocks read in this database"
  18872. - blks_hit:
  18873. usage: "COUNTER"
  18874. description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)"
  18875. - tup_returned:
  18876. usage: "COUNTER"
  18877. description: "Number of rows returned by queries in this database"
  18878. - tup_fetched:
  18879. usage: "COUNTER"
  18880. description: "Number of rows fetched by queries in this database"
  18881. - tup_inserted:
  18882. usage: "COUNTER"
  18883. description: "Number of rows inserted by queries in this database"
  18884. - tup_updated:
  18885. usage: "COUNTER"
  18886. description: "Number of rows updated by queries in this database"
  18887. - tup_deleted:
  18888. usage: "COUNTER"
  18889. description: "Number of rows deleted by queries in this database"
  18890. - conflicts:
  18891. usage: "COUNTER"
  18892. description: "Number of queries canceled due to conflicts with recovery in this database"
  18893. - temp_files:
  18894. usage: "COUNTER"
  18895. description: "Number of temporary files created by queries in this database"
  18896. - temp_bytes:
  18897. usage: "COUNTER"
  18898. description: "Total amount of data written to temporary files by queries in this database"
  18899. - deadlocks:
  18900. usage: "COUNTER"
  18901. description: "Number of deadlocks detected in this database"
  18902. - blk_read_time:
  18903. usage: "COUNTER"
  18904. description: "Time spent reading data file blocks by backends in this database, in milliseconds"
  18905. - blk_write_time:
  18906. usage: "COUNTER"
  18907. description: "Time spent writing data file blocks by backends in this database, in milliseconds"
  18908. pg_stat_replication:
  18909. primary: true
  18910. query: |
  18911. SELECT usename
  18912. , COALESCE(application_name, '') AS application_name
  18913. , COALESCE(client_addr::text, '') AS client_addr
  18914. , COALESCE(client_port::text, '') AS client_port
  18915. , EXTRACT(EPOCH FROM backend_start) AS backend_start
  18916. , COALESCE(pg_catalog.age(backend_xmin), 0) AS backend_xmin_age
  18917. , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), sent_lsn) AS sent_diff_bytes
  18918. , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), write_lsn) AS write_diff_bytes
  18919. , pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), flush_lsn) AS flush_diff_bytes
  18920. , COALESCE(pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), replay_lsn),0) AS replay_diff_bytes
  18921. , COALESCE((EXTRACT(EPOCH FROM write_lag)),0)::float AS write_lag_seconds
  18922. , COALESCE((EXTRACT(EPOCH FROM flush_lag)),0)::float AS flush_lag_seconds
  18923. , COALESCE((EXTRACT(EPOCH FROM replay_lag)),0)::float AS replay_lag_seconds
  18924. FROM pg_catalog.pg_stat_replication
  18925. metrics:
  18926. - usename:
  18927. usage: "LABEL"
  18928. description: "Name of the replication user"
  18929. - application_name:
  18930. usage: "LABEL"
  18931. description: "Name of the application"
  18932. - client_addr:
  18933. usage: "LABEL"
  18934. description: "Client IP address"
  18935. - client_port:
  18936. usage: "LABEL"
  18937. description: "Client TCP port"
  18938. - backend_start:
  18939. usage: "COUNTER"
  18940. description: "Time when this process was started"
  18941. - backend_xmin_age:
  18942. usage: "COUNTER"
  18943. description: "The age of this standby's xmin horizon"
  18944. - sent_diff_bytes:
  18945. usage: "GAUGE"
  18946. description: "Difference in bytes from the last write-ahead log location sent on this connection"
  18947. - write_diff_bytes:
  18948. usage: "GAUGE"
  18949. description: "Difference in bytes from the last write-ahead log location written to disk by this standby server"
  18950. - flush_diff_bytes:
  18951. usage: "GAUGE"
  18952. description: "Difference in bytes from the last write-ahead log location flushed to disk by this standby server"
  18953. - replay_diff_bytes:
  18954. usage: "GAUGE"
  18955. description: "Difference in bytes from the last write-ahead log location replayed into the database on this standby server"
  18956. - write_lag_seconds:
  18957. usage: "GAUGE"
  18958. description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it"
  18959. - flush_lag_seconds:
  18960. usage: "GAUGE"
  18961. description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it"
  18962. - replay_lag_seconds:
  18963. usage: "GAUGE"
  18964. description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it"
  18965. pg_settings:
  18966. query: |
  18967. SELECT name,
  18968. CASE setting WHEN 'on' THEN '1' WHEN 'off' THEN '0' ELSE setting END AS setting
  18969. FROM pg_catalog.pg_settings
  18970. WHERE vartype IN ('integer', 'real', 'bool')
  18971. ORDER BY 1
  18972. metrics:
  18973. - name:
  18974. usage: "LABEL"
  18975. description: "Name of the setting"
  18976. - setting:
  18977. usage: "GAUGE"
  18978. description: "Setting value"
  18979. pg_extensions:
  18980. query: |
  18981. SELECT
  18982. current_database() as datname,
  18983. name as extname,
  18984. default_version,
  18985. installed_version,
  18986. CASE
  18987. WHEN default_version = installed_version THEN 0
  18988. ELSE 1
  18989. END AS update_available
  18990. FROM pg_catalog.pg_available_extensions
  18991. WHERE installed_version IS NOT NULL
  18992. metrics:
  18993. - datname:
  18994. usage: "LABEL"
  18995. description: "Name of the database"
  18996. - extname:
  18997. usage: "LABEL"
  18998. description: "Extension name"
  18999. - default_version:
  19000. usage: "LABEL"
  19001. description: "Default version"
  19002. - installed_version:
  19003. usage: "LABEL"
  19004. description: "Installed version"
  19005. - update_available:
  19006. usage: "GAUGE"
  19007. description: "An update is available"
  19008. target_databases:
  19009. - '*'
  19010. kind: ConfigMap
  19011. metadata:
  19012. labels:
  19013. cnpg.io/reload: ""
  19014. name: cnpg-default-monitoring
  19015. namespace: cnpg-system
  19016. ---
  19017. apiVersion: v1
  19018. kind: Service
  19019. metadata:
  19020. name: cnpg-webhook-service
  19021. namespace: cnpg-system
  19022. spec:
  19023. ports:
  19024. - port: 443
  19025. targetPort: 9443
  19026. selector:
  19027. app.kubernetes.io/name: cloudnative-pg
  19028. ---
  19029. apiVersion: apps/v1
  19030. kind: Deployment
  19031. metadata:
  19032. labels:
  19033. app.kubernetes.io/name: cloudnative-pg
  19034. name: cnpg-controller-manager
  19035. namespace: cnpg-system
  19036. spec:
  19037. replicas: 1
  19038. selector:
  19039. matchLabels:
  19040. app.kubernetes.io/name: cloudnative-pg
  19041. template:
  19042. metadata:
  19043. labels:
  19044. app.kubernetes.io/name: cloudnative-pg
  19045. spec:
  19046. containers:
  19047. - args:
  19048. - controller
  19049. - --leader-elect
  19050. - --max-concurrent-reconciles=10
  19051. - --config-map-name=cnpg-controller-manager-config
  19052. - --secret-name=cnpg-controller-manager-config
  19053. - --webhook-port=9443
  19054. command:
  19055. - /manager
  19056. env:
  19057. - name: OPERATOR_IMAGE_NAME
  19058. value: ghcr.io/cloudnative-pg/cloudnative-pg:1.28.0
  19059. - name: OPERATOR_NAMESPACE
  19060. valueFrom:
  19061. fieldRef:
  19062. fieldPath: metadata.namespace
  19063. - name: MONITORING_QUERIES_CONFIGMAP
  19064. value: cnpg-default-monitoring
  19065. image: ghcr.io/cloudnative-pg/cloudnative-pg:1.28.0
  19066. imagePullPolicy: Always
  19067. livenessProbe:
  19068. httpGet:
  19069. path: /readyz
  19070. port: 9443
  19071. scheme: HTTPS
  19072. name: manager
  19073. ports:
  19074. - containerPort: 8080
  19075. name: metrics
  19076. protocol: TCP
  19077. - containerPort: 9443
  19078. name: webhook-server
  19079. protocol: TCP
  19080. readinessProbe:
  19081. httpGet:
  19082. path: /readyz
  19083. port: 9443
  19084. scheme: HTTPS
  19085. resources:
  19086. limits:
  19087. cpu: 100m
  19088. memory: 200Mi
  19089. requests:
  19090. cpu: 100m
  19091. memory: 100Mi
  19092. securityContext:
  19093. allowPrivilegeEscalation: false
  19094. capabilities:
  19095. drop:
  19096. - ALL
  19097. readOnlyRootFilesystem: true
  19098. runAsGroup: 10001
  19099. runAsUser: 10001
  19100. seccompProfile:
  19101. type: RuntimeDefault
  19102. startupProbe:
  19103. failureThreshold: 6
  19104. httpGet:
  19105. path: /readyz
  19106. port: 9443
  19107. scheme: HTTPS
  19108. periodSeconds: 5
  19109. volumeMounts:
  19110. - mountPath: /controller
  19111. name: scratch-data
  19112. - mountPath: /run/secrets/cnpg.io/webhook
  19113. name: webhook-certificates
  19114. securityContext:
  19115. runAsNonRoot: true
  19116. seccompProfile:
  19117. type: RuntimeDefault
  19118. serviceAccountName: cnpg-manager
  19119. terminationGracePeriodSeconds: 10
  19120. volumes:
  19121. - emptyDir: {}
  19122. name: scratch-data
  19123. - name: webhook-certificates
  19124. secret:
  19125. defaultMode: 420
  19126. optional: true
  19127. secretName: cnpg-webhook-cert
  19128. ---
  19129. apiVersion: admissionregistration.k8s.io/v1
  19130. kind: MutatingWebhookConfiguration
  19131. metadata:
  19132. name: cnpg-mutating-webhook-configuration
  19133. webhooks:
  19134. - admissionReviewVersions:
  19135. - v1
  19136. clientConfig:
  19137. service:
  19138. name: cnpg-webhook-service
  19139. namespace: cnpg-system
  19140. path: /mutate-postgresql-cnpg-io-v1-backup
  19141. failurePolicy: Fail
  19142. name: mbackup.cnpg.io
  19143. rules:
  19144. - apiGroups:
  19145. - postgresql.cnpg.io
  19146. apiVersions:
  19147. - v1
  19148. operations:
  19149. - CREATE
  19150. - UPDATE
  19151. resources:
  19152. - backups
  19153. sideEffects: None
  19154. - admissionReviewVersions:
  19155. - v1
  19156. clientConfig:
  19157. service:
  19158. name: cnpg-webhook-service
  19159. namespace: cnpg-system
  19160. path: /mutate-postgresql-cnpg-io-v1-cluster
  19161. failurePolicy: Fail
  19162. name: mcluster.cnpg.io
  19163. rules:
  19164. - apiGroups:
  19165. - postgresql.cnpg.io
  19166. apiVersions:
  19167. - v1
  19168. operations:
  19169. - CREATE
  19170. - UPDATE
  19171. resources:
  19172. - clusters
  19173. sideEffects: None
  19174. - admissionReviewVersions:
  19175. - v1
  19176. clientConfig:
  19177. service:
  19178. name: cnpg-webhook-service
  19179. namespace: cnpg-system
  19180. path: /mutate-postgresql-cnpg-io-v1-database
  19181. failurePolicy: Fail
  19182. name: mdatabase.cnpg.io
  19183. rules:
  19184. - apiGroups:
  19185. - postgresql.cnpg.io
  19186. apiVersions:
  19187. - v1
  19188. operations:
  19189. - CREATE
  19190. - UPDATE
  19191. resources:
  19192. - databases
  19193. sideEffects: None
  19194. - admissionReviewVersions:
  19195. - v1
  19196. clientConfig:
  19197. service:
  19198. name: cnpg-webhook-service
  19199. namespace: cnpg-system
  19200. path: /mutate-postgresql-cnpg-io-v1-scheduledbackup
  19201. failurePolicy: Fail
  19202. name: mscheduledbackup.cnpg.io
  19203. rules:
  19204. - apiGroups:
  19205. - postgresql.cnpg.io
  19206. apiVersions:
  19207. - v1
  19208. operations:
  19209. - CREATE
  19210. - UPDATE
  19211. resources:
  19212. - scheduledbackups
  19213. sideEffects: None
  19214. ---
  19215. apiVersion: admissionregistration.k8s.io/v1
  19216. kind: ValidatingWebhookConfiguration
  19217. metadata:
  19218. name: cnpg-validating-webhook-configuration
  19219. webhooks:
  19220. - admissionReviewVersions:
  19221. - v1
  19222. clientConfig:
  19223. service:
  19224. name: cnpg-webhook-service
  19225. namespace: cnpg-system
  19226. path: /validate-postgresql-cnpg-io-v1-backup
  19227. failurePolicy: Fail
  19228. name: vbackup.cnpg.io
  19229. rules:
  19230. - apiGroups:
  19231. - postgresql.cnpg.io
  19232. apiVersions:
  19233. - v1
  19234. operations:
  19235. - CREATE
  19236. - UPDATE
  19237. resources:
  19238. - backups
  19239. sideEffects: None
  19240. - admissionReviewVersions:
  19241. - v1
  19242. clientConfig:
  19243. service:
  19244. name: cnpg-webhook-service
  19245. namespace: cnpg-system
  19246. path: /validate-postgresql-cnpg-io-v1-cluster
  19247. failurePolicy: Fail
  19248. name: vcluster.cnpg.io
  19249. rules:
  19250. - apiGroups:
  19251. - postgresql.cnpg.io
  19252. apiVersions:
  19253. - v1
  19254. operations:
  19255. - CREATE
  19256. - UPDATE
  19257. resources:
  19258. - clusters
  19259. sideEffects: None
  19260. - admissionReviewVersions:
  19261. - v1
  19262. clientConfig:
  19263. service:
  19264. name: cnpg-webhook-service
  19265. namespace: cnpg-system
  19266. path: /validate-postgresql-cnpg-io-v1-database
  19267. failurePolicy: Fail
  19268. name: vdatabase.cnpg.io
  19269. rules:
  19270. - apiGroups:
  19271. - postgresql.cnpg.io
  19272. apiVersions:
  19273. - v1
  19274. operations:
  19275. - CREATE
  19276. - UPDATE
  19277. resources:
  19278. - databases
  19279. sideEffects: None
  19280. - admissionReviewVersions:
  19281. - v1
  19282. clientConfig:
  19283. service:
  19284. name: cnpg-webhook-service
  19285. namespace: cnpg-system
  19286. path: /validate-postgresql-cnpg-io-v1-pooler
  19287. failurePolicy: Fail
  19288. name: vpooler.cnpg.io
  19289. rules:
  19290. - apiGroups:
  19291. - postgresql.cnpg.io
  19292. apiVersions:
  19293. - v1
  19294. operations:
  19295. - CREATE
  19296. - UPDATE
  19297. resources:
  19298. - poolers
  19299. sideEffects: None
  19300. - admissionReviewVersions:
  19301. - v1
  19302. clientConfig:
  19303. service:
  19304. name: cnpg-webhook-service
  19305. namespace: cnpg-system
  19306. path: /validate-postgresql-cnpg-io-v1-scheduledbackup
  19307. failurePolicy: Fail
  19308. name: vscheduledbackup.cnpg.io
  19309. rules:
  19310. - apiGroups:
  19311. - postgresql.cnpg.io
  19312. apiVersions:
  19313. - v1
  19314. operations:
  19315. - CREATE
  19316. - UPDATE
  19317. resources:
  19318. - scheduledbackups
  19319. sideEffects: None